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;
}