MFC程序启动时传递参数

写了一个MFC的程序,要求如果是命令行启动传递参数时直接执行并且不显示图形界面,如果双击执行,则需要显示图形界面。

这个程序是调用http://116.213.72.20/sms_bluewings/sms_bluewingsinfo.asmx接口来发送短信(短信报警。未处理中文问题,所以只能发送非中文字符。),如果需要的可以留言。

在程序的InitInstance()中添加以下内容:

  
  
  
  
  1. argc=0;   
  2.  LPWSTR *argv=::CommandLineToArgvW(::GetCommandLineW(),&argc);   
  3.  if (argc==5)  
  4.  {  
  5.    
  6.  arg_Username=argv[1];  
  7.  arg_Password=argv[2];  
  8.  arg_Phone=argv[3];  
  9.  arg_Message=argv[4];  

判断参数是否符合要求,符合则

 

  
  
  
  
  1.     CSmsDlg dlg;  
  2.     m_pMainWnd = &dlg;  
  3.       
  4.     if (argc==5)  
  5.     {  
  6.         dlg.SendSms(arg_Username,arg_Password,arg_Phone,arg_Message);  
  7.         ::PostQuitMessage(1);  
  8.     }  
  9.       
  10. else 
  11. {  
  12.     int nResponse = dlg.DoModal();  
  13.     if (nResponse == IDOK)  
  14.     {  
  15.         // TODO: Place code here to handle when the dialog is  
  16.         //  dismissed with OK  
  17.     }  
  18.     else if (nResponse == IDCANCEL)  
  19.     {  
  20.         // TODO: Place code here to handle when the dialog is  
  21.         //  dismissed with Cancel  
  22.     }  

这样如果是带参数启动,则执行sendsms方法后退出程序,否则启动图形界面。

 

MFC程序启动时传递参数_第1张图片

 

你可能感兴趣的:(C++,中文,mfc,短信报警,发短信软件)