创建进程来打开加载文件的程序
CreateProcess to open program which loads a file
我有一个情况,我想让程序a打开另一个程序B,并让程序B打开指定的文件。我目前正试图通过使用CreateProcess并在命令行参数中传递文件路径来实现这一点。下面是我的代码:
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
CreateProcess("C:\ProgramB.exe", "C:\MyFile.txt", NULL, NULL,
FALSE, 0, NULL, NULL, &si, &pi);
我在这里做错了什么?程序B的DragAndDrop是真的,拖放文件到窗口中工作正常(我尝试过发送WM_DROPFILES消息也没有成功),程序B可以用我打开的文件对话框打开文件,但是这个命令有一个问题,说它找不到文件。
你在注释中声明当你执行
"C:ProgramB.exe" "C:MyFile.txt"
从命令提示符中启动程序,但不打开文件。这意味着可执行文件不支持将文件名作为参数传递。这解释了为什么呼叫CreateProcess
失败。它所做的与命令解释器cmd.exe完全相同。如果一个失败了,另一个也会失败。
看起来你所尝试的可能是不可能的。
您还说您向流程发送了WM_DROPFILES
。这不是你能做到的。如果应用程序确实支持拖放,那么您将能够自动打开文件,但它比从不同的进程发送WM_DROPFILES
更复杂。第一步是确认应用程序是否可以接受交互式的拖放操作。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 使用mongocxx驱动程序时包含头文件问题
- 使用VerQueryValue检索应用程序的文件描述
- 编译多文件C++程序
- Visual C 32位整数从文件到8位字符到文件 - 程序在某些整数上崩溃
- 文件程序不会停止显示垃圾值
- 简单的QT从文本文件程序中读取不编译
- 从文件 C++ 程序读取停止工作
- C++ - 需要有关如何正确设计多文件程序的建议
- C++文件 I/O - 程序挂起
- 简单的文件 I/O 程序C++
- 有一个简单的程序文件/程序文件(x86)指令的c++在windows
- 配置文件c++程序在perf
- 从同一文件夹读取文件(c++程序)
- 单文件程序的未定义虚函数表
- 无法用多文件程序创建SDL线程
- 我的第一个多文件C++程序不断给我错误消息
- 配置文件C++程序基于墙上的时钟时间与英特尔Vtune放大器
- c++复制文本文件程序使用头文件