Advertisement
Guest User

When idle do something

a guest
May 25th, 2011
1,353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.25 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, ExtCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Button1: TButton;
  12.     Timer1: TTimer;
  13.     Label1: TLabel;
  14.     procedure FormCreate(Sender: TObject);
  15.     procedure Timer1Timer(Sender: TObject);
  16.   private
  17.     { Private declarations }
  18.   public
  19.     { Public declarations }
  20.   end;
  21.  
  22. var
  23.   Form1: TForm1;
  24.   i:Integer = 0;
  25.   hThread:THandle;
  26.   tid:DWORD;
  27.   suspended:Boolean = true;
  28. implementation
  29.  
  30. {$R *.dfm}
  31.  
  32. procedure Increasekkt;
  33. begin
  34. repeat
  35. Inc(i);
  36. Form1.Caption:=IntToStr(i);
  37. until 3=4;
  38. end;
  39.  
  40. function GetIdleTime:DWORD;
  41. var
  42. last:TLastInputInfo;
  43. begin
  44. last.cbSize:=Sizeof(last);
  45. GetLastInputInfo(last);
  46. Result:=(GetTickCount - last.dwTime)div 1000;
  47. end;
  48.  
  49. procedure TForm1.FormCreate(Sender: TObject);
  50. begin
  51. hThread:=CreateThread(nil,0,@Increasekkt,nil,CREATE_SUSPENDED,tid);
  52. end;
  53.  
  54. procedure TForm1.Timer1Timer(Sender: TObject);
  55. begin
  56. Label1.Caption:=IntToStr(GetIdleTime);
  57. if (GetIdleTime>5) and (Suspended) then
  58. begin
  59.   ResumeThread(hThread);
  60.   suspended:=false;
  61. end
  62. else if (GetIdleTime<5) and (not Suspended) then
  63. begin
  64.   suspended:=true;
  65.   SuspendThread(hThread);
  66. end;
  67. end;
  68.  
  69. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement