Vitalliano
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [code] const LOAD_LIBRARY_AS_DATAFILE = $2; function LoadLibraryEx(lpFileName: String; hFile: THandle; dwFlags: DWORD): THandle; external 'LoadLibraryExA@kernel32.dll stdcall'; function LoadString(hInstance: THandle; uID: SmallInt; var lpBuffer: Byte; nBufferMax: Integer): Integer; external 'LoadStringA@user32.dll stdcall'; // function PinToTaskbarWin7(Filename: String): Boolean; var hInst: THandle; buf: array [0..255] of byte; i: byte; strVerb, s: String; objShell, colverbs: Variant; begin if not FileExists(Filename) then Exit; if (GetWindowsVersion shr 24 = 6) and ((GetWindowsVersion shr 16) and $FF = 1) then begin hInst := LoadLibraryEx(ExpandConstant('{sys}\shell32.dll'), 0, LOAD_LIBRARY_AS_DATAFILE); for i := 0 to LoadString(hInst, 5386, buf[0], 255)-1 do strVerb := strVerb + Chr(Buf[i]); FreeDLL(hInst); try objShell := CreateOleObject('Shell.Application'); except ShowExceptionMessage; Exit; end; colVerbs := objShell.Namespace(ExtractFileDir(Filename)).ParseName(ExtractFileName(Filename)).Verbs; for i := colVerbs.Count downto 1 do if colVerbs.Item[i].Name = strVerb then begin colVerbs.Item[i].DoIt; Result := True; end; end; end; procedure InitializeWizard(); begin //Присобачим Блокнот на панель задач if PinToTaskbarWin7('c:\windows\notepad.exe') then MsgBox('ok', mbInformation, MB_OK) else MsgBox('no', mbInformation, MB_OK); end; | Всего записей: 89 | Зарегистр. 04-12-2007 | Отправлено: 21:55 18-09-2011 | Исправлено: Vitalliano, 22:02 18-09-2011 |
|