![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте! Прошу Вашего совета.
использую процедуру: Код:
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','');Помогите пожалуйста! |
|
#2
|
||||
|
||||
|
Очень похоже на "войну" Ansi с Unicode.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
exuddy (12.04.2012)
| ||
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
||||
|
||||
|
Попробуйте так:
Код:
var
WidePath: array[0..MAX_PATH] of WideChar;
...
end;
StringToWideChar(PathLink, WidePath, SizeOf(WidePath));
PFile.Save(WidePath, FALSE);
end; |
| Этот пользователь сказал Спасибо Karsh за это полезное сообщение: | ||
exuddy (13.04.2012)
| ||
|
#5
|
|||
|
|||
|
не помогло. сегодня на работе проверял разные варианты, результат один
![]() Последний раз редактировалось exuddy, 13.04.2012 в 18:01. |
|
#6
|
||||
|
||||
|
Попробовал ваш код на Delphi 7 и 2009 - все работает. Путь собирал так:
Код:
patch:= Edit1.Text;
if LastDelimiter('\', patch) <> length(patch) then
patch:= patch + '\';
patch:= patch + Edit2.Text + '.lnk'; |
| Этот пользователь сказал Спасибо Karsh за это полезное сообщение: | ||
exuddy (13.04.2012)
| ||
|
#7
|
|||
|
|||
|
были мысли что как то не так путь собираю. но что-то ничего путного не придумал. сейчас собираю вот так:
Код:
path:= '\\'+edit1.Text+'\'+users.Items[users.ItemIndex]+'\rar.lnk'; |