这个“简单”的问题似乎充满了次要问题。例如。新进程是否打开多个窗口;它有启动画面吗?有简单的方法吗?(我正在启动一个新的Notepad++实例)...std::tstringtstrNotepad_exe=tstrProgramFiles+_T("\\Notepad++\\notepad++.exe");SHELLEXECUTEINFOSEI={0};sei.cbSize=sizeof(SHELLEXECUTEINFO);sei.fMask=SEE_MASK_NOCLOSEPROCESS;sei.hwnd=hWndMe;//Thisapp'swindowhandlesei.lpVerb
我在C++程序中使用ShellExecuteEx函数来启动Uninstall.lnk文件。在我的程序中,我想等待卸载程序完成。我的第一次尝试是在SHELLEXECUTEINFO结构中设置SEE_MASK_NOCLOSEPROCESS标志,然后在可用的hProcess句柄上调用WaitForSingleObject在传递给ShellExecuteEx的SHELLEXECUTEINFO结构中,但它似乎仍然返回得太早。我目前的怀疑是,这是因为ShellExecuteEx启动的进程(它是否启动了一个新的shell?)创建了新的子进程,但没有等待它们。所以我试图创建一个“等待我的子进程和它启动的
我使用ShellExecuteEx调用iexplore.exe,每当我启动应用程序时,都会创建一个新的InternetExplorer实例,无论InternetExplorer是否已经打开。我想改变这一点,如果已经有一个InternetExplorer实例,我需要在该实例中打开一个新选项卡,其中包含我传递给ShExecInfo.lpParameters的地址,因此无需创建新窗口。有没有办法做到这一点?请指教..更新:在下面的回答中我遇到了一个问题,当我将lpFile参数设置为“iexplore.exe”并将lpParameters设置为“www.google.com”时,会打开两个窗口
我正在使用ShellExecuteEx在C中执行命令。有没有办法使用ShellExecuteEx并捕获标准输入/输出/错误?注意:我不想使用CreateProcess。 最佳答案 我曾经像你一样发现问题。假设,您想要从dir命令生成的STDOUT中捕获输出,并将捕获的内容保存到out.txt中。使用文本编辑器并输入dir>out.txt并用mybat.bat保存它(*.bat,不要*.txt)在您的c/c++程序中,键入WinExec("mybat.bat",SW_HIDE);并运行您的应用程序。打开out.txt您会看到当前目录下
我想显示来self的C++代码的文件的Windows文件属性对话框(在Windows7上,使用VS2012)。我找到了以下代码inthisanswer(其中还包含一个完整的MCVE)。我也尝试先调用CoInitializeEx(),如documentationofShellExecuteEx()中所述://WhetherIinitializeCOMornotdoesn'tseemtomakeadifference.CoInitializeEx(NULL,COINIT_APARTMENTTHREADED|COINIT_DISABLE_OLE1DDE);SHELLEXECUTEINFOin