有一个exe文件,但需要通过鼠标拖拽一个文件进入这个exe窗口内才能执行,但这样效率太低重复性动作太高,请教如何通过一个程序调用这个需要拖拽的exe执行并且关闭。思路大概这样:
for(文件数量)
{
ShellExecuteA(NULL, "open", "D:\\d\\T.exe", NULL, NULL, SW_SHOWNORMAL);// 打开外部文件
// 关闭这个外部文件
}
for(文件数量)
{
ShellExecuteA(NULL, "open", "D:\\d\\T.exe", NULL, NULL, SW_SHOWNORMAL);// 打开外部文件
// 关闭这个外部文件
}
2.WinExec例子 SHELLEXECUTEINFO si;
ZeroMemory(&si, sizeof(si));
si.cbSize = sizeof(si);
si.fMask = SEE_MASK_NOCLOSEPROCESS;
si.lpVerb = _T("open");
CString strbatpath;
strbatpath=GetAppPath()+_T("路径");
si.lpFile = strbatpath;
si.nShow = SW_SHOWNORMAL; ShellExecuteEx(&si);
m_hInstallProcess=si.hProcess;
WaitForSingleObject(si.hProcess,INFINITE);
CloseHandle(si.hProcess);
然后让它关闭等。
需要考虑程序启动后数据是否要跟你的程序交互
我的意思是能不能通过某个操作把需要拖拽的文件的路径名当参数a传入,然后程序调用外部的exe的时候把这个参数a传给这个只能靠拖拽处理文件的exe程序完成操作。
VC直接发送WM_DROPFILES消息,模拟拖拽动作代码
先打开这个需要拖拽的exe,然后模拟拖拽代码运行正常返回true了,但这个拖拽的exe没有处理任何数据orz
有几千个文件需要解密,但处理的exe文件双击后只有一个窗口任何按钮都没有如下图,就是说每次你只能用鼠标将几千个文件逐一拖拽到这个没有任何按钮的窗口文件内然后程序生成其它文件,例如解密。这个exe文件我没有源代码,所以修改不到。于是我随便开了一个控制台程序测试一下,希望用程序来处理。
看 能不能 模拟 一个 dropFile
“VC直接发送WM_DROPFILES消息,模拟拖拽动作代码”