初次原创。。巨挫无比的代码。。。。...

来源:互联网 发布:ubuntu一键搭建lamp 编辑:程序博客网 时间:2024/05/02 01:35

 

 

#include <windows.h>
#include <tchar.h>
#include <tlhelp32.h>
#include <vector>
using std::vector;
using std::iterator;

 

 

TCHAR szMessage[200] = _T("你好!你好!你好!"); //信息框的内容
TCHAR szCaption[200] = _T("Hello World");               //信息框的标题
vector<UINT> v_mType;                                          //全局消息存放框类型的vector


int _stdcall WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
{
 v_mType.push_back(MB_OK);
 v_mType.push_back(MB_CANCELTRYCONTINUE);
 v_mType.push_back(MB_OKCANCEL);
 v_mType.push_back(MB_ABORTRETRYIGNORE);
 v_mType.push_back(MB_YESNOCANCEL);        
 v_mType.push_back(MB_YESNO);                 
 v_mType.push_back(MB_RETRYCANCEL);            
 v_mType.push_back(MB_ICONHAND);              
 v_mType.push_back(MB_ICONQUESTION);          
 v_mType.push_back(MB_ICONEXCLAMATION);        
 v_mType.push_back(MB_ICONASTERISK);
 v_mType.push_back(MB_USERICON)     ;        
 v_mType.push_back(MB_DEFBUTTON1)    ;      
 v_mType.push_back(MB_DEFBUTTON2)     ;     
 v_mType.push_back(MB_DEFBUTTON3)      ; 
 v_mType.push_back(MB_DEFBUTTON4)       ;    
 v_mType.push_back(MB_APPLMODAL)         ;     
 v_mType.push_back(MB_SYSTEMMODAL)        ;    
 v_mType.push_back(MB_TASKMODAL)           ;   
 v_mType.push_back(MB_HELP)            ;
 v_mType.push_back( MB_NOFOCUS)         ;       
 v_mType.push_back(MB_SETFOREGROUND)     ;     
 v_mType.push_back(MB_DEFAULT_DESKTOP_ONLY);    
 v_mType.push_back(MB_TOPMOST)              ;
 v_mType.push_back(MB_RIGHT)               ;
 v_mType.push_back( MB_RTLREADING) ;
 v_mType.push_back(MB_SERVICE_NOTIFICATION);
 v_mType.push_back(MB_SERVICE_NOTIFICATION);
 v_mType.push_back(MB_SERVICE_NOTIFICATION_NT3X);
 v_mType.push_back(MB_TYPEMASK);
 v_mType.push_back(MB_ICONMASK);
 v_mType.push_back(MB_DEFMASK);
 v_mType.push_back(MB_MODEMASK);
 v_mType.push_back( MB_MISCMASK);
 PROCESS_INFORMATION pProcessInfo;
 STARTUPINFO startInfo = {0};
 startInfo.cb = sizeof(STARTUPINFO);
 startInfo.dwFlags = STARTF_FORCEONFEEDBACK;
 LPWSTR arg;
 arg = GetCommandLine();//用CommandLine完成进程之间的消息传递。。好吧我知道这很搓-__-
 size_t i = wcslen(arg)-60;//貌似我的测试的commandling长度是60(好像是路径)。就脑残的写成这样了。
 if ( i > v_mType.size() || i < 0)
 {
  arg = L"ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss";   //60个S只是为了让下次为v_mType[0] 

 }
 TCHAR szCommand[1000];
 wcscpy(szCommand,arg);                           
 wcscat(szCommand,L"s");                         //commandline + "s"  下个进程里面的i就可以+1
 TCHAR szModuleName[MAX_PATH];
 GetModuleFileName(NULL,szModuleName,MAX_PATH-1);//获得模块路径。程序不再受名字的限制编译后随便改
 CreateProcess(

szModuleName,

szCommand,

NULL ,NULL,true,

NORMAL_PRIORITY_CLASS ,

NULL,NULL,&startInfo,&pProcessInfo);

 if( i>= 0 && i< v_mType.size() )
 {
  while( true )
  {
    MessageBox(NULL,szMessage,szCaption,v_mType[i]);
  }
 
 }
 

 return 0;
}

原创粉丝点击