分页: 1 / 1

Win32::GuiTest - Perl版按键精灵,GUI自动化模块 以及示例

发表于 : 2017年06月17日 10:01
PerlMonk
Win32::GuiTest - Perl版按键精灵,鼠标按键模拟、GUI自动化操作
编辑: 523066680
转载请注明出处

Strawberry Perl V5.24 Portable+PDL 版自带 Win32::GuiTest 模块,但缺少示例代码,建议到 metacpan 下载模块安装包
Meta::Cpan Win32-GuiTest-1.63

部分示例代码在win7和中文环境不适用,参考回帖。

示例代码 PushButton.pl - 打开记事本输入并保存

发表于 : 2017年06月17日 10:03
PerlMonk
Win32-GuiTest-1.63/eg/pushbutton.pl 修改 (保存为utf8编码格式):
use utf8; use Encode; use strict; use Win32::GuiTest qw/:ALL/; # 删除旧文件(如果有) unlink("D:\\PushButton.txt"); system("start notepad.exe"); my @windows = WaitWindow(encode('gbk', "无标题 - 记事本")); die unless scalar @windows == 1 && IsWindow($windows[0]); SetForegroundWindow($windows[0]); SendKeys("Sample Text\n"); SendKeys("%{F4}"); #出现提示框询问是否保存,按保存 PushButton( encode('gbk' , "保存") ); sleep 1; #输入文件名 SendKeys("D:\\PushButton.txt"); # 确认保存 PushButton("&S");

对某个窗体进行截图

发表于 : 2017年06月17日 10:17
PerlMonk
use utf8; use Encode; use Win32::GuiTest qw(:ALL); system("start calc"); sleep 1; my ($w) = FindWindowLike(0, encode('gbk', "计算器")); $ds = new Win32::GuiTest::DibSect; $ds->CopyWindow($w); SendKeys('%{F4}'); #保存到文件 $ds->SaveAs("bla.bmp"); #保存到剪切板 $ds->ToClipboard();

Selecttabitem.pl - 打开系统属性并选择不同的标签/项目栏

发表于 : 2017年06月17日 16:53
PerlMonk
备注:该脚本应该在管理员的权限下运行

runas /user:Administrator "perl \"%cd%\selecttabitem.pl\""
use Win32::GuiTest qw(GetWindowID GetChildWindows GetWindowText GetForegroundWindow PostMessage PushButton SendKeys SelectTabItem); use Win32::GuiTest::Cmd qw(System); # 打开系统属性栏 System(); #system('start RunDLL32.exe shell32,Control_RunDLL sysdm.cpl,\@0,2'); #该命令可以打开系统属性窗口并选择第二项标签 ( 通过 \@0,2 ) sleep(2); # 选择不同标签 # 使用 Window ID SelectTabItem(12320, 0); sleep(1); SelectTabItem(12320, 2); sleep(1); SelectTabItem(12320, 1); sleep(1); #PushButton("^Cancel"); SendKeys("{ESC}");