2016-08-24 14 views
2

こんにちは私は、Windows 10カメラを開き、カメラを閉じた後にGUIを使って最新の画像を表示するスクリプトを書いています。彼らが「はい」を選択すると、スクリプトはファイルパスをclibpoardにコピーし、このファイルパスを超えてMicrosoft Excelセルに入れることができます。私はファイルパスをクリップボードにコピーする必要があるまで、私はそれをどのようにしたいのかを毎日勉強しています。ここまでは私のコードです。autoITクリップボードに最新のファイルパスをコピー

  #include <MsgBoxConstants.au3> 

     Camera() 

     Func Camera() 
      ;Execute Camera and wait for Camera to close 
      local $iPID = ShellExecuteWait("explorer.exe", "shell:AppsFolder\Microsoft.WindowsCamera_8wekyb3d8bbwe!App") 
      Sleep(3000) 
      WinWaitClose("Camera") 

     EndFunc 

     ;-------------------------------------------------------------------------------------------- 

     #Include <File.au3> 
     #Include <Array.au3> 
     #include <GUIConstantsEx.au3> 
     #include <GUIComboBox.au3> 
     #include <Process.au3> 
     $dst = "C:\Users\Cex\Pictures\Camera Roll" ;specify folder 
     $a_FileList = _FileListToArray2() 
     _ArraySort($a_FileList, 1, 1, $a_FileList[0][0], 1) 
     ShellExecute($a_FileList[1][0]) 


     Func _FileListToArray2($s_Mask='*') 
     $h_Search = FileFindFirstFile($dst & '\' & $s_Mask) 
     $s_FileName = FileFindNextFile($h_Search) 
     If Not @error Then 
      Dim $a_File[100][2] 
      While Not @error 
       if StringInStr($s_FileName,'.',0,-1) Then 
        $s_FullName = $dst & '\' & $s_FileName 
        $a_File[0][0] += 1 
        If $a_File[0][0] >= UBound($a_File) Then 
         ReDim $a_File[$a_File[0][0] * 2][2] 
        EndIf 
        $a_File[$a_File[0][0]][0] = FileGetLongName($s_FullName) 
        $a_File[$a_File[0][0]][1] = FileGetTime($s_FullName,0,1) 
       EndIf 
       $s_FileName = FileFindNextFile($h_Search) 
      WEnd 
      ReDim $a_File[$a_File[0][0] + 1][2] 
      Return $a_File 
     Else 
      Return '' 
     EndIf 
     EndFunc 

     ;------------------------------------------------------------------------------------ 

     #include <GUIConstantsEx.au3> 
     #include<IE.au3> 

     WinWaitActive("Photos", "") 

      Local $qGUI = GUICreate("Example", 200, 125, 1000, 200) 
      GUICtrlCreateLabel("Are you happy with this image?", 30, 30) 

      Local $bYes = GUICtrlCreateButton("Yes", 6, 60, 85, 25) 
      GUICtrlSetOnEvent($bYes, "xYes") 

      Local $bNo = GUICtrlCreateButton("Yes", 107, 60, 85, 25) 
      GUICtrlSetOnEvent($bNo, "xNo") 

      Local $bClose = GUICtrlCreateButton("Close", 57, 90, 85, 25) 

      GUISetState(@SW_SHOW, $qGUI) 


      While 1 
       Switch GUIGetMsg() 
        Case $bYes 
         bYes() 
         GUIDelete($qGUI) 
         Exit 

        Case $bNo 
         bNo() 
         GUIDelete($qGUI) 
         Exit 

        Case $bClose, $GUI_EVENT_CLOSE 
        ExitLoop 
       EndSwitch 
       WEnd 

      Func bYes() 
       _RunAU3("YesTest.au3") 
      EndFunc 

      Func bNo() 
       _RunAU3("NoTest.au3") 
      EndFunc 

      Func _RunAU3($sFilePath, $sWorkingDir = "", $iShowFlag = @SW_SHOW, $iOptFlag = 0) 
       Return Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & $sFilePath & '"', $sWorkingDir, $iShowFlag, $iOptFlag) 
      EndFunc 

私は最近の写真のファイルパスをコピーして、その後、Excelのセルに貼り付けられますクリップボードにコピーするために探しています言ったように。私はコーディングの知識が限られているので、コードには多くの悪い点があるかもしれませんが、私はちょっとだけ教えています。誰かが私を助けてくれるなら、私を混乱させてはいけません。

答えて

1

AutoITには、ClipPutやClipGetなどのクリップボードの機能が組み込まれています。

ClipPut($filepath) 

があなたのケースにされるであろうperfecを働い

ClipPut($a_FileList[1][0]) 
+0

はありがとうございました! –

関連する問題