设置参数lpCurrentDirectory为另一个目录

解决方案 »

  1.   

    楼上 我怎么没看见有这个参数呢
    BOOL CreateProcess( 
      LPCWSTR pszImageName, 
      LPCWSTR pszCmdLine, 
      LPSECURITY_ATTRIBUTES psaProcess, 
      LPSECURITY_ATTRIBUTES psaThread, 
      BOOL fInheritHandles, 
      DWORD fdwCreate, 
      LPVOID pvEnvironment, 
      LPWSTR pszCurDir, 
      LPSTARTUPINFOW psiStartInfo, 
      LPPROCESS_INFORMATION pProcInfo
    ); 
      

  2.   

    可还没有执行起来,把exe dll文件放在一起就能执行起来,
      

  3.   

    我试了,可以的。要不然就是那个程序load dll的时候加了路径。
    STARTUPINFO si;
    PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si));
    ZeroMemory(&pi, sizeof(pi));
    si.cb = sizeof(si); if(CreateProcess(NULL, 
    _T("E:\\常用工具\\spyxx.exe"), 
    NULL, 
    NULL, 
    TRUE, 
    NORMAL_PRIORITY_CLASS, 
    NULL, 
    _T("E:\\常用工具\\Spy++"), 
    &si, 
    &pi))
    {
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    }
      

  4.   

    谢谢楼上的!我的意思是这样的,有一个exe文件在一个目录(例如:c:\\a\\bb),有几个dll文件和一个ini在其他目录(d:\\b\\bb),这些文件都是exe所需要的,然后exe需要一个参数“-uninstall”
    所以我是这么写的
    if(CreateProcess(_T("c:\\a\\bb"),   
    “-uninstall”,   
    NULL,   
    NULL,   
    TRUE,   
    NORMAL_PRIORITY_CLASS,   
    NULL,   
    _T("d:\\b\\bb"),   
    &si,   
    &pi)) 

    CloseHandle(pi.hProcess); 
    CloseHandle(pi.hThread); 
    }
    对吗
      

  5.   

    if(CreateProcess(NULL,       
    _T(“\"C:\\a\\bb.exe\" -uninstall”),       
    NULL,       
    NULL,       
    TRUE,       
    NORMAL_PRIORITY_CLASS,       
    NULL,       
    _T("d:\\b\\bb"),       
    &si,       
    &pi))   
    {   
    CloseHandle(pi.hProcess);   
    CloseHandle(pi.hThread);   
    } 试一下
      

  6.   

    那就是那个exe的问题了,有可能自己算路径了
      

  7.   

    还有可以解决的办法吗,我想解决的是uninstall问题。