传递命令行参数调用exe

时间:2022-11-07 22:29:25

vc 使用命令行调用C#程序:

 

VC端:

CString para;

int ret = g.RunExe(GFM->m_IniData.m_AppPath + _T(CHECK_AGENT_PASS),para);

  (FTPUPLOAD "ftp://vntracker.e-playnow.com"  "daze"  "jingwang@521"  "jwsm"  "D:/torrent/C# Java基本类型转   换.xls.zip")

 

int RunExe(CString exeFile, CString para)
{
 int ret;
 SHELLEXECUTEINFO ShExecInfo = {0};

 if(_taccess(exeFile,0) != 0)
  return -2 ;
 ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
 ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
 ShExecInfo.hwnd = NULL;
 ShExecInfo.lpVerb = NULL;
 ShExecInfo.lpFile = exeFile.GetBuffer(0);  
 ShExecInfo.lpParameters = para.GetBuffer(0);
 ShExecInfo.lpDirectory = NULL;
 ShExecInfo.nShow = SW_HIDE;
 ShExecInfo.hInstApp = NULL; 
 ShellExecuteEx(&ShExecInfo);
 int k = WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
 GetExitCodeProcess( ShExecInfo.hProcess,(LPDWORD)&ret);
 return ret ;
}

 

 

C#端:

static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (args.Length == 0)
                Application.Run(new Login());
            else
                Application.Run(new InvokeWebSvr(args));           
           
        }

 

 string[] args = null;

 public InvokeWebSvr(string[] args)
        {
            InitializeComponent();
            this.args = args;
        }

 

string cmdType = args[0];
            switch (cmdType)
            {

                 case xxx: ......

                         break;

            }