purebasic.info

PureBasic forum
Текущее время: Вс окт 21, 2018 5:30 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Создание символьных ссылок
СообщениеДобавлено: Вт июл 22, 2014 11:45 am 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Может кому пригодится, выкладываю код для создания символьных ссылок. Возможность создавать символьные ссылки присутствует в Windows, начиная с Vista. Данный код проверялся на Windows 8, по идее, должен работать в демо-версии.
Первый параметр - путь и имя самой ссылки, второй параметр - путь и имя файла, на которую ссылаемся, флаг принимает значение 0, если ссылаемся на файл, 1 - если на папку.
Работает только от имени администратора
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#SYMBOLIC_LINK_FLAG_DIRECTORY = 1
 
Procedure CreateSymbolicLink(lpSymlinkFileName, lpTargetFileName, dwFlags)
  Protected lib, name$, res
  If OSVersion() >= #PB_OS_Windows_Vista
    lib = OpenLibrary(#PB_Any, "kernel32.dll")
    If lib
      If #PB_Compiler_Unicode
        name$ = "CreateSymbolicLinkW"
      Else
        name$ = "CreateSymbolicLinkA"
      EndIf
      res = CallFunction(lib, name$, lpSymlinkFileName, lpTargetFileName, dwFlags)
      CloseLibrary(lib)
    EndIf
  EndIf
  ProcedureReturn res
EndProcedure
 
CreateSymbolicLink(@"C:\Users\Никита\Desktop\img.png", @"C:\test.png", 0)


_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Создание символьных ссылок
СообщениеДобавлено: Чт июл 31, 2014 6:03 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Не работает в режиме юникода. Как исправить?? Дело в передаваемых параметрах (пути, где есть русские буквы), только я не знаю, что делать :(

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Создание символьных ссылок
СообщениеДобавлено: Чт июл 31, 2014 6:08 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11300
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Никита Однороб писал(а):
Не работает в режиме юникода. Как исправить??
Исправляй.
Код:
1
If #PB_Compiler_Unicode


_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Создание символьных ссылок
СообщениеДобавлено: Чт июл 31, 2014 6:31 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Я тебя не совсем понял :( Тут я проверяю юникод, и в зависимости от этого вызываю ту или иную функцию

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Создание символьных ссылок
СообщениеДобавлено: Сб авг 02, 2014 12:51 pm 
Не в сети
доцент

Зарегистрирован: Вс мар 16, 2014 5:42 am
Сообщений: 49
Благодарил (а): 7 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
А может перед диском в пути нужны символы "\\?\" если через юникод?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB