如何从隐藏的文件夹中运行程序WinAPI的
我尝试使用此代码运行程序:如何从隐藏的文件夹中运行程序WinAPI的
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”)。文件夹“测试”被隐藏 如何解决它?
该文件夹被隐藏不相关。这在这里没有影响。
正如在评论中所讨论的那样,您正在铸造lpCommandLine
参数的事实表明szPathToFile
不是正确的类型。它必须是一个指向宽字符可修改数组的指针。如果是的话,那么你可以省略剧组,编译器会直接接受szPathToFile
。
最有可能的是szPathToFile
实际上是一个指向ANSI编码数组的8位char
。
我使用CreateProcessW。该功能适用于Unicode。问题是该目录是隐藏的。一切正常,如果目录是可见的。 – igas 2014-09-29 07:46:38
显然你正在调用Unicode功能。然而,演员是假的。这意味着'szPathToFile'编码错误。演职人员不能改变这一点。它只是停止编译器帮助你。删除演员。正如我所说,隐藏或不是没有区别。也就是说,如果你的意思是隐藏着'FILE_ATTRIBUTE_HIDDEN'。如果你用一些邪恶的手段来隐藏事物,那么情况就不同了。 – 2014-09-29 07:55:08
这样的表演让我很紧张。 – chris 2014-09-01 17:42:44
szPathToFile - 宽字符串 – igas 2014-09-01 17:52:29
没有必要施放它。 – chris 2014-09-01 17:54:21