有一个exe文件,但需要通过鼠标拖拽一个文件进入这个exe窗口内才能执行,但这样效率太低重复性动作太高,请教如何通过一个程序调用这个需要拖拽的exe执行并且关闭。思路大概这样:
for(文件数量)
{
ShellExecuteA(NULL, "open", "D:\\d\\T.exe", NULL, NULL, SW_SHOWNORMAL);// 打开外部文件
// 关闭这个外部文件
}

解决方案 »

  1.   

    1.ShellExecute
    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);
      

  2.   

    如果可以启动,用ShellExecute等,API
    然后让它关闭等。
    需要考虑程序启动后数据是否要跟你的程序交互
      

  3.   

    这样只是打开那个外部的exe程序,这个外部的exe还是只能靠自己手动把需要修改的文件拖拽到里面执行啊。
    我的意思是能不能通过某个操作把需要拖拽的文件的路径名当参数a传入,然后程序调用外部的exe的时候把这个参数a传给这个只能靠拖拽处理文件的exe程序完成操作。
      

  4.   

    这个exe未必支持外部传参吧,拖拽的话你可以发送WM_DROPFILE来实现。
      

  5.   

    http://www.cnblogs.com/zhujian198/archive/0001/01/01/1523426.html
    VC直接发送WM_DROPFILES消息,模拟拖拽动作代码 
      

  6.   

    不行。
    先打开这个需要拖拽的exe,然后模拟拖拽代码运行正常返回true了,但这个拖拽的exe没有处理任何数据orz
      

  7.   

    这样吧,我说清楚。
    有几千个文件需要解密,但处理的exe文件双击后只有一个窗口任何按钮都没有如下图,就是说每次你只能用鼠标将几千个文件逐一拖拽到这个没有任何按钮的窗口文件内然后程序生成其它文件,例如解密。这个exe文件我没有源代码,所以修改不到。于是我随便开了一个控制台程序测试一下,希望用程序来处理。
      

  8.   

    就是说 这个 exe 是 通过 ’拖拽‘ 来 获得 被 处理 文件 的 ,而 不是通过 输入参数 来 处理的,
    看 能不能 模拟 一个 dropFile
      

  9.   

    http://www.cnblogs.com/zhujian198/archive/2009/07/14/1523426.html
    “VC直接发送WM_DROPFILES消息,模拟拖拽动作代码”