下面是一个远程注入其他进程的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;
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;
解决方案 »
- 请问如何编程实现“安全删除”U盘?
- 提示:ambiguous overloaded call to StrLIComp,如何修改?
- 怎么判断文件的大小?
- 多核CPU分别控制多线程。。。。。。。
- 如何散分
- 三层结构的问题
- variant类型如何转化为record?
- 跪求:关于程序关闭的问题!
- delphi程序在win98&win2000中的问题!
- 100分求oracle8i密码
- 上海铁路局,有你这样忽悠人的么? -- 上海铁路局决定从2月3日起,在京沪线沪宁段再增3对动车组列车,具体车次为:上海至南京T702/T701、T7
- DoMessageProcess:procedure(s:string) of object;這種聲明的用法
你的Application.ProcessMessages;根本不会起作用...
我100都不会有这种现象
我不知道你的过程怎么写
但是我可以告诉你怎么写就不会有假死
在我的LoninZT过程中创建窗体
如果没有创建就建新窗体
创建了就不理,让它在那走着我的程序在<征途>测试过,512M内存,P4 2.4G的机器很快