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

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

My Computer [D6, WinXP]


Pit ©   (2006-02-25 18:29:00) 

Доброго времени суток Мастера,меня интерисует такой вопрос , при использование функции
PostMessage(FindWindow(CabinetWClass, 'My Computer')), WM_CLOSE, 0, 0);
Окно My Computer закрвается нормально, если же использую
Wnd:= FindWindow(CabinetWClass, 'My Computer');
GetWindowThreadProcessID(Wnd, ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessID);
TerminateProcess(ProcessHandle,4);

Пропадает Task Bar, Tray Bar.
Обьясните пожалуйста поподробнее в чём здесь проблема или дайте ссылку где можно об этом почитать.
Заранее Спасибо.


Pit   (2006-02-25 20:18:00) [1]

Eraser Спасибоза  ссылку, скачал, уже внимательно читаю.


Eraser   (2006-02-25 19:57:00) [2]


> Pit ©   (25.02.06 19:20) [4]


> Хорошо почему здесь Wnd не принадлежит explorer.exe?

потому что принадлежит notepad.exe.
В таком ключе можно до бесконечности дисскутировать, пока ты не прочитаешь хотя бы вот это
http://www.podgoretsky.com/ftp/Docs/Classics/Richter/richter4ru.zip(3.2M)

:-)


Pit   (2006-02-25 19:20:00) [3]

Хорошо почему здесь Wnd не принадлежит explorer.exe?
Wnd := FindWindow('notepad', nil);
GetWindowThreadProcessID(Wnd, ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessID);
TerminateProcess(ProcessHandle,4);

Всё работает отлично.
Если есть желание могу привести код всей программы разберёшся помоги плиз.


Eraser   (2006-02-25 19:13:00) [4]


> Pit ©   (25.02.06 19:10) [2]

вывод? - Wnd тоже принадлежит explorer.exe.


Pit   (2006-02-25 19:10:00) [5]

А если Dial-ap Connection
Wnd:= FindWindow( #32770, 'Caption');
GetWindowThreadProcessID(Wnd, ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessID);
TerminateProcess(ProcessHandle,4);
Происходит тоже, при чём explorer.exe.


Eraser   (2006-02-25 19:03:00) [6]


> Pit ©   (25.02.06 18:29)


> PostMessage(FindWindow(CabinetWClass, 'My Computer')), WM_CLOSE,
>  0, 0);

закрывает указаное окно, а

> TerminateProcess(ProcessHandle,4);

закрывает explorer.exe


Наверх

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