VC6、MFCダイアログベースの製作を行っています。
特定の実行ファイル(.exe)が起動中かどうか知るためには
どのような記述をすればいいのかわかりません。
起動中で、ウィンドウがなくタスクトレイに入っている実行
ファイル(.exe)にも対応した記述を書きたいのですが、さっ
ぱりわかりません。
わかる方、ご教授お願いいたします。
exe ファイル名がわかっているのなら、現在コンピュータ上で実行されているすべての exe(プロセス)を調べてやることで可能です。
詳しくは、MSDNで「Win32 でアプリケーションを列挙する方法」を参照してください。
返答ありがとうございます。
検索、検索、検索をし、勉強したところ以下のようなコードを書き、解決しました。ありがとうございました。
BOOL CMyClass::GetExeProcess(const CString &exename)
{
HANDLE hSnapShot; //スナップショット
PROCESSENTRY32 pEntry; //プロセスエントリ
CString buf;
//システムのスナップショットを取得
hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
//プロセスントリの前処理(Process32Firstを呼ぶために必要)
pEntry.dwSize =sizeof(pEntry);
//最初のプロセスの取得(Process32Nextを呼ぶために必要)
Process32First (hSnapShot,&pEntry);
while(1){
//プロセスの取得
BOOL hRes = Process32Next (hSnapShot,&pEntry);
// プロセスが取得できなかったらLoopを抜ける
if(hRes == FALSE)return FALSE;
//Exeファイル名
buf = pEntry.szExeFile;
if( exename == buf )return TRUE;
}
}
ツイート | ![]() |