完美国际私服小工具

EXE: https://files.cnblogs.com/xe2011/spt.rar

pascal DELPHI 2010: https://files.cnblogs.com/xe2011/wmgj2014-4-9-183216.7z

 【2014-1-8】

[2014-1-2]

 

 

[2014-1-1]

 

 

  1 unit Unit1;
  2 
  3 interface
  4 uses
  5   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  6   Dialogs, StdCtrls, ExtCtrls, MMSystem, Menus,  ComCtrls;
  7 type
  8   TForm1 = class(TForm)
  9     PageControl1: TPageControl;
 10     TabSheet1: TTabSheet;
 11     TabSheet2: TTabSheet;
 12     TabSheet3: TTabSheet;
 13     ComboBox1: TComboBox;
 14     Button1: TButton;
 15     Button2: TButton;
 16     Edit1: TEdit;
 17     Button3: TButton;
 18     Label1: TLabel;
 19     Button4: TButton;
 20     ComboBox4: TComboBox;
 21     Button5: TButton;
 22     TabSheet4: TTabSheet;
 23     TrayIcon1: TTrayIcon;
 24     PopupMenu1: TPopupMenu;
 25     Update1: TMenuItem;
 26     N1: TMenuItem;
 27     Close1: TMenuItem;
 28     Image1: TImage;
 29     Button6: TButton;
 30     Label5: TLabel;
 31     ComboBox5: TComboBox;
 32     Label6: TLabel;
 33     btnStart: TButton;
 34     btnStop: TButton;
 35     Button7: TButton;
 36     Timer1: TTimer;
 37     Label7: TLabel;
 38     Button9: TButton;
 39     TimerKey1: TTimer;
 40     TimerKey2: TTimer;
 41     TimerKey3: TTimer;
 42     TimerKey4: TTimer;
 43     TimerKey5: TTimer;
 44     chkSelectAll: TCheckBox;
 45     TimerKey6: TTimer;
 46     TimerKey7: TTimer;
 47     TimerKey8: TTimer;
 48     TimerKey9: TTimer;
 49     GroupBox1: TGroupBox;
 50     cbbKey1: TComboBox;
 51     CheckBox1: TCheckBox;
 52     EditKey1: TEdit;
 53     cbbKey2: TComboBox;
 54     CheckBox2: TCheckBox;
 55     EditKey2: TEdit;
 56     cbbKey3: TComboBox;
 57     CheckBox3: TCheckBox;
 58     EditKey3: TEdit;
 59     cbbKey4: TComboBox;
 60     CheckBox4: TCheckBox;
 61     EditKey4: TEdit;
 62     cbbKey5: TComboBox;
 63     CheckBox5: TCheckBox;
 64     EditKey5: TEdit;
 65     cbbKey6: TComboBox;
 66     CheckBox6: TCheckBox;
 67     EditKey6: TEdit;
 68     cbbKey7: TComboBox;
 69     CheckBox7: TCheckBox;
 70     EditKey7: TEdit;
 71     cbbKey8: TComboBox;
 72     CheckBox8: TCheckBox;
 73     EditKey8: TEdit;
 74     cbbKey9: TComboBox;
 75     CheckBox9: TCheckBox;
 76     EditKey9: TEdit;
 77     LabelPosition: TLabel;
 78     Image2: TImage;
 79     Image3: TImage;
 80     TimerValue1: TTimer;
 81     Label2: TLabel;
 82     Label3: TLabel;
 83     procedure Button1Click(Sender: TObject);
 84     procedure Button2Click(Sender: TObject);
 85     procedure FormCreate(Sender: TObject);
 86     procedure Button3Click(Sender: TObject);
 87     procedure FormClose(Sender: TObject; var Action: TCloseAction);
 88     procedure Button4Click(Sender: TObject);
 89     procedure Button5Click(Sender: TObject);
 90     procedure TrayIcon1Click(Sender: TObject);
 91     procedure Close1Click(Sender: TObject);
 92     procedure Update1Click(Sender: TObject);
 93     procedure Button6Click(Sender: TObject);
 94     procedure btnStopClick(Sender: TObject);
 95     procedure btnStartClick(Sender: TObject);
 96     procedure Button7Click(Sender: TObject);
 97     procedure ComboBox5Change(Sender: TObject);
 98     procedure Timer1Timer(Sender: TObject);
 99     procedure Button9Click(Sender: TObject);
100     procedure TimerKey1Timer(Sender: TObject);
101     procedure CheckBox1Click(Sender: TObject);
102     procedure TimerKey2Timer(Sender: TObject);
103     procedure TimerKey3Timer(Sender: TObject);
104     procedure TimerKey4Timer(Sender: TObject);
105     procedure TimerKey5Timer(Sender: TObject);
106     procedure CheckBox2Click(Sender: TObject);
107     procedure CheckBox3Click(Sender: TObject);
108     procedure CheckBox4Click(Sender: TObject);
109     procedure CheckBox5Click(Sender: TObject);
110     procedure chkSelectAllClick(Sender: TObject);
111     procedure FormShow(Sender: TObject);
112     procedure CheckBox6Click(Sender: TObject);
113     procedure CheckBox7Click(Sender: TObject);
114     procedure CheckBox8Click(Sender: TObject);
115     procedure CheckBox9Click(Sender: TObject);
116     procedure TimerKey6Timer(Sender: TObject);
117     procedure TimerKey7Timer(Sender: TObject);
118     procedure TimerKey8Timer(Sender: TObject);
119     procedure TimerKey9Timer(Sender: TObject);
120     procedure PageControl1Change(Sender: TObject);
121     procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
122       Shift: TShiftState; X, Y: Integer);
123     procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
124       Shift: TShiftState; X, Y: Integer);
125     procedure TimerValue1Timer(Sender: TObject);
126   private
127     procedure CreateIniFile;
128     procedure ReadConfig;
129     procedure WriteConfig;
130 
131 
132     procedure InstallHotKey;
133     procedure UnInstallHotKey;
134     procedure HotKeyDown(var Msg: TMessage); message WM_HOTKEY;
135     function SendKey(Str: string): Integer;
136 
137 
138     procedure SetIcon1;
139     procedure SetIcon2;
140     procedure SetMyCursor;
141     procedure RestoreCursor;
142     procedure SetLabelTimerProEnable;
143     procedure SetLabelTimerProDisable;
144  
145   public
146     { Public declarations }
147   end;
148 
149 var
150   Form1: TForm1;
151   HotKeyId, HotKeyId1: Integer;
152 implementation
153 {$R SpyRES.RES}
154 
155 uses ShellApi, IniFiles,  FileCtrl;
156 {$R *.dfm}
157 
158 var
159   IniFile: TIniFile;
160   IniAbsFileName // 'ini的绝对路径'
161     : string;
162 
163 //------------------------------------------------------------------------------
164 
165 procedure TForm1.InstallHotKey;
166 begin
167   HotKeyId := GlobalAddAtom('MyHotKey');
168   HotKeyId1 := GlobalAddAtom('MyHotKey1');
169 
170   RegisterHotKey(Handle, HotKeyId, MOD_ALT + MOD_CONTROL, VkKeyScan('x')); { Ctrl+Alt+x }
171   RegisterHotKey(Handle, HotKeyId1, MOD_ALT + MOD_CONTROL, VkKeyScan('c')); { Ctrl+Alt+c }
172 end;
173 
174 procedure TForm1.UnInstallHotKey;
175 begin
176   UnRegisterHotKey(Handle, HotKeyId);
177   UnRegisterHotKey(Handle, HotKeyId1);
178   DeleteAtom(HotKeyId);
179   DeleteAtom(HotKeyId1);
180 end;
181 
182 procedure TForm1.HotKeyDown(var Msg: TMessage);
183 begin
184     //start
185   if (Msg.LparamLo = MOD_ALT + MOD_CONTROL) and (Msg.LParamHi = VkKeyScan('x')) then
186     btnStart.Click;
187 
188    //stop
189   if (Msg.LparamLo = MOD_ALT + MOD_CONTROL) and (Msg.LParamHi = VkKeyScan('c')) then
190     btnStop.Click;
191 end;
192 
193 //------------------------------------------------------------------------------
194 
195 var iniPath: string; //ini路径
196   fName: string; //ini的文件名
197 //WriteString
198 
199 procedure ComboBoxToINI(const AINIFile, ASection: string; ComboBox: TComboBox);
200 var
201   INI: TINIFile;
202   I: Integer;
203 begin
204   INI := TINIFile.Create(AINIFile);
205   try
206     INI.EraseSection(ASection);
207     INI.WriteInteger(ASection, 'Count', ComboBox.Items.Count);
208     for I := 0 to ComboBox.Items.Count - 1 do
209     begin
210       INI.WriteString(ASection, 'Item' + IntToStr(I), ComboBox.Items[I]);
211     end;
212   finally
213     INI.Free;
214   end;
215 end;
216 
217 //ReadString
218 
219 procedure INIToComboBox(const AINIFile, ASection: string; ComboBox: TComboBox);
220 var
221   INI: TINIFile;
222   I, Count: Integer;
223 begin
224   INI := TINIFile.Create(AINIFile);
225   try
226     Count := INI.ReadInteger(ASection, 'Count', 0);
227     for I := 0 to Count - 1 do
228     begin
229       ComboBox.Items.Add(INI.ReadString(ASection, 'Item' + IntToStr(I), '0'));
230     end;
231   finally
232     INI.Free;
233   end;
234 end;
235 
236 
237 procedure TForm1.CreateIniFile;
238 begin
239   IniAbsFileName := Application.ExeName + '.ini';
240   IniFile := TIniFile.Create(IniAbsFileName);
241 end;
242 
243 procedure TForm1.ReadConfig;
244 begin
245 //  ComboBox4.Text := IniFile.ReadString('MainForm', '游戏路径', 'D:\完美世界国际版\element\elementclient.exe');
246   INIToComboBox(IniAbsFileName, '游戏路径', ComboBox4);
247   ComboBox4.ItemIndex := IniFile.ReadInteger('MainForm', '最后选中', 0);
248 
249   cbbKey1.ItemIndex := IniFile.ReadInteger('按键', '按键1', 0); //TAB
250   cbbKey2.ItemIndex := IniFile.ReadInteger('按键', '按键2', 10); //f1
251   cbbKey3.ItemIndex := IniFile.ReadInteger('按键', '按键3', 11); //f2
252   cbbKey4.ItemIndex := IniFile.ReadInteger('按键', '按键4', 12); //f3
253   cbbKey5.ItemIndex := IniFile.ReadInteger('按键', '按键5', 13); //f4
254 
255   cbbKey6.ItemIndex := IniFile.ReadInteger('按键', '按键6', 14); //f5
256   cbbKey7.ItemIndex := IniFile.ReadInteger('按键', '按键7', 15); //f6
257   cbbKey8.ItemIndex := IniFile.ReadInteger('按键', '按键8', 16); //f7
258   cbbKey9.ItemIndex := IniFile.ReadInteger('按键', '按键9', 17); //f8
259 
260   EditKey1.Text := IniFile.ReadString('按键间隔', '间隔1', '1');
261   EditKey2.Text := IniFile.ReadString('按键间隔', '间隔2', '2');
262   EditKey3.Text := IniFile.ReadString('按键间隔', '间隔3', '1');
263   EditKey4.Text := IniFile.ReadString('按键间隔', '间隔4', '5');
264   EditKey5.Text := IniFile.ReadString('按键间隔', '间隔5', '5');
265   EditKey2.Text := IniFile.ReadString('按键间隔', '间隔6', '5');
266   EditKey3.Text := IniFile.ReadString('按键间隔', '间隔7', '5');
267   EditKey4.Text := IniFile.ReadString('按键间隔', '间隔8', '5');
268   EditKey5.Text := IniFile.ReadString('按键间隔', '间隔9', '5');
269 
270 end;
271 
272 procedure TForm1.WriteConfig;
273 begin
274   ComboBoxToINI(IniAbsFileName, '游戏路径', ComboBox4);
275   IniFile.WriteInteger('MainForm', '最后选中', ComboBox4.ItemIndex);
276   IniFile.WriteInteger('按键', '按键1', cbbKey1.ItemIndex);
277   IniFile.WriteInteger('按键', '按键2', cbbKey2.ItemIndex);
278   IniFile.WriteInteger('按键', '按键3', cbbKey3.ItemIndex);
279   IniFile.WriteInteger('按键', '按键4', cbbKey4.ItemIndex);
280   IniFile.WriteInteger('按键', '按键5', cbbKey5.ItemIndex);
281 
282   IniFile.WriteInteger('按键', '按键6', cbbKey6.ItemIndex);
283   IniFile.WriteInteger('按键', '按键7', cbbKey7.ItemIndex);
284   IniFile.WriteInteger('按键', '按键8', cbbKey8.ItemIndex);
285   IniFile.WriteInteger('按键', '按键9', cbbKey9.ItemIndex);
286 
287   IniFile.WriteString('按键间隔', '间隔1', EditKey1.Text);
288   IniFile.WriteString('按键间隔', '间隔2', EditKey2.Text);
289   IniFile.WriteString('按键间隔', '间隔3', EditKey3.Text);
290   IniFile.WriteString('按键间隔', '间隔4', EditKey4.Text);
291   IniFile.WriteString('按键间隔', '间隔5', EditKey5.Text);
292   IniFile.WriteString('按键间隔', '间隔6', EditKey6.Text);
293   IniFile.WriteString('按键间隔', '间隔7', EditKey7.Text);
294   IniFile.WriteString('按键间隔', '间隔8', EditKey8.Text);
295   IniFile.WriteString('按键间隔', '间隔9', EditKey9.Text);
296 
297 end;
298 
299 // 产生随机字符串
300 
301 function GeneralPwd(StrLength: Integer; rType: Integer): string;
302 var
303   i: Integer;
304   str, str1, str2, str3, reslt1: string;
305 begin
306   str1 := '0123456789'; { 字符0~9 }
307   str2 := 'abcdefghijklmnopqrstuvwxyz'; { 字符a~z }
308   str3 := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; { 字符A~Z }
309   str := str + str1 + str2 + str3;
310   for i := 0 to StrLength - 1 do { 生成的字符长度 }
311   begin
312     case rType of
313       0:
314         reslt1 := reslt1 + str1[Random(Length(str1) - 1) + 1]; // 纯数字
315       1:
316         reslt1 := reslt1 + str2[Random(Length(str2) - 1) + 1]; // 纯小写字母
317       2:
318         reslt1 := reslt1 + str3[Random(Length(str3) - 1) + 1]; // 纯大写字母
319       3:
320         reslt1 := reslt1 + str[Random(Length(str) - 1) + 1]; // 数字字母混合
321     end;
322   end;
323   Result := reslt1;
324 end;
325 
326 procedure RunGame(GamePath: string);
327 begin
328   // path = "D:\Administrator\Documents\Games\完美世界国际版\element\elementclient.exe"
329   if not FileExists(GamePath) then
330   begin
331     Application.MessageBox('文件不存在' + #13#10,
332       '请将登录器放在游戏目录下', MB_OK + MB_ICONERROR);
333   end
334   else
335   begin
336     ShellExecute(Application.Handle, 'open', PChar(GamePath), PChar(' game:cpw'),
337       PChar(ExtractFilePath(GamePath)), SW_SHOW);
338   end;
339 end;
340 
341 
342 procedure TForm1.Button1Click(Sender: TObject);
343 var
344   h: Hwnd;
345 begin
346   h := FindWindow('ElementClient Window', PChar(ComboBox1.Text));
347   SetWindowText(h, PChar(Edit1.Text));
348 end;
349 
350 procedure TForm1.Button2Click(Sender: TObject);
351 begin
352   Edit1.Text := GeneralPwd(5, 3);
353 end;
354 
355 procedure TForm1.Button3Click(Sender: TObject);
356 begin
357   WriteConfig;
358   RunGame(ComboBox4.Text);
359 end;
360 
361 procedure TForm1.FormCreate(Sender: TObject);
362 begin
363   Edit1.Text := GeneralPwd(5, 3);
364   CreateIniFile;
365   ReadConfig;
366   Application.HintHidePause := 10000;
367   InstallHotKey;
368   Height:=161
369 
370 
371 
372 end;
373 
374 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
375 begin
376   WriteConfig;
377   UnInstallHotKey;
378 
379 end;
380 
381 procedure TForm1.Button4Click(Sender: TObject);
382 begin
383   with TOpenDialog.Create(nil) do
384   begin
385     Filter := 'elementclient.exe|*.exe';
386     FileName := 'elementclient.exe';
387     if Execute then
388       ComboBox4.Text := FileName;
389     if FileExists(FileName) then
390       ComboBox4.Items.Add(FileName);
391   end;
392 end;
393 
394 procedure TForm1.Button5Click(Sender: TObject);
395 begin
396   ComboBox4.DeleteSelected;
397   ComboBox4.ItemIndex := 0;
398 end;
399 
400 procedure TForm1.TrayIcon1Click(Sender: TObject);
401 begin
402   Visible := not Visible;
403 end;
404 
405 procedure TForm1.Close1Click(Sender: TObject);
406 begin
407   Close;
408 end;
409 
410 procedure TForm1.Update1Click(Sender: TObject);
411 begin
412   ShellExecute(Handle, 'open', 'http://www.cnblogs.com/xe2011/p/3500516.html ', nil, nil, SW_SHOW);
413 end;
414 
415 procedure swap(x, y: string);
416 var
417   temp: string;
418 begin
419   temp := x;
420   x := y;
421   y := temp;
422 end;
423 
424 procedure TForm1.Button6Click(Sender: TObject);
425 var a, b: string;
426 begin
427   a := ComboBox1.Text;
428   b := Edit1.Text; {赋值}
429   swap(a, b); {数值对换}
430   Edit1.Text := a; {读取数值}
431   ComboBox1.Text := b;
432 end;
433 
434 
435 
436 
437 procedure TForm1.btnStopClick(Sender: TObject);
438 begin
439   btnStop.Enabled := False;
440   btnStart.Enabled := True;
441   Timer1.Enabled := False;
442   ComboBox5.Enabled := true;
443 end;
444 
445 procedure TForm1.btnStartClick(Sender: TObject);
446 begin
447   btnStop.Enabled := True;
448   btnStart.Enabled := False;
449   Timer1.Enabled := True;
450   ComboBox5.Enabled := False;
451 end;
452 
453 procedure TForm1.Button7Click(Sender: TObject);
454 begin
455   Hide;
456   ShowMessage('将光标放在你要点的位置,然后使用快捷键' + #13#10 + '开始  Ctrl+Alt+X' + #13#10 + '停止  Ctrl+Alt+C');
457   Show;
458 end;
459 
460 procedure TForm1.ComboBox5Change(Sender: TObject);
461 begin
462   Timer1.Interval := StrToInt(ComboBox5.Text);
463 end;
464 
465 var
466   count: Integer = 0;
467 
468 procedure TForm1.Timer1Timer(Sender: TObject);
469 begin
470   mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); // 按下
471   mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //弹起
472   Inc(count);
473   Label7.Caption := Format('单击了 %d 次', [count]);
474 end;
475 
476 
477 //按键模拟
478 
479 function TForm1.SendKey(Str: string): Integer;
480 var
481   h: HWND;
482   KeyValue: integer;
483 begin
484   {功能模拟发送按键:1~9,F1~F9}
485   h := FindWindow('ElementClient Window', nil);
486   if Str = '1' then KeyValue := 49;
487   if Str = '2' then KeyValue := 50;
488   if Str = '3' then KeyValue := 51;
489   if Str = '4' then KeyValue := 52;
490   if Str = '5' then KeyValue := 53;
491   if Str = '6' then KeyValue := 54;
492   if Str = '7' then KeyValue := 55;
493   if Str = '8' then KeyValue := 56;
494   if Str = '9' then KeyValue := 57;
495   if Str = 'F1' then KeyValue := VK_F1;
496   if Str = 'F2' then KeyValue := VK_F2;
497   if Str = 'F3' then KeyValue := VK_F3;
498   if Str = 'F4' then KeyValue := VK_F4;
499   if Str = 'F5' then KeyValue := VK_F5;
500   if Str = 'F6' then KeyValue := VK_F6;
501   if Str = 'F7' then KeyValue := VK_F7;
502   if Str = 'F8' then KeyValue := VK_F8;
503   if Str = 'F9' then KeyValue := VK_F9;
504   if Str = 'Tab' then KeyValue := VK_TAB;
505 
506   Sendmessage(h, Wm_Keydown, KeyValue, 0);
507   Sendmessage(h, Wm_Keyup, KeyValue, 0);
508 end;
509 
510 
511 
512 procedure TForm1.Button9Click(Sender: TObject);
513 begin
514   Hide;
515   ShowMessage('如果游戏多开的,这只会对当前激活的游戏窗口有效');
516   Show;
517 end;
518 
519 procedure TForm1.TimerKey1Timer(Sender: TObject);
520 begin
521   SendKey(cbbKey1.Text);
522 end;
523 
524 procedure TForm1.CheckBox1Click(Sender: TObject);
525 begin
526   if CheckBox1.Checked then
527   begin
528     EditKey1.Enabled := false;
529     cbbKey1.Enabled := false;
530     TimerKey1.Enabled := true;
531     TimerKey1.Interval := StrToInt(EditKey1.Text) * 1000;
532   end
533   else
534   begin
535     EditKey1.Enabled := True;
536     cbbKey1.Enabled := True;
537     TimerKey1.Enabled := false;
538   end;
539 end;
540 
541 procedure TForm1.TimerKey2Timer(Sender: TObject);
542 begin
543   SendKey(cbbKey2.Text);
544 end;
545 
546 procedure TForm1.TimerKey3Timer(Sender: TObject);
547 begin
548   SendKey(cbbKey3.Text);
549 end;
550 
551 procedure TForm1.TimerKey4Timer(Sender: TObject);
552 begin
553   SendKey(cbbKey4.Text);
554 end;
555 
556 procedure TForm1.TimerKey5Timer(Sender: TObject);
557 begin
558   SendKey(cbbKey5.Text);
559 end;
560 
561 procedure TForm1.CheckBox2Click(Sender: TObject);
562 begin
563   if CheckBox2.Checked then
564   begin
565     EditKey2.Enabled := false;
566     cbbKey2.Enabled := false;
567     TimerKey2.Enabled := true;
568     TimerKey2.Interval := StrToInt(EditKey2.Text) * 1000;
569   end
570   else
571   begin
572     EditKey2.Enabled := True;
573     cbbKey2.Enabled := True;
574     TimerKey2.Enabled := false;
575   end;
576 end;
577 
578 procedure TForm1.CheckBox3Click(Sender: TObject);
579 begin
580   if CheckBox3.Checked then
581   begin
582     EditKey3.Enabled := false;
583     cbbKey3.Enabled := false;
584     TimerKey3.Enabled := true;
585     TimerKey3.Interval := StrToInt(EditKey3.Text) * 1000;
586   end
587   else
588   begin
589     EditKey3.Enabled := True;
590     cbbKey3.Enabled := True;
591     TimerKey3.Enabled := false;
592   end;
593 end;
594 
595 procedure TForm1.CheckBox4Click(Sender: TObject);
596 begin
597   if CheckBox4.Checked then
598   begin
599     EditKey4.Enabled := false;
600     cbbKey4.Enabled := false;
601     TimerKey4.Enabled := true;
602     TimerKey4.Interval := StrToInt(EditKey4.Text) * 1000;
603   end
604   else
605   begin
606     EditKey4.Enabled := True;
607     cbbKey4.Enabled := True;
608     TimerKey4.Enabled := false;
609   end;
610 end;
611 
612 procedure TForm1.CheckBox5Click(Sender: TObject);
613 begin
614   if CheckBox5.Checked then
615   begin
616     EditKey5.Enabled := false;
617     cbbKey5.Enabled := false;
618     TimerKey5.Enabled := true;
619     TimerKey5.Interval := StrToInt(EditKey5.Text) * 1000;
620   end
621   else
622   begin
623     EditKey5.Enabled := True;
624     cbbKey5.Enabled := True;
625     TimerKey5.Enabled := false;
626   end;
627 end;
628 
629 procedure TForm1.chkSelectAllClick(Sender: TObject);
630 begin
631   CheckBox1.Checked := chkSelectAll.Checked;
632   CheckBox2.Checked := chkSelectAll.Checked;
633   CheckBox3.Checked := chkSelectAll.Checked;
634   CheckBox4.Checked := chkSelectAll.Checked;
635   CheckBox5.Checked := chkSelectAll.Checked;
636   CheckBox6.Checked := chkSelectAll.Checked;
637   CheckBox7.Checked := chkSelectAll.Checked;
638   CheckBox8.Checked := chkSelectAll.Checked;
639   CheckBox9.Checked := chkSelectAll.Checked;
640 end;
641 
642 procedure TForm1.FormShow(Sender: TObject);
643 begin
644   ShowWindow(Application.Handle, SW_HIDE);
645 end;
646 
647 procedure TForm1.CheckBox6Click(Sender: TObject);
648 begin
649   if CheckBox6.Checked then
650   begin
651     EditKey6.Enabled := false;
652     cbbKey6.Enabled := false;
653     TimerKey6.Enabled := true;
654     TimerKey6.Interval := StrToInt(EditKey6.Text) * 1000;
655   end
656   else
657   begin
658     EditKey6.Enabled := True;
659     cbbKey6.Enabled := True;
660     TimerKey6.Enabled := false;
661   end;
662 end;
663 
664 procedure TForm1.CheckBox7Click(Sender: TObject);
665 begin
666   if CheckBox7.Checked then
667   begin
668     EditKey7.Enabled := false;
669     cbbKey7.Enabled := false;
670     TimerKey7.Enabled := true;
671     TimerKey7.Interval := StrToInt(EditKey7.Text) * 1000;
672   end
673   else
674   begin
675     EditKey7.Enabled := True;
676     cbbKey7.Enabled := True;
677     TimerKey7.Enabled := false;
678   end;
679 end;
680 
681 procedure TForm1.CheckBox8Click(Sender: TObject);
682 begin
683   if CheckBox8.Checked then
684   begin
685     EditKey8.Enabled := false;
686     cbbKey8.Enabled := false;
687     TimerKey8.Enabled := true;
688     TimerKey8.Interval := StrToInt(EditKey8.Text) * 1000;
689   end
690   else
691   begin
692     EditKey8.Enabled := True;
693     cbbKey8.Enabled := True;
694     TimerKey8.Enabled := false;
695   end
696 end;
697 
698 procedure TForm1.CheckBox9Click(Sender: TObject);
699 begin
700  if CheckBox9.Checked then
701   begin
702     EditKey9.Enabled := false;
703     cbbKey9.Enabled := false;
704     TimerKey9.Enabled := true;
705     TimerKey9.Interval := StrToInt(EditKey9.Text) * 1000;
706   end
707   else
708   begin
709     EditKey9.Enabled := True;
710     cbbKey9.Enabled := True;
711     TimerKey9.Enabled := false;
712   end
713 end;
714 
715 procedure TForm1.TimerKey6Timer(Sender: TObject);
716 begin
717 SendKey(cbbKey6.Text);
718 end;
719 
720 procedure TForm1.TimerKey7Timer(Sender: TObject);
721 begin
722 SendKey(cbbKey7.Text);
723 end;
724 
725 procedure TForm1.TimerKey8Timer(Sender: TObject);
726 begin
727 SendKey(cbbKey8.Text);
728 end;
729 
730 procedure TForm1.TimerKey9Timer(Sender: TObject);
731 begin
732 SendKey(cbbKey9.Text);
733 end;
734 
735 procedure TForm1.PageControl1Change(Sender: TObject);
736 begin
737     case PageControl1.TabIndex of
738       0: Height:=161  ;
739       1: Height:=161 ;
740       2: Height:=313 ;
741       3: Height:=161  ;
742     end;
743 end;
744 
745 
746 
747 //
748 // ------------------------------------------------------------------------------
749 procedure TForm1.SetIcon1;
750 begin
751   Form1.Image1.Picture:=Image2.Picture;
752 
753 end;
754 
755 procedure TForm1.SetIcon2;
756 begin
757   Form1.Image1.Picture:=Image3.Picture;
758 end;
759 
760 procedure TForm1.SetMyCursor;
761 var
762   h: HCURSOR;
763 begin
764   h := LoadCursor(HInstance, 'DragCursor');
765   SetSystemCursor(h, ocr_normal);
766 end;
767 
768 procedure TForm1.RestoreCursor;
769 begin
770   SystemParametersinfo(SPI_SETCURSORS, 0, nil, SPIF_SENDCHANGE);
771 end;
772 
773 procedure TForm1.SetLabelTimerProEnable;
774 begin
775   LabelPosition.Caption := '';
776   LabelPosition.Visible := True;
777   TimerValue1.Enabled := True;
778 end;
779 
780 procedure TForm1.SetLabelTimerProDisable;
781 begin
782   LabelPosition.Visible := False;
783   TimerValue1.Enabled := False;
784 end;
785 
786 
787 
788 
789 //
790 procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
791   Shift: TShiftState; X, Y: Integer);
792 begin
793   SetIcon2;
794   SetMyCursor;
795   SetLabelTimerProEnable;
796 end;
797 
798 procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
799   Shift: TShiftState; X, Y: Integer);
800 begin
801   SetIcon1;
802   RestoreCursor;
803   SetLabelTimerProDisable;
804 end;
805 
806 procedure TForm1.TimerValue1Timer(Sender: TObject);
807 var
808   h: HWND;
809   p: TPoint;
810   Rec: TRect;
811   sClassName, sWindowText: array [0 .. 254] of Char;
812 begin
813   GetCursorPos(p);
814   LabelPosition.Caption := Format('%d,%d', [p.X, p.Y]);
815   h := WindowFromPoint(p);
816   GetClassName(h, sClassName, SizeOf(sClassName));
817   GetWindowText(h, sWindowText, SizeOf(sClassName));
818 
819   Edit1.Text := sWindowText;
820 end;
821 
822 end.
代码

 

posted @ 2014-01-01 12:48  XE2011  阅读(2062)  评论(0编辑  收藏  举报