3
我目前正在開發一個程序,該程序啓動用戶指定的程序。傳入的 與用戶輸入的wstring相同。我的問題是如何讓它拋出異常或檢查「passedIn」是否爲vaild。目前,如果用戶輸入「notepad.exe」,它會正確啓動它,但如果他們輸入諸如「asdf」之類的虛假東西或某些東西,它仍會創建該過程。如何檢測傳遞到創建進程的無效命令
try {
wchar_t* commandLine = new wchar_t [CP_MAX_COMMANDLINE];
wcsncpy_s(commandLine, CP_MAX_COMMANDLINE, passedIn.c_str(), passedIn.size() +1);
CreateProcess(NULL,
commandLine,
NULL, NULL,
false,CREATE_NEW_CONSOLE,NULL,
NULL,
&sinfo,
&pi);
delete [] commandLine;
}
catch (int e) {
cout << "An exception occurred. Exception Nr. " << e << endl;
}
我希望我的抓住會抓住它,但它does not。有什麼我可以做,以檢查它的虛擬?
謝謝!
完美!謝謝,當我的程序隨機崩潰時,我正在使用getLastError。我必須再等6分鐘才能將此標記爲正確的答案。 – Johnston 2011-05-31 00:40:28