Сообщение от
Twiddle
Сам только в начале пути познания делфи, поэтому идея есть а вот реализацию пока представляю плохо поэтому надеюсь поможете. Идея:
на рабочем столе хочется иметь как можно больше ярлыков нужных и частозапускаемых программ так как заходить в папку с прогарммой каждый раз что бы её запустить - меня лично напрягает, то же самое и с меню ПУСК, но при этом не хочется загромождать стол ярлыками вообще. Вот и родилась такая идея: На рабочем столе находится наша программа-форма без заголовка с одной лишь TEdit. В папке с нашей программой есть файл config.ini который содержит примерно следующее:
icq c:\icq\icq.exe
mozilla c:\Program Files\Mozilla Firefox\firefox.exe
word c:\winword\winword.exe
итд.
т.е. техника такая: мы в водим в нашу программу (TEdit) какое либо слово, программа ищет его в нашем config.ini и если находит запускает приложение идущее после введенного слова. Если нет такого слова-выводим сообщение об ошибке и ни чего не делаем. Так же хотелось бы что бы при вводе "!exit" наша программа закрывалась.Вот и все. Буду очень благодарен за подсказку реализации. С меня почет и уважение...
очередной велосипед...
добавляешь ярлык в windir и все..
function GetSysDir: string;
var
buf: array [0..MAX_PATH] of Char;
begin
GetSystemDirectory(buf, MAX_PATH);
Result:=buf;
end;
function Install(_file: string): Boolean;
var
LnkName : string;
MyObject : IUnknown;
MyIcon : IShellLink;
MyPFile : IPersistFile;
WFileName : WideString;
begin
try
CoInitialize(nil);
MyObject:=CreateComObject(CLSID_ShellLink);
MyIcon:=MyObject as IShellLink;
MyPFile:=MyObject as IPersistFile;
with MyIcon do
begin
SetArguments(PChar(''));
SetPath(PChar(_file));
SetWorkingDirectory(PChar(ExtractFilePath(_file))) ;
end;
LnkName:=Copy(ExtractFileName(_file), 1, Length(ExtractFileName(_file)) - Length(ExtractFileExt(_file)));
WFileName:=GetSysDir + '\' + LnkName + '.lnk';
MyPFile.Save(PWChar(WFileName), False);
except
Result:=False;
Exit;
end;
Result:=True;
end;
ссылка на исходник. Прога добавляющую ярлык в %windir%, писал давно, работает, полнотью на WinAPI
http://www.sendspace.com/file/1366et
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...