Текущий архив: 2007.07.08;
Скачать: CL | DM;
Вниз
Эмуляция CAD и Виста Найти похожие ветки
← →
Eraser © (2007-01-28 22:49) [0]Задача такая, необходимо эмулировать Alt+Ctrl+Del в Висте. Права системы имеются.
В предыдущих версиях это делалось примерно такfunction CADEmulateThreadFunct(Parameter: Pointer): Integer;
var
hDesktop, hDeskPrev: HDESK;
begin
Result := 0;
try
hDeskPrev := GetThreadDesktop(GetCurrentThreadId);
hDesktop := OpenDesktop("Winlogon", 0, false,
DESKTOP_CREATEMENU or DESKTOP_CREATEWINDOW or
DESKTOP_ENUMERATE or DESKTOP_HOOKCONTROL or
DESKTOP_WRITEOBJECTS or DESKTOP_READOBJECTS or
DESKTOP_SWITCHDESKTOP or GENERIC_WRITE);
if not SetThreadDesktop(hDesktop) then
beep;
PostMessage(HWND_BROADCAST, // "SAS Window"
WM_HOTKEY, 0, MAKELONG(MOD_CONTROL or MOD_ALT, VK_DELETE));
SetThreadDesktop(hDeskPrev);
CloseDesktop(hDesktop);
finally
EndThread(0);
end;
end;
при условии, что вызывающий код выполняется с правами системной учетной записи.
Однако в Висте "SAS Window", как и всю GINA убрали. Т.о. образом данный метод не подходит.
Повторюсь. Мне не нужно перехватывать CAD, мне его нужно эмулировать... возможно в висте появилась какая-то ф-ция вроде LockWorkstation.. но я не нашел.
Спасибо.
← →
BiN © (2007-01-29 12:22) [1]
> возможно в висте появилась какая-то ф-ция вроде LockWorkstation.
> . но я не нашел.
Не знаю насчет CAD-диалога, но LockWorkStation есть и в висте.
← →
Piroxyline © (2007-01-29 14:27) [2]А "ручное" нажатие на кнопки не подойдет? Через keybd_event (или как оно там)?
← →
Eraser © (2007-01-29 21:44) [3]> [1] BiN © (29.01.07 12:22)
да знаю, что есть )) нужно что-то похожее только для CAD )
> [2] Piroxyline © (29.01.07 14:27)
эт вряд ли.. хотя не пробовал.. пробовал еще давно под XP, там не подходило вроде.
Страницы: 1 вся ветка
Текущий архив: 2007.07.08;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.021 c