Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 15.12.2016, 16:00   #11
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 9,190
Репутация: 1406

icq: 216409213
По умолчанию

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

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

icq: 216409213
По умолчанию

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

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

icq: 216409213
По умолчанию

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

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

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

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

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

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

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

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

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

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отследить разбегание Sashenka1 Общие вопросы Delphi 0 04.04.2016 17: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




21:11.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru