ruby学习系列--操作windows控制面板
ruby操作windwos控制面板内容,可以通过调用系统命令执行
命令格式:control[.exe] 参数
命令参数如下:
对象 | 参数 | 内部调用命令 | 备注 |
控制面板 | (无) | explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}" | |
PANEL | |||
未知 | /policy | (无) | 该命令执行后,加载desk.cpl,并且调用输出函数CPlApplet,参数为hwndCPl=0 uMsg=0x66 lParam1=0 lParam2=0 |
在XP SP2环境下执行后没有反应 | |||
显示画面 | DESKTOP | desk.cpl | [desk.cpl] : [显示][主题] [desk.cpl ,0] : [显示][桌面] [desk.cpl ,1] : [显示][屏幕保护程序] [desk.cpl ,2] : [显示][外观] [desk.cpl ,3] : [显示][设置] [desk.cpl ,4] : [显示][设置] |
外观 | COLOR | desk.cpl ,2 | |
日期和时间 | DATE/TIME | timedate.cpl | [timedate.cpl] : [日期和时间][时间和日期] |
[timedate.cpl ,0] : [日期和时间][时间和日期] | |||
[timedate.cpl ,1] : [日期和时间][时区](最后的[Internet 时间]选项卡会消失) | |||
系统 | PORTS | sysdm.cpl ,1 | [sysdm.cpl] : [系统][常规] |
[sysdm.cpl ,0] : [系统][常规] | |||
[sysdm.cpl ,1] : [系统][计算机名] | |||
[sysdm.cpl ,2] : [系统][硬件] | |||
[sysdm.cpl ,3] : [系统][高级] | |||
[sysdm.cpl ,4] : [系统][系统还原] | |||
[sysdm.cpl ,5] : [系统][自动更新] | |||
[sysdm.cpl ,6] : [系统][远程] | |||
[sysdm.cpl ,-1] : [性能选项][视觉效果](意料外^^) | |||
区域和语言选项 | INTERNALTIONAL | intl.cpl | [intl.cpl] : [区域和语言选项][区域选项] |
[intl.cpl ,0] : [区域和语言选项][区域选项] | |||
[intl.cpl ,1] : [区域和语言选项][语言] | |||
[intl.cpl ,2] : [区域和语言选项][高级] | |||
鼠标 | MOUSE | main.cpl | 为啥叫main令人费解orz |
[main.cpl] : [鼠标][按钮] | |||
[main.cpl ,0] : [鼠标][按钮] | |||
[main.cpl ,1] : [鼠标][指针] | |||
[main.cpl ,2] : [鼠标][指针选项] | |||
[main.cpl ,3] : [鼠标][轮] | |||
[main.cpl ,4] : [鼠标][硬件] | |||
键盘 | KEYBOARD | main.cpl @1 | [main.cpl @1] : [键盘][速度] |
[main.cpl @1 ,0] : [键盘][速度] | |||
[main.cpl @1 ,1] : [键盘][硬件] | |||
(未知) | NETWARE | nwc.cpl | XP上执行后没有反应 |
电话和调制解调器选项 | TELEPHONY | telephon.cpl | |
无线链接 | INFRARED | irprops.cpl | 未安装无线功能的计算机上执行该参数后会没有反应 |
[irprops.cpl] : [无线链接][红外线] | |||
[irprops.cpl ,0] : [无线链接][红外线] | |||
[irprops.cpl ,1] : [无线链接][图像传送] | |||
[irprops.cpl ,2] : [无线链接][硬件] | |||
本地用户和组 | USERPASSWORDS | lusrmgr.msc | 根据SHLWAPI.dll.#437输出函数判断显示哪一个用户帐户管理界面 |
用户帐户 | nusrmgr.cpl | ||
用户帐户 | USERPASSWORDS2 | rundll32 netplwiz.dll,UsersRunDll | (常用)Windows 2000下的用户帐户管理界面,可以用这个界面提供的网络密码管理功能删除保存过的网络密码 |
(注意点)不过,该参数在2000下不能正常调用,只能使用USERPASSWORDS调出相同的界面,但并没有网络密码管理的功能 | |||
打印机和传真 | PRINTERS | explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}" | |
字体 | FONTS | explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{D20EA4E1-3957-11d2-A40B-0C5020524152}" | |
管理工具 | ADMINTOOLS | explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{D20EA4E1-3957-11d2-A40B-0C5020524153}" | |
管理 | |||
任务计划 | SCHEDTASKS | explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}" | |
网络连接 | NETCONNECTIONS | explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}" | |
文件夹选项 | FOLDERS | rundll32.exe shell32.dll,Options_RunDLL 0 | [rundll32.exe shell32.dll,Options_RunDLL 0] : [文件夹选项] |
[rundll32.exe shell32.dll,Options_RunDLL 1] : [任务栏和「开始」菜单属性] | |||
扫描仪和照相机 | SCANNERCAMERA | explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{E211B736-43FD-11D1-9EFB-0000F8757FCD}" | |
STICPL.CPL | |||
(其他1) | 键名 | rundll32.exe shell32.dll,Control_RunDLL 键名的值 | 对[HKEY]\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls\下的键名进行查询 |
注:[HKEY]的搜索顺序为HKEY_LOCAL_MACHINE,HKEY_CURRENT_USER | |||
(其他2) | *.cpl | rundll32.exe shell32.dll,Control_RunDLL *.cpl | *.cpl必须在%PATH%中某一个定义的目录中能找到 |
ruby调用如下:
方式1:
1 require 'win32ole'
2
3 autoit = WIN32OLE.new('AutoItX3.Control')
4 autoit.Run("control DESKTOP")
2
3 autoit = WIN32OLE.new('AutoItX3.Control')
4 autoit.Run("control DESKTOP")
方式2:
1 require 'win32ole'
2
3 autoit = WIN32OLE.new('AutoItX3.Control')
4 autoit.Run("control desk.cpl")
2
3 autoit = WIN32OLE.new('AutoItX3.Control')
4 autoit.Run("control desk.cpl")