Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024

Профиль | Отправить PM | Цитировать


Цитата Лександер:
Готов сделать длл-ку, но нужны тесты для отладки »
Лександер, не отработало (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 сек. сделать свои черные дела, иначе повторный запуск скрипта - ... ну, вы уже знаете.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:44, 17-02-2012 | #834