delphi中setTimer函数的用法

delphisetTimer函数用来做定时器,可以实现每隔一段时间运行某个程序,需要用到两个函数,SetTimer函数和KillTimer函数。
下面是一个简单的例子:
var
i :Integer = 0;

procedure TimerProc(hwnd:HWND;uMsg,idEvent:UINT;dwTime:DWORD); stdcall;
begin
inc(i);
Form1.Caption := IntToStr(i);
end;

procedure TForm1.FormCreate(Sender:TObject);
begin
SetTimer(Handle,10,500,@TimerProc);
end;

procedure TForm1.FormDestroy(Sender:TObject);
begin
KillTimer(Handle,10);
end;

敏感的360会将这段程序视为木马,可能是很多木马都会用到类似定时器的功能吧,setTimer 函数几乎成了木马的一个特征了

参数解释:

setTimer 一共四个参数:

1.调用函数的handle,windows会定时发送WM_TIMER消息给此handle

2.timer的标识,可设置为0

3.定时器的值,单位是毫秒

4.回调函数

第1,2个参数可以随便设置,注意第二个参数必须是数字,对应的killTimer的前两个参数必须跟setTimer参数一样。

时间: 2024-10-10 12:29:55

delphi中setTimer函数的用法的相关文章

Delphi中 StrToIntDef函数的用法

Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strtointdef这个函数. 写法如下: 假设edit1.text:='1000'; 则strtointdef(edit1.text,0)返回值为1000. 如果edit1.text:='fdafds',则返回值为0. (如果你用strtoint(edit1.text)当edit1.text:='fdad

Delphi中 StrToIntDef函数的用法:

比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strtointdef这个函数. 写法如下: 假设edit1.text:='1000'; 则strtointdef(edit1.text,0)返回值为1000. 如果edit1.text:='fdafds',则返回值为0. (如果你用strtoint(edit1.text)当edit1.text:='fdads'时会报错的)我们可以用strtointdef这个

SetTimer函数的用法

什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数 了.使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序.通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数. 1.1 用WM_TIMER来设置定时器 先请看SetTimer这个API函数的原型 UINT_PTR SetTimer( HWND hWnd,          // 窗口句柄 UINT_PTR

Delphi中的TChart使用用法

1.TChart Hello world 放一个控件到窗体上,然后写代码加入一个折线数据序列: var Series: TLineSeries; begin Series := TLineSeries.Create(Chart1); Series.Add(100, '头部', clRed); Series.Add(200, '颈部', clGreen); Chart1.AddSeries(Series); end; 这样就会生成一个简单的折线图表,要生成其它类型的数据图表,可以添加不同的数据序列

awk中split函数的用法

The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep. time=12:34:56 echo $time | awk '{split($0,a,":" ); print a[1]}' 12   echo $time | awk '{split($0,a,":" ); print a[3]}' 34   echo $time | awk

PHP中spl_autoload_register函数的用法

spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们. 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中.因为 spl_autoload

Delphi中StrToDateTime函数TFormatSettings参数的使用

http://blog.csdn.net/arbin_he/article/details/7415300 Delphi中StrToDateTime函数TFormatSettings参数的使用 分类: Delphi2012-03-31 13:15 12267人阅读 评论(6) 收藏 举报 delphistring测试user [delphi] view plaincopy var FSetting : TFormatSettings; DateTime1: tDateTime; begin FS

C++中substr函数的用法

原文地址:http://blog.csdn.net/no_retreats/article/details/7853066 C++中substr函数的用法 #include<string>#include<iostream>using namespace std; main(){string s("12345asdf");string a=s.substr(0,5);       //获得字符串s中 从第0位开始的长度为5的字符串//默认时的长度为从开始位置到尾

解析PHP中ob_start()函数的用法

解析PHP中ob_start()函数的用法 本篇文章是对PHP中ob_start()函数的用法进行了详细的分析介绍,需要的朋友参考下 ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有"Header had all ready send by"的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很 多,只要发挥你的想象.可以总结以下四点: 1.