|
김유미 님이 쓰신 글 :
: WinExec를 이용해서 콘솔 프로그램을 실행했습니다.
: 옵션은 SW_HIDE 를 주었습니다.
: WinExec의 실행이 종료되기 전에 다음으로 진행하는 문제가 있네요
: 종료된것만 확인하고 다음으로 갈수 있으면 좋겠습니다.
============================================
아래 함수를 사용해 보시죠.
프로세스에 실행파일이 있다면 지금도 실행중, 없다면 종료되었겠지요...
아래 함수에서는 전달해 줄 파일명으로 소문자를 사용해야만 합니다...
도움이 되셨기를...
그럼.
(사용 예) bool bb=IsAlreadyEXE("aaa.exe");
bool __fastcall IsAlreadyEXE(AnsiString exename)
{
HANDLE snapshot;
PROCESSENTRY32 processinfo;
processinfo.dwSize = sizeof(processinfo);
snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (snapshot == NULL) return false;
bool isin=false,status = Process32First(snapshot, &processinfo);
while (status) {
String buffer;
int length;
buffer.SetLength(512);
length = sprintf(buffer.c_str(), "%08x", processinfo.th32ProcessID);
buffer.SetLength(length);
AnsiString one=AnsiString(processinfo.szExeFile);
if (one.LowerCase().Pos(exename)) {
isin=true;
break;
}
status = Process32Next(snapshot, &processinfo);
}
return isin;
}
//---------------------------------------------------------------------------
|