找回密码
 加入
搜索
查看: 4009|回复: 4

[AU3基础] 获取桌面文件路径[已解决]

[复制链接]
发表于 2014-10-24 23:21:34 | 显示全部楼层 |阅读模式
本帖最后由 wants 于 2014-11-1 09:20 编辑

想做个右键将文件上传的网盘,下面的代码对打开的文件夹好像能取得路径,但是桌面上的路径取不到,请教一下大家,要怎么修改才能取到桌面路径。
$hExplorer = WinGetHandle( "[REGEXPCLASS:^(Cabinet|Explore)WClass$]" )
If Not $hExplorer Then Exit

; Shell object
$oShell = ObjCreate( "Shell.Application" )

; Find window
For $oWindow In $oShell.Windows()
  If $oWindow.HWND() = $hExplorer Then ExitLoop
Next

; Selected items
For $oItem In $oWindow.Document.SelectedItems()
  ConsoleWrite( $oItem.Path() & @CRLF )
Next
发表于 2014-10-25 09:04:29 | 显示全部楼层
MsgBox(0,0,@DesktopDir)
 楼主| 发表于 2014-10-25 10:36:49 | 显示全部楼层
我要选中文件的路径
zxxsm 该用户已被删除
发表于 2014-10-29 07:21:19 | 显示全部楼层
好源码,值得学习
 楼主| 发表于 2014-10-31 11:34:42 | 显示全部楼层
本帖最后由 wants 于 2014-10-31 14:43 编辑

自己整了一下,貌似达到了自己想要的效果,需将文件添加到右键的发送到才有效果,在XP和WIN7下试了都可以,可多选发送。
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
; Windows Explorer on XP, Vista, 7, 8
;$hExplorer = WinGetHandle( "[REGEXPCLASS:Progman]" )
                $hExplorer = WinGetHandle( "[REGEXPCLASS:^(Cabinet|Explore)WClass$]" )
GetFocusedFullPath()
Func opendir()
        
        $oShell = ObjCreate( "Shell.Application" )
; Find window
For $oWindow In $oShell.Windows()
  If $oWindow.HWND() = $hExplorer Then ExitLoop
Next
          For $oItem In $oWindow.Document.SelectedItems()
  ;ConsoleWrite( $oItem.Path() & @CRLF )
If $oItem.Path()<>"" Then
   MsgBox(0, "1",$oItem.Path())
   ;FileWrite ( "www.ini", $oItem.Path()) 
   EndIf
Next
; Selected items

        EndFunc
Func GetFocusedFullPath()
        $ListViewHWnd = ControlGetHandle("", "", "SysListView32")
        $ItemSelectedId = ControlListView("", "", $ListViewHWnd, "GetSelected",1)
                $dz1 = StringSplit($ItemSelectedId, "|", 1)
                If $dz1[0] >=1 Then
        For $t = 1 To $dz1[0]
        $ItemText = ControlListView("", "", $ListViewHWnd, "GetText", $dz1[$t])
        $Path = ControlGetText("", "", "Edit1")
                If $ItemText<>"" And $path<>"" Then 
                opendir()
                ExitLoop
        ElseIf $ItemText<>"" Then
                        If StringInStr(StringRight($ItemText, 4),".")=0  Then
                        $kzm=".*"
                Else
                        $kzm=""
                EndIf
                $search = FileFindFirstFile( @DesktopDir &""&$ItemText&$kzm)
                 $file = FileFindNextFile($search) 
                 ;MsgBox(0, "2", @DesktopDir &""& $file)
                  FileWrite ( "www.ini", @DesktopDir &""& $file&@CRLF)  
        Else
                opendir()
        EndIf
Next
EndIf
        EndFunc   ;==>GetFocusedFullPath
        
                
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 10:22 , Processed in 0.103940 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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