Форум: "WinAPI";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];
ВнизКак запустить диалог Найти похожие ветки
← →
copyr25 (2002-01-27 19:06) [4]Увы, ExitWindowsEx не вызывает диалог "Завершение работы",
она выполняет его пункты меню.
Я додумался лишь до такого прикола :))
procedure TForm1.Button1Click(Sender: TObject);
var
Tray,Child: HWnd;
R:TRect;
C : Array[0..127] of Char;
S : String;
P: TPoint;
begin
Tray:=FindWindow("Shell_TrayWnd",nil);
Child:=GetWindow(Tray,GW_CHILD);
while Child <> 0 do
begin
If GetClassName(Child,C,SizeOf(C)) > 0
then
//////// ищем кнопку "Пуск"
begin
S:=StrPAS(C);
If UpperCase(S)="BUTTON" then
//////// определяем координаты центра кнопки "Пуск"
begin
GetWindowRect(Child,R);
P.x:=R.Left+(R.Right-R.Left) div 2;
P.y:=R.Top+(R.Bottom-R.Top) div 2;
//////// нажимаем на кнопку "Пуск"
SetCursorPos(P.x,P.y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,P.x,P.y,0,0);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,P.x,P.y,0,0);
//////// вызываем диалог "Завершение работы..."
SetCursorPos(P.x,P.y-25); // <-- если таскбар лежит внизу
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,P.x,P.y,0,0);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,P.x,P.y,0,0);
end;
end;
Child := GetWindow(Child,GW_HWNDNEXT);
end;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c