2013-06-28 22 views
0

基本上,我對autohotkey比較陌生,想知道是否可以製作一個腳本,這樣當按下按鈕時,文件瀏覽器會彈出,然後您可以根據需要選擇儘可能多的文件,但如果大小的文件超過1000MB,那麼你不能再選擇文件,在此之後,你有文件被複制到計算機的USB記憶棒,也,我將如何去確保文件瀏覽器無法打開任何文件(即你不能恰到好處點擊瀏覽文件時點擊打開,你只能選擇文件? 三江源,如何獲取用戶選擇的文件大小(autohotkey)?

+0

是的,這是可能的。你有什麼嘗試? – 2013-06-28 19:12:24

+0

是的,這是可能的。檢查大小並複製選定的文件不會成爲問題。但是,禁止打開文件將是棘手的部分。你爲什麼需要這個限制? –

回答

0

哈,我今天只是看着那個功能!

看看FileGetSize

以下是在文檔:

任何尺寸的

文件都支持,即使是那些超過400千兆字節,甚至 如果單位是字節。

如果目標文件是一個目錄,無論操作系統認爲它是什麼(在所有情況下可能爲零),大小將報告爲 。

要計算文件夾的大小,包括它的所有文件,按照此 例如:

SetBatchLines, -1 ; Make the operation run at maximum speed. 
FolderSize = 0 FileSelectFolder, WhichFolder ; Ask the user to pick a folder. 
Loop, %WhichFolder%\*.*, , 1 
    FolderSize += %A_LoopFileSize% 
MsgBox Size of %WhichFolder% is %FolderSize% bytes. 

至於固定它,因此文件無法打開,那麼,當您使用FileOpen對話(檢查文檔中的內容;它非常容易),您可以準確選擇如何處理該文件。

基本上,你不「禁用」文件的打開,你只需要做別的事情!

例如,如果將其作爲腳本運行,它將顯示文件瀏覽器對話框,但不是在任何程序中打開文件,而是在其上運行FileGetSize函數,然後顯示帶有該文件的消息框大小:

gosub, fileopen 

FileOpen: 
    FileSelectFile, thisfile, 3,startdirectory, Select Files, Any File (*.*; *.gabc) 

    if(thisfile){ 
     filegetsize, thisfilesize, %thisfile% 
     msgbox, %thisfilesize% 
     return 
    }else{ 
     return 
    } 
return 

要讓它在所有選定的文件上工作,您必須使用循環語句。我要做的就是循環選擇所有文件並將它們的文件大小寫入一個變量,然後在循環結束時顯示消息框。