2017-02-20 4 views
0

Windows OS上の2つのファイルエクスプローラ間でドラッグ&ドロップを自動化しようとしています。私はブラウザのためにドラッグアンドドロップ実装のオンラインヘルプを見つけることができました。 しかし、別のファイルエクスプローラへのファイルのドラッグアンドドロップのヘルプはありません。Windows上の2つのファイルエクスプローラ間でドラッグアンドドロップするためのオートメーションの実装方法

+0

がAutoit' http://stackoverflow.com/questions/41035353/how-to-handle-windows-authentication- 'に私の答えを参照してください:あなたは、次の機能を使用することができますエクスプローラからの選択を取得するにはpopup-in-robot-framework-ride/41035644#41035644 – Goralight

+0

@Goralight autoitを使用すると、ドラッグアンドドロップを実装できません。あなたのソリューションはブラウザからのものです。ファイルエクスプローラでは何ができますか? –

+0

'Mouse Down'、' Mouse Move'と 'Mouse Down'を見ましたか?しかしどちらの方法でも、これはブラウザ/ Web用に作られたものです。しかし、私はこれがファイルブラウザからファイルブラウザにあなたを止めさせるとは思わないが、とにかくAutoItがデスクトップに話すように...何か試したことがありますか? – Goralight

答えて

0

これは、Shell.Applicationオブジェクトに使用します。

;=============================================================================== 
; Function Name....: _ActiveExplorer_GetSelected 
; Description......: Creates an array with 
;     - Count of selected files/folder 
;     - Path of active Explorer window and 
;     - the path/es of selected file/s /folder 
; Requirement(s)...: Opened Explorer window 
; Return Value(s)..: Array with data, $a[0] = Count, $a[1] = Folderpath, $a[2..] = File/Foldername 
; .................: ATTENTION! Last index $a[0]+1 !! 
; Author(s)........: BugFix ([email protected]) 
;=============================================================================== 
Func _ActiveExplorer_GetSelected() 
    Local $oShell = ObjCreate("Shell.Application") 
    Local $oExplorer, $sPath, $oFolderView, $iCount = 0, $sSelectedFiles = '', $n = 2 
    Local $oShellWindows = $oShell.Windows 
    For $i = 0 To $oShellWindows.Count -1 
     $oExplorer = $oShellWindows($i) 
     $sPath = StringReplace(StringReplace(StringTrimLeft($oExplorer.LocationURL, 8), '%20', ' '), '/', '\') 
     If WinGetTitle('[ACTIVE]') = $sPath Then ExitLoop 
    Next 
    $oFolderView = $oExplorer.Document.SelectedItems() 
    $iCount = $oFolderView.Count 
    Local $aOut[$iCount +2] 
    $aOut[0] = $iCount 
    $aOut[1] = $sPath 
    If $iCount = 0 Then 
     Return '' 
    Else 
     For $oFolderItem In $oFolderView 
      $aOut[$n] = $oFolderItem.Name 
      $n += 1 
     Next 
     Return $aOut 
    EndIf 
EndFunc ; ==>_ActiveExplorer_GetSelected 
+0

よろしくお願いします。そして、あなたに知らせてください –

関連する問題