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

怎么修改Messages.pas里的常量? (结贴率100%)

2013-01-01 
如何修改Messages.pas里的常量?(结贴率100%)[解决办法]Windows.SetTimer 注册TimerWindows.KillTimer 注销

如何修改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;

热点排行