Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > узнать по полному имени файла запущен ли он


Автор: 12usver12 21.3.2009, 14:15
толи встречал когда-то winapi функцию которая по FullPath файла узнает исполняется ли файл .exe , подскажите если это можно сделать проще без перебора процессов

Автор: GremlinProg 21.3.2009, 15:52
GetModuleHandle

Автор: 12usver12 21.3.2009, 16:44
не работает всегда нулевое значение , GetModuleHandle - дает handle модуля в своем адресном пространстве

Автор: GremlinProg 21.3.2009, 17:58
ну да, так и есть, тогда по аналогии, пробуй просто открыть этот файл (CreateFile), если он запущен, файл, соответственно, не откроется

Добавлено через 7 минут и 18 секунд
Код

HANDLE hFile    = ::CreateFile(_T("C:\\путь\\к\\образу.exe"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile == INVALID_HANDLE_VALUE){
  //запущен либо редактируется
}
::CloseHandle(hFile);

Автор: 12usver12 21.3.2009, 19:20
о а вот это сработало !!! thnks

Автор: xvr 23.3.2009, 17:55
Он так же не откроется, если у тебя нет соответствующих прав. Так что это не 100% надежный метод

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)