Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.04.2012, 20:53
exuddy exuddy вне форума
Прохожий
 
Регистрация: 12.04.2012
Сообщения: 4
Репутация: 10
По умолчанию проблема при создании ярлыка

Здравствуйте! Прошу Вашего совета.
использую процедуру:
Код:
procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
  var
    IObject: IUnknown;
    SLink: IShellLink;
    PFile: IPersistFile;
  begin
    IObject := CreateComObject(CLSID_ShellLink);
    SLink := IObject as IShellLink;
    PFile := IObject as IPersistFile;
    with SLink do begin
      SetArguments(PChar(Param));
      SetDescription(PChar(Desc));
      SetPath(PChar(PathObj));
    end;
    PFile.Save(PWChar(WideString(PathLink)), FALSE);
  end;
используем:
Код:
createlink('g:\1.rar',patch,'bmp','');
проблема в том, что если переменную patch (путь к создаваемому ярлыку) задавать статически ('\\192.168.1.2\public\1.lnk'), все создается без проблем. Но если переменную собирать из нескольких текстовых полей (предполагается что юзер будет задавать путь), то ярлык не создается.
Помогите пожалуйста!
Ответить с цитированием
  #2  
Старый 12.04.2012, 21:25
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Очень похоже на "войну" Ansi с Unicode.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
exuddy (12.04.2012)
  #3  
Старый 12.04.2012, 22:19
exuddy exuddy вне форума
Прохожий
 
Регистрация: 12.04.2012
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Очень похоже на "войну" Ansi с Unicode.
не подскажете как решить?
Ответить с цитированием
  #4  
Старый 13.04.2012, 13:11
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Попробуйте так:
Код:
var
    WidePath: array[0..MAX_PATH] of WideChar;
...
   end;
   StringToWideChar(PathLink, WidePath, SizeOf(WidePath));
   PFile.Save(WidePath, FALSE);
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
Этот пользователь сказал Спасибо Karsh за это полезное сообщение:
exuddy (13.04.2012)
  #5  
Старый 13.04.2012, 17:48
exuddy exuddy вне форума
Прохожий
 
Регистрация: 12.04.2012
Сообщения: 4
Репутация: 10
По умолчанию

не помогло. сегодня на работе проверял разные варианты, результат один

Последний раз редактировалось exuddy, 13.04.2012 в 18:01.
Ответить с цитированием
  #6  
Старый 13.04.2012, 21:56
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Попробовал ваш код на Delphi 7 и 2009 - все работает. Путь собирал так:
Код:
  patch:= Edit1.Text;
  if LastDelimiter('\', patch) <> length(patch) then
    patch:= patch + '\';
  patch:= patch + Edit2.Text + '.lnk';
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
Этот пользователь сказал Спасибо Karsh за это полезное сообщение:
exuddy (13.04.2012)
  #7  
Старый 13.04.2012, 23:13
exuddy exuddy вне форума
Прохожий
 
Регистрация: 12.04.2012
Сообщения: 4
Репутация: 10
По умолчанию

были мысли что как то не так путь собираю. но что-то ничего путного не придумал. сейчас собираю вот так:
Код:
path:= '\\'+edit1.Text+'\'+users.Items[users.ItemIndex]+'\rar.lnk';
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter