VC++.NETで二重起動をしないプログラムを作っているのですが
java.exeのコマンドにコメントの-jar bo.jarを引数として当てることは
できるのでしょうか?
またこの場合java.exeのプロセスを取ってしまいjarの起動を待つことができず
二重起動エラーができないような気がするのですが・・・
説明がわかりにくく、たびたび質問ですみませんがよろしくお願いします。
hMutex = CreateMutex(NULL, TRUE, "Mutex");
// 二重起動エラー
if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
MessageBox(NULL, "既に起動してます", "Error", MB_OK);
return FALSE;
}
SHELLEXECUTEINFO bo;
memset( &bo, '\0', sizeof(SHELLEXECUTEINFO) );
bo.cbSize = sizeof(SHELLEXECUTEINFO);
bo.lpVerb = "open";
bo.lpFile = "jre\\bin\\java.exe";//-jar bo.jar
bo.lpParameters = NULL;
bo.nShow = SW_SHOW;
bo.fMask = SEE_MASK_NO_CONSOLE | SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx( &bo );
WaitForSingleObject(bo.hProcess, INFINITE );
ReleaseMutex(hMutex);
CloseHandle(hMutex);
CloseHandle(bo.hProcess);
自己解決解決できました。
ツイート | ![]() |