找回密码
 加入
搜索
查看: 2709|回复: 7

[AU3基础] [已解决]怎样对我的电脑的某个硬盘右键自动播放?

  [复制链接]
发表于 2012-2-21 12:30:00 | 显示全部楼层 |阅读模式
本帖最后由 tuutoo 于 2012-3-15 09:54 编辑

我的系统是win7 64bit系统,请问怎么样在打开我的电脑后,对指定的盘符比如R盘,进行右键菜单中的“自动播放”操作呢?

目前就用的下面这些代码,用run explorer好像有时候进程里会多出来进程。
#Include <GuiTreeView.au3>
ShellExecute("explorer.exe")
$Hwnd=WinWait('[class:CabinetWClass; title:库]')
$ChWnd=ControlGetHandle($Hwnd,'','SysTreeView321')
$Item=_GUICtrlTreeView_FindItem($ChWnd, 'E:' , True) ;查找E盘并返回项目句柄
_GUICtrlTreeView_Expand($ChWnd,$Item,True) ;展开项目
;展开项目有时候会有延迟,这里sleep下
Sleep(2000)
_GUICtrlTreeView_ClickItem($ChWnd,$Item,'RIGHT') ;右键点击项目
ControlSend($Hwnd,'',$ChWnd,'y') ;发送按键,y为属性
Sleep(500)
WinWaitActive("自动播放")
Send("{Enter}")
发表于 2012-2-21 16:14:59 | 显示全部楼层
Local $bin=IniRead('R:\AutoRun.inf','AutoRun','Open','')
If $bin<>'' Then Run($bin)
Exit
 楼主| 发表于 2012-2-22 07:55:04 | 显示全部楼层
Qokelate 发表于 2012-2-21 16:14



    谢谢,不过win7的自动播放没有用autorun.inf,是直接右键菜单的“自动播放”。
发表于 2012-2-22 11:23:04 | 显示全部楼层
$Hwnd=WinWait('[class:CabinetWClass; title:我的电脑]')
$ItemCount=ControlListView($Hwnd,'','SysListView321','GetItemCount')
For $i=0 To $ItemCount
        $Text=ControlListView($Hwnd,'','SysListView321','GetText',$i)
        If StringInStr($Text,'F:') Then ExitLoop
Next
ControlListView($Hwnd,'','SysListView321','SelectClear')
ControlListView($Hwnd,'','SysListView321','Select',$i)
ControlSend($Hwnd,'','ToolbarWindow324','!fp')
我没有用windows7试过,以上代码在32位XPSP3上测试通过,请自行修改
 楼主| 发表于 2012-2-22 13:19:43 | 显示全部楼层
本帖最后由 tuutoo 于 2012-2-22 14:02 编辑
我没有用windows7试过,以上代码在32位XPSP3上测试通过,请自行修改
星雨朝霞 发表于 2012-2-22 11:23



    谢谢,win7和xp有点不一样。左边的是SysTreeView32,右边的变成了DirectUIHWND。

#include <Array.au3>
$Hwnd=WinWait('[class:CabinetWClass; title:计算机]')
$ItemCount=ControlTreeView($Hwnd,"","SysTreeView321","GetItemCount")
Local $ItemTxt[6][6]
For $J=0 To $ItemCount -1       
        For $I = 0 To $ItemCount - 1
        $ItemTxt[$j][$I] = ControlTreeView($Hwnd, "", "SysTreeView321", "GetText", "#"& $J &"|#" & $I)
        Next
Next
_ArrayDisplay($ItemTxt,"Display")
#0只遍历得到:下载、桌面
#1的遍历得到:库、家庭组

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-2-24 00:32:21 | 显示全部楼层
本帖最后由 星雨朝霞 于 2012-2-24 00:38 编辑
#Include <GuiTreeView.au3>
Run('explorer.exe')
$Hwnd=WinWait('[class:CabinetWClass; title:库]')
$ChWnd=ControlGetHandle($Hwnd,'','SysTreeView321')
$Item=_GUICtrlTreeView_FindItem($ChWnd, 'D:' , True) ;查找D盘并返回项目句柄
_GUICtrlTreeView_Expand($ChWnd,$Item,True) ;展开项目
_GUICtrlTreeView_ClickItem($ChWnd,$Item,'RIGHT') ;右键点击项目
ControlSend($Hwnd,'',$ChWnd,'r') ;发送按键,r为属性
虚拟机windows7测试通过...

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2012-3-5 12:13:35 | 显示全部楼层
本帖最后由 tuutoo 于 2012-3-5 12:19 编辑
虚拟机windows7测试通过...
星雨朝霞 发表于 2012-2-24 00:32



    试过了 很好用 谢谢。
我原来用的是这个 没有你的这个智能 哈哈!
run("explorer.exe ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")
WinWaitActive("计算机")
Send("{down 2}")
Send ("{APPSKEY}")
Send("{Y}")
WinWaitActive("自动播放")
Send("{Enter}")
但有时候任务管理器的进程里经常出现多个explorer.exe进程 不知道是脚本出错时出现的 有没有人知道是什么原因呢、
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-19 12:42 , Processed in 0.148202 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表