빌더님 이번에도 도움을 주시네요.
델파이로 수정하는건 어떻게든 해보면 될것 같습니다.
감사합니다.
아참 그리고 앞에 WorkerW를 찾는거요.
지금도 못하고 있어요.
쉽게 될 줄 알고 달려들었는데 제 공부가 미천하다보니....^^
빌더 님이 쓰신 글 :
: C++로 짠다면, 다음과 같은 식으로 구현하면 되겠죠.
:
:
: HANDLE gMutexHandle = NULL;
:
: WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
: {
: try
: {
: try
: {
: gMutexHandle = CreateMutexW(NULL, true, L"Global/Application/Mutex");
: if( gMutexHandle && !GetLastError() ) {
: Application->Initialize();
: Application->MainFormOnTaskBar = true;
: Application->CreateForm(__classid(TForm1), &Form1);
: Application->Run();
: }
: else {
: PROCESS_INFORMATION pi;
: CreateProcessW(NULL, Application->ExeName.w_str(), NULL, NULL, true, 0, NULL, NULL, NULL, &pi);
: Application->Terminate();
:
: }
: }
: catch (Exception &exception)
: {
: Application->ShowException(&exception);
: }
: catch (...)
: {
: try
: {
: throw Exception("");
: }
: catch (Exception &exception)
: {
: Application->ShowException(&exception);
: }
: }
: }
: __finally {
: if( gMutexHandle ) {
: CloseHandle( gMutexHandle );
: OutputDebugStringW(L"Application Terminated...");
: }
: }
: return 0;
: }
:
:
:
: 위와 같은 식으로 구현하면 기존의 프로세스는 종료되고, 새로운 프로세스가 생성되게 됩니다.
: 델파이로 구현하는 코드는 생략 합니다.
|