写了一个MFC的程序,要求如果是命令行启动传递参数时直接执行并且不显示图形界面,如果双击执行,则需要显示图形界面。
这个程序是调用 http://116.213.72.20/sms_bluewings/sms_bluewingsinfo.asmx接口来发送短信(短信报警。未处理中文问题,所以只能发送非中文字符。),如果需要的可以留言。
在程序的InitInstance()中添加以下内容:
argc=0;
LPWSTR *argv=::CommandLineToArgvW(::GetCommandLineW(),&argc);
if (argc==5)
{
arg_Username=argv[1];
arg_Password=argv[2];
arg_Phone=argv[3];
arg_Message=argv[4];
判断参数是否符合要求,符合则
CSmsDlg dlg;
m_pMainWnd = &dlg;
if (argc==5)
{
dlg.SendSms(arg_Username,arg_Password,arg_Phone,arg_Message);
::PostQuitMessage(1);
}
else
{
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
}
这样如果是带参数启动,则执行sendsms方法后退出程序,否则启动图形界面。