首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

在远程注入其他进程的DLL中使用settimer的有关问题

2012-02-23 
在远程注入其他进程的DLL中使用settimer的问题下面是一个远程注入其他进程的DLL中定时器创建代码.该DLL被

在远程注入其他进程的DLL中使用settimer的问题
下面是一个远程注入其他进程的DLL中定时器创建代码.该DLL被注入后会在DLLMAIN内调用CreateTimer创建定时器.如果去掉注释的那段代码.TimerDo回调函数不会被执行;如果加上那段代码,TimerDo会被执行但DLL所在的程序陷入假死状态,请高手加以指点该现象的解决办法和远程注入中定时器的使用问题.
procedure   TimerDo(hWnd:   HWND;   uMsg:   UINT;   idEvent:   UINT;   dwTime:   DWORD);   stdcall;
begin
    .......Logout
end;

procedure   CreateTimer;
var
    Msg:   TMsg;
begin
    iTimerID   :=   SetTimer(0,   0,   3000,   @TimerDo);  
    //while   GetMessage(Msg,   0,   0,   0)   do
    //begin
    //DispatchMessage(Msg);   //创建windows消息循环
    //   Application.ProcessMessages;
  //end;
end;

[解决办法]
SetTimer不是线程的...
你的Application.ProcessMessages;根本不会起作用...
[解决办法]
死循环。被注入的程序再也不会被执行了。

解决办法:不要用Timer,另建一个线程来做你想做的事。
[解决办法]
SetTimer(ZTHandle, 0, 100, @LoninZT);
我100都不会有这种现象
我不知道你的过程怎么写
但是我可以告诉你怎么写就不会有假死
在我的LoninZT过程中创建窗体
如果没有创建就建新窗体
创建了就不理,让它在那走着

我的程序在 <征途> 测试过,512M内存,P4 2.4G的机器很快

热点排行