c++ - 如何从隐藏文件夹运行程序 WinAPI

标签 c++ winapi visual-c++

我尝试用这段代码运行程序:

    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/

相关文章:

c++ - 在多个文件中使用不带参数的#pragma hdrstop 有什么作用?

c++ - 调用子类 QWidget 的方法

c++ - 检测多个枚举项何时映射到相同值

C++ 读取 char* 中的注册表字符串值

windows - 使用 CreateProcessWithLogonW 从服务启动的进程立即终止

windows - 应该使用 "__imp__ApiName@N"还是 "_ApiName@N"?

c++ - 静态变量动态分配

c++ - 来自 QT 的 Octave : undefined reference

c++ - MSVC++ 限制关键字和局部变量

visual-c++ - 连接到 MSSQL Server Express 并使用 Visual C++ Express 提取一些表数据的最少代码