Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2016, 15:00   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

WaitForSingleObject не гарантирует, что программа не меняется или ее кто-то не меняет. Он лишь говорит, что сменилось состояние программа выполняется.
Если вам такое же поведение надо, то просто открывайте и читайте файл.
p51x вне форума Ответить с цитированием
Старый 15.12.2016, 15:08   #12
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Если вам такое же поведение надо, то просто открывайте и читайте файл.
Мне нужно просто узнать когда программа закрылась, изменилось что-то там, или же нет, не важно, просто узнать, что она закрылась. Но это касается и файлов, с чем эта штука уже не связана.
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 15:16   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Стоп. Вы же в первом посте написали, что WaitForSingleObject вам хватает для программ. Разговор был про файлы или нет?
p51x вне форума Ответить с цитированием
Старый 15.12.2016, 15:18   #14
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от demon31 Посмотреть сообщение
НО он работает только для приложений, на файлах он начал выбивать ошибки
Цитата:
Сообщение от demon31 Посмотреть сообщение
Ну вот и вопрос, можно ли для ShellExecute отследить закрытие программы или файла, короче того что открыто будет.
Вы вообще читаете суть?
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 16:02   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Читаю. Про это вам и написал. В вашем случае либо просто читать файл, либо если так печет запускать и ожидать ту программу, которая работает с вашим файлом (например, notepad). Но это печальный путь, тот же блокнот может незакрывая открыть другой файл.
p51x вне форума Ответить с цитированием
Старый 15.12.2016, 17:10   #16
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Читаю. Про это вам и написал. В вашем случае либо просто читать файл, либо если так печет запускать и ожидать ту программу, которая работает с вашим файлом (например, notepad). Но это печальный путь, тот же блокнот может незакрывая открыть другой файл.
То что может открыть понятно, но тут хотя бы так сделать .-.
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 17:54   #17
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

А в чем суть проблемы?
waleri вне форума Ответить с цитированием
Старый 15.12.2016, 18:06   #18
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
А в чем суть проблемы?
Есть ShellExecute, открывает ЛЮБЫЕ файлы (в том числе и экзешники), как и нужно, но нельзя отследить момент закрытия файлов.

Есть CreateProcess / WaitForSingleObject, позволяет отследить момент закрытия файлов, НО открывает только экзешники, или же приходится прописывать ручные пути к экзешнику программы через которую открыть.

Мне нужно ShellExecute с WaitForSingleObject
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 18:57   #19
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Это не суть проблемы, это попытка ее решить.
Я спрашиваю какова конечная цель.

Кстати, ShellExecute в итоге обращается к CreateProcess так что процессы запущенные им можно ровно так же отслеживать. Так же можно не использовать ShellExecute а напрямую вызвать CreateProcess с нужными параметрами - все прописано в реестре.
waleri вне форума Ответить с цитированием
Старый 15.12.2016, 19:01   #20
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Я спрашиваю какова конечная цель.
Мне нужно отследить когда закрыли открытый через ShellExecute файл.

WaitForSingleObject работает в ShellExecute, не спорю, но он возвращает значение сразу же при открытии, не знаю почему, в то время как в CreateProcess срабатывает правильно, в момент закрытия.
demon31 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отследить разбегание Sashenka1 Общие вопросы Delphi 0 04.04.2016 16:40
Отследить ошибку LuxMi C# (си шарп) 5 01.02.2013 09:25
Отследить программу Михаил Юрьевич Общие вопросы Delphi 6 09.09.2012 17:06
Отследить проблему giarmul JavaScript, Ajax 0 09.08.2010 20:49
Отследить стринги san72 Общие вопросы Delphi 2 30.05.2009 17:40