我尝试用这段代码运行程序:
PROCESS_INFORMATION ProcInfo = { 0 };
STARTUPINFO StartInfo = { 0 };
StartInfo.cb = sizeof(StartInfo);
if (!::CreateProcessW(NULL, (LPWSTR)wszPathToFile, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &StartInfo, &ProcInfo)) {
return GetLastError();
}
但我收到错误消息:系统找不到指定的路径。 wszPathToFile - 文件路径(例如:“C:\test\test.exe/retest”)。文件夹“test”被隐藏 如何解决?
最佳答案
文件夹是隐藏的无关紧要。这在这里没有影响。
正如评论中所讨论的,您正在转换 lpCommandLine
参数这一事实表明 szPathToFile
不是正确的类型。它必须是指向可修改的宽字符数组的指针。如果是,那么您可以省略转换,编译器将直接接受 szPathToFile
。
很可能 szPathToFile
实际上是指向 ANSI 编码的 8 位 char
数组的指针。
关于c++ - 如何从隐藏文件夹运行程序 WinAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25610752/