Perl Win32::GuiTest 与 AutoIt

1990阅读 0评论2011-11-17 huhuegg
分类:Python/Ruby

样例1:修改“Start”样式为经典启动菜单

autoIT:

  1. Func changeStartMenu()
  2.         GUICtrlSetData($statusLabel,"Running ... changeStartMenu")
  3.         Send("{LWIN}")
  4.         Local $startMenuWnd = WinWait("Start Menu","",1)
  5.         If ($startMenuWnd) Then
  6.                 WinActivate("Start Menu")
  7.                 Send("{APPSKEY}")
  8.                 Sleep(1000)
  9.                 Send("+r")
  10.                 Local $startMenuPropertesWnd = WinWait("Taskbar and Start Menu Properties","Select this option",2)
  11.                 If ($startMenuPropertesWnd) Then
  12.                         ControlClick("Taskbar and Start Menu Properties","","[CLASS:Button;INSTANCE:2]")
  13.                         Sleep(1000)
  14.                         ControlClick("Taskbar and Start Menu Properties","","[CLASS:Button;INSTANCE:5]")
  15.                         WinClose("Taskbar and Start Menu Properties") ; force window close
  16.                         GUICtrlSetData($statusLabel,"Completed ... changeStartMenu: change StartMenu -> Classic StartMenu")
  17.                 Else
  18.                         GUICtrlSetData($statusLabel,"Error ... changeStartMenu: no found 'Taskbar and Start Menu Properties' window")

  19.                 EndIf
  20.         Else
  21.                 Send("{LWIN}")
  22.                 GUICtrlSetData($statusLabel,"Completed ... changeStartMenu: Already set to Classic Menu")
  23.         EndIf
  24. EndFunc

Perl:

  1. use Win32::GuiTest qw(:ALL);

  2. sub changeStartMenu() {
  3.     my $rtStatus=0;
  4.     my $errMsg="";
  5.     SendKeys("{LWIN}",1);
  6.     my $startMenuID;
  7.     WaitWindowLike(0,"","^DV2ControlHost\$",0,9,2);        
  8.     ($startMenuID) = FindWindowLike(0,"","^DV2ControlHost\$");
  9.     SetForegroundWindow($startMenuID);
  10.     print "find startMenu:$startMenuID\n";
  11.     if ($startMenuID) {
  12.         print "send {APP}\n";
  13.         SendKeys("{APP}",1);
  14.         print "send ctrl-r\n";
  15.         SendKeys("^r",1);
  16.         my $menuSettingsID;
  17.         WaitWindowLike(GetDesktopWindow(),"","^#32770\$",$startMenuID,9,3);        
  18.         ($menuSettingsID) = FindWindowLike(0,"","^#32770\$");
  19.         SetForegroundWindow($menuSettingsID);
  20.         print "find menuSettingsID:$startMenuID\n";
  21.         if ($menuSettingsID) {
  22.             MouseClick("&M",$menuSettingsID, undef, undef, '{LEFT}');
  23.             sleep 1;
  24.             #MouseClick("确定",$menuSettingsID, undef, undef, '{LEFT}');
  25.             MouseClick(1,$menuSettingsID, undef, undef, '{LEFT}'); #确定Button的ID为1
  26.             $rtStatus = 1;
  27.         } else {
  28.             $$errMsg = "can not find start up settinig window";
  29.             $rtStatus=-1;
  30.         }
  31.     } else {
  32.         SendKeys("{LWIN}",1);
  33.         $errMsg = "Already changed to classic menu";
  34.         $rtStatus=1;
  35.     }
  36.     return($rtStatus,$errMsg);
  37. }
上一篇:Perl CPAN 设置
下一篇:Python – PyQT 建立测试环境