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