Здорово!
Появилася такая трабла — нужно отследить присутствие в запущенном виде какого-либо процесса по его названию. Простой перебор хэндлов окон через GetNextWindow не подходить, бо их слишком багато, да и вообще неудобно. Так не знает ли кто-нибудь: как вытянуть сокращённый список процессов, есть быть присутствующий в окошки, выкликаемом при Cntrl+Alt+Del
Из протокола следствия: на обследование направляется труп без признаков смерти, в кармане трупа дискета — видимо, труп компьютерный..
Re: Как получить сп-к процессов из ок-ка Cntrl+Alt+Del
EnumWindows только. А к тому окошку, что ты говоришь, тебя никто не пустит. Сколько бы ни было окон, хрень эта будет шустро работать.
U>Появилася такая трабла — нужно отследить присутствие в запущенном виде какого-либо процесса по его названию. Простой перебор хэндлов окон через GetNextWindow не подходить, бо их слишком багато, да и вообще неудобно. Так не знает ли кто-нибудь: как вытянуть сокращённый список процессов, есть быть присутствующий в окошки, выкликаемом при Cntrl+Alt+Del
Re: Как получить сп-к процессов из ок-ка Cntrl+Alt+Del
Здравствуйте Unman, Вы писали:
U>Здорово! U>Появилася такая трабла — нужно отследить присутствие в запущенном виде какого-либо процесса по его названию. Простой перебор хэндлов окон через GetNextWindow не подходить, бо их слишком багато, да и вообще неудобно. Так не знает ли кто-нибудь: как вытянуть сокращённый список процессов, есть быть присутствующий в окошки, выкликаемом при Cntrl+Alt+Del
Для переюора процессов в системе используй TOOLHELP32. Например так:
#include <tlhelp32.h>
HANDLE h = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
pe.dwSize = sizeof(pe);
::Process32First(h,&pe);
do
{
// В структуре pe лежит интересная информация
// Тебе, вероятно, понадобиться pe.szExeFile - имя запущеного фала, но без пути. Если нужет путь - пиши, помогу.
}
while (::Process32Next(h,&pe));
CloseHandle(h);
Да, может тебе будет интересно: в WinNT это не пашет. Чотя в Win2k прекрасно работет.
Надо подробности? Читай Рихтера (если нужна точная страница — могу поискать; а так лениво) или журнал Программист (http://www.programme.ru) #5/6_2001, стр. 18
"Выше голову" — сказл палач, надевая петлю
Re[2]: Как получить сп-к процессов из ок-ка Cntrl+Alt+Del
Здравствуйте Unman, Вы писали:
U>Здорово! U>Появилася такая трабла — нужно отследить присутствие в запущенном виде какого-либо процесса по его названию. Простой перебор хэндлов окон через GetNextWindow не подходить, бо их слишком багато, да и вообще неудобно. Так не знает ли кто-нибудь: как вытянуть сокращённый список процессов, есть быть присутствующий в окошки, выкликаемом при Cntrl+Alt+Del
Здравствуйте pg, Вы писали:
pg>Здравствуйте CooLer, Вы писали:
CL>>Здравствуйте Unman, Вы писали:
CL>>Да, может тебе будет интересно: в WinNT это не пашет.
pg>EnumProcesses в NT работает. Посмотри Q175030 в MSDNe, там есть полезное...
Конечно, может я и не прав, но, т.к. NT у меня под рукой нет, я опирался исключительно на информацию, почерпнутую из Рихтера. Если интересуют подробности читай разде "Перечисление процессов, выполняемых в системе" главы 4 (в 4-ом издании это стр. 82). Вот цитата: "...разроботчики Windows NT, которым ToolHelp-функции явно не нравятся, не включили их в Windows NT". Вопросы есть?
P.S. Если ты лично видел ToolHelp работающим на NT — беру свои слова обратно, иначе
"Выше голову" — сказл палач, надевая петлю
Re[4]: Как получить сп-к процессов из ок-ка Cntrl+Alt+Del
Здравствуйте CooLer, Вы писали:
CL>Конечно, может я и не прав, но, т.к. NT у меня под рукой нет, я опирался исключительно на информацию, почерпнутую из Рихтера. Если интересуют подробности читай разде "Перечисление процессов, выполняемых в системе" главы 4 (в 4-ом издании это стр. 82). Вот цитата: "...разроботчики Windows NT, которым ToolHelp-функции явно не нравятся, не включили их в Windows NT". Вопросы есть?
CL>P.S. Если ты лично видел ToolHelp работающим на NT — беру свои слова обратно, иначе
Кстати, EnumProcess это не ToolHelp API, котрый действительно не работает в Win NT. Это PSAPI, который работает.
Делай что должно, и будь что будет
Re[2]: Как получить сп-к процессов из ок-ка Cntrl+Alt+Del
Здравствуйте SergH, Вы писали:
SH>Здравствуйте Unman, Вы писали:
U>>Здорово! U>>Появилася такая трабла — нужно отследить присутствие в запущенном виде какого-либо процесса по его названию. Простой перебор хэндлов окон через GetNextWindow не подходить, бо их слишком багато, да и вообще неудобно. Так не знает ли кто-нибудь: как вытянуть сокращённый список процессов, есть быть присутствующий в окошки, выкликаемом при Cntrl+Alt+Del
SH>http://www.rsdn.ru/qna/?baseserv/enumapp.xml
Почитал... проникся.. вот мое мнение:
в определенных ситуациях может оно и хорохо (как, возможно, в данном случае), но информация очень скудная. Где, простите, ProcessID? А где полный путь к запущеному файлу?
Извините, но я однозначно против!
"Выше голову" — сказл палач, надевая петлю
Re[3]: Как получить сп-к процессов из ок-ка Cntrl+Alt+Del
Здравствуйте CooLer, Вы писали:
CL>Почитал... проникся.. вот мое мнение:
CL>в определенных ситуациях может оно и хорохо (как, возможно, в данном случае), но информация очень скудная. Где, простите, ProcessID? А где полный путь к запущеному файлу?
CL>Извините, но я однозначно против!
Здравствуйте SergH, Вы писали:
SH>Здравствуйте CooLer, Вы писали:
CL>>Почитал... проникся.. вот мое мнение:
CL>>в определенных ситуациях может оно и хорохо (как, возможно, в данном случае), но информация очень скудная. Где, простите, ProcessID? А где полный путь к запущеному файлу?
CL>>Извините, но я однозначно против!
SH>Это я виноват, промазал. Вот то, что я имел ввиду — http://www.rsdn.ru/qna/?baseserv/enumproc.xml