Цитата Лександер:
Готов сделать длл-ку, но нужны тесты для отладки »
|
Лександер, не отработало (Win7 x64). Зато получилось через Code.
Код:
[code]
#ifndef UNICODE
#error REQUIRES UNICODE INNO SETUP!
#endif
const
CLSID_DesktopGadget = '{924CCC1B-6562-4C85-8657-D177925222B6}';
type
IDesktopGadget = interface(IUnknown)
'{924CCC1B-6562-4C85-8657-D177925222B6}'
function RunGadget(gadgetPath: String): HResult;
end;
procedure ShowGadget(gadgetPath: String);
var
pDG: IDesktopGadget;
Obj: IUnknown;
begin
if (GetWindowsVersion shr 24 > 6) or ((GetWindowsVersion shr 24 = 6) and ((GetWindowsVersion shr 16) and $FF > 0)) then
begin
Obj := CreateComObject(StringToGuid(CLSID_DesktopGadget));
pDG := Obj as IDesktopGadget;
pDG.RunGadget(gadgetPath);
CoFreeUnusedLibraries;
end;
end;
procedure InitializeWizard();
begin
ShowGadget(ExpandConstant('{pf}\Windows Sidebar\Gadgets\Clock.Gadget'));
end;
P.S. Код через F7 не гонять - не отработает, на x64-системах не использовать гаджеты из {pf64} - не отработает, после закрытия гаджета дать системе 10-15 сек. сделать свои черные дела, иначе повторный запуск скрипта - ... ну, вы уже знаете.