读书人

怎么修改Messages.pas里的常量? (结贴

发布时间: 2013-01-01 14:04:19 作者: rapoo

如何修改Messages.pas里的常量? (结贴率100%)
怎么修改Messages.pas里的常量?  (结贴率100%)
[解决办法]
Windows.SetTimer 注册Timer
Windows.KillTimer 注销Timer
如果别人Hook你的Timer,简单的可以这么避免

建立一个线程

procedure TTimerThread.Execute;
begin
FreeOnTerminate := True;
While not Terminated do begin
Sleep(和你的Timer相同的时间等待);
SendMessage(你的主窗口句柄 , 自定义消息如($111111) , 参数1,参数2);
end;
end;

然后在你的主窗口响应这个消息就和Timer没区别了,这样拦截SetTimer,KillTimer就没用了,也不会用到WM_TIMER消息了,你还可以在主窗口响应中判断参数1,2是否有效来过滤掉一些非法的消息.
[解决办法]

引用:
Windows.SetTimer 注册Timer
Windows.KillTimer 注销Timer
如果别人Hook你的Timer,简单的可以这么避免

建立一个线程

procedure TTimerThread.Execute;
begin
FreeOnTerminate := True;
While not Terminated do begin
Sleep……

干脆自定义消息也不要发了,呵呵:
SendMessage(你的主窗口句柄 , 自定义消息如($111111) , 参数1,参数2);
可以替换成
Synchronize(DoIt);

procedure TTimerThread.DoIt;
begin
Form1.Timer1Timer(nil);
end;

读书人网 >.NET

热点推荐