Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как запустить диалог


copyr25 ©   (2002-01-26 17:10:00) 

Программно т.е.?


copyr25   (2002-01-29 20:35:00) [1]

Код yus"a прекрасно работает. Всем спасибо:))


serg001   (2002-01-29 14:40:00) [2]

PostMessage(FindWindow(PChar("Shell_TrayWnd"),nil), WM_CLOSE,0,0);


B@Nt   (2002-01-29 13:53:00) [3]

В ФАКЕ есть статья под названием:="Малоизвестные команды для запуска из командной строки".
Там точно есть, что тебе надо.


yus   (2002-01-27 22:56:00) [4]

Проще explorer послать WM_Close

procedure TForm1.Button1Click(Sender: TObject);
var
Hand:THandle;
begin
hand := FindWindow(nil,"Program Manager");
postmessage(hand ,wm_close,0,0);
end;


copyr25   (2002-01-27 19:06:00) [5]

Увы, 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;


copyr25   (2002-01-27 01:56:00) [6]

Ok


Olgerd   (2002-01-27 01:14:00) [7]

Послать WM_Close explorer"у


Raptor   (2002-01-26 23:01:00) [8]

Попробуй ExitWindowsEx.


Наверх

Титульная страница Поиск, карта сайта Написать письмо