蒟蒻awa 2023-09-01 08:21 采纳率: 62.5%
浏览 4
已结题

请问如何使用WINAPI运行进程

昨天我看到了WINAPI的一个函数,这个函数可以运行PE文件,就算PE文件无后缀也可以运行
只需要传入这个文件的绝对位置+文件名,就可以运行这个文件
(这也是taskmgr里为什么会出现TMP后缀文件的原因)
想请问这是哪个函数?我不记得了

  • 写回答

2条回答 默认 最新

  • raymond27 2023-09-01 08:47
    关注

    您说的函数可能是 CreateProcess 函数,它是 Windows API 中用于创建新进程的函数之一。

    您可以通过传入要运行的可执行文件的路径和文件名,以及其他相关参数,来调用 CreateProcess 函数来启动一个新进程。该函数会返回一个表示新进程的句柄。这个函数也可以运行没有后缀名的可执行文件,只要您提供了正确的文件路径。

    以下是一个简单的示例代码片段,展示了如何使用 CreateProcess 函数来运行一个可执行文件:

    #include <Windows.h>
    
    int main()
    {
        STARTUPINFO si;
        PROCESS_INFORMATION pi;
        ZeroMemory(&si, sizeof(si));
        ZeroMemory(&pi, sizeof(pi));
        
        // 设置 STARTUPINFO 结构体
        si.cb = sizeof(si);
        
        // 创建新进程
        if (CreateProcess(NULL, "<文件路径>", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
        {
            // 等待新进程结束
            WaitForSingleObject(pi.hProcess, INFINITE);
            
            // 关闭句柄
            CloseHandle(pi.hProcess);
            CloseHandle(pi.hThread);
        }
    
        return 0;
    }
    

    请将 <文件路径> 替换为您要运行的可执行文件的路径和文件名。在调用 CreateProcess 之后,您可以使用 WaitForSingleObject 函数等待新进程的结束。最后,不要忘记关闭进程和线程句柄。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月24日
  • 已采纳回答 1月16日
  • 创建了问题 9月1日