Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отследить завершение работы программы, Выполнить нужную процедуру 
:(
    Опции темы
NikoLLa
Дата 22.1.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.9.2005
Где: Челябинск

Репутация: нет
Всего: нет



Есть такая тема: мне необходимо написать прогу, которая бы выключала компьютер в тот момент когда завершается работа другой программы(допустим "Word"). Прогу выключения компа я уже написал, а вот по завершению работы Word чтоб выключала - не знаю как писать.
Т.е. должно происходить следующее: я запускаю Word, работаю в нем, потом закрываю его, а компьютер сразу же выключается.
Заранее, всем огромное спасибо!!!!
PM MAIL   Вверх
Fin
Дата 22.1.2006, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



С помошью CreateProcess запускаеш сторонию программу. Получаеш Хэндл процесса. Затем вешаеш свой поток в спячку через функцию WaitForSingleObject. Объектом данной функции будет Хэндл сторонего процесса.
Как только твой поток проснулся, можеш выключать компьютер.
Добавлено @ 20:13
Вот код на С++ из книги Рихтера
Цитата

Если Вы хотите создать новый процесс, заставить его выполнить какис-либо операции и дождаться их результатов, напишите примерно такой код

Код

PROCESS_INFORMATION pi; 
DWORD dwExitCode; 

// порождаем дочерний процесс
BOOL fSuccess = CreateProcess(..., &pi}; 

if (fSuccess) { 

// закрывайте описатель потока, как только необходимость в нем отпадает! 
CloseHandle(pi.hThread);


// приостанавливаем выполнение родительского процесса, 
// пока не завершится дочерний процесс 
WaitForSingleObject(pi.hProcess, INFINlTI);

// дочерний процесс завершился; получаем код его завершения 
GetExitCodeProcess(pi.hProcess, &dwExitCode); 

// закрывайте описатель процесса, как только необходимость в нем отпадает! 
CloseHandle(pi.hProcess);

} 


Это сообщение отредактировал(а) Fin - 22.1.2006, 20:15


--------------------
Пролетал мимо.
PM MAIL   Вверх
NikoLLa
Дата 23.1.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.9.2005
Где: Челябинск

Репутация: нет
Всего: нет



Веселый код smile . Только непонятный. Я в Си++ не ас. Если не трудно поясни, пожалуйста этот красивый код, куда его вставить и что потом сделать. И небольшая просьба: поясни это огромное колличество умных слов.
PM MAIL   Вверх
Exception
Дата 23.1.2006, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Код
Sub Form_Load
Dim pid As Long, hProc As Long
pid = Shell("c:\word.exe")
hProc = OpenProcess(SYNCHRONIZE, 0, pid)
WaitForSingleObject hProc, INFINITE
CloseHandle hProc
MsgBox "Ready!"
End Sub
Описание констант и функций бери из API Viewer'a
PM   Вверх
Akina
Дата 23.1.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Гм... а запусти это приложение скриптом, и в скрипте после завершения приложения запусти прогу выключения.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Exception
Дата 23.1.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Мой способ проще )
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.