createProcess()不起作用?

时间:2015-11-13 19:43:34

标签: c++ createprocess

我试图在Windows 7上的windows visual studio 2012专业版上使用visual c ++打开一个程序。代码将顺利运行,但实际上不会打开程序。我也没有得到任何构建错误。这是我的代码

#include <iostream>
#include <Windows.h>

int main ()
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    if (!
    CreateProcess
            (
            TEXT("C:\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"),
            NULL,NULL,NULL,FALSE,
            CREATE_NEW_CONSOLE,
            NULL,NULL,
            &si,
            &pi
            )
            )
        {
            std::cout << "Unable to execute.";
        }

}

我正在尝试打开谷歌浏览器作为测试尝试。此外,我得到了部分代码和本网站的一些帮助http://www.cplusplus.com/forum/beginner/48283/我会感激任何帮助!

编辑:

现在我知道createProcess函数正在运行。为什么我尝试用c ++打开文本文件,没有错误,但实际的文本记事本不会打开。这是代码

STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    if (!
    CreateProcess
            (
            TEXT("C:\\Users\\Mohammed Mehdi\\Documents\\Test\\Test.txt"),
            NULL,NULL,NULL,FALSE,
            CREATE_NEW_CONSOLE,
            NULL,NULL,
            &si,
            &pi
            )
            )
        {
            cout << "Unable to execute.";
        }

2 个答案:

答案 0 :(得分:3)

我认为你错过了'\'。

而不是 TEXT("C:\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe")

尝试 TEXT("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe")

答案 1 :(得分:0)

对于问题的第二部分,您正在尝试使用自己的txt作为过程。那行不通。而是使用记事本:

TEXT("C:\\Users\\Mohammed Mehdi\\Documents\\Test\\Test.txt")

收件人:

TEXT("C:\\windows\\system32\\notepad.exe /A C:\\Users\\Mohammed Mehdi\\Documents\\Test\\Test.txt")