要求:
1.程序不包含窗口
2.可以收到别的程序发送给他的消息,并弹出对话框

解决方案 »

  1.   

    没有窗体的不太清楚,建立个隐藏窗体太获得消息还是可以的,问题是如何让别的程序得到Handleprogram Project1;uses
      Windows, Messages;{$R *.RES}var
      wClass: TWndClass;
      Msg: TMsg;function WindowProc(hWnd,Msg,wParam,lParam:Integer):Integer; stdcall;
    begin
     //消息在这里处理
     if Msg = WM_DESTROY then PostQuitMessage(0);
     Result := DefWindowProc(hWnd,Msg,wParam,lParam);
    end;begin
     wClass.lpszClassName:= 'CN';
     wClass.lpfnWndProc :=  @WindowProc;
     wClass.hInstance := hInstance;
     wClass.hbrBackground:= 1; RegisterClass(wClass); CreateWindow(wClass.lpszClassName,'',
                  0,0,0,0,0,0,0,hInstance,nil); //建立隐藏的窗口 while GetMessage(Msg,0,0,0) do //消息接受与分配
       DispatchMessage(Msg);end.
      

  2.   

    隐藏的窗体还是可以被 API enumWindows枚举得到,其实我已经找到时了更简单的方法
    var
    msg:tmsg
    begin
      while(getmessage(msg))do
      begin
        case msg.message of
           wm_quit:exit 
        end;
      end;end.//这个程序就可以运行机下去,呵呵,发消息就用PostThreadMessage发送,给他,呵呵,这样这个程序就百分之分的没有一个窗体,如果再把这个程序插进到别的进程里,那么就更隐藏了