Explorer copy to Dropbox via AutoHotKey v2
Sorry for a new version so soon, but I realized somewhat belatedly that the easy way to get a file’s location is to simply copy it, something that AutoHotKey does rather easily. So, I’ve put a new version of the library up.
This one can copy multiple files/folders to the dropbox, whereas my previous version was only limited to just one. Once I copy, I loop through, check if each is a file or folder, and act accordingly. I’m pretty happy with the change; usage and code after the break.
To use it, you’ll need AutoHotKey and a Dropbox account.
Usage (copied from last post)
Download the file to wherever you keep the autohotkey file you usually run. Somewhere at the top of your script, be sure to have the following line:
#Include dropbox.ahk
Somewhere else in your script, include the following:
#IfWinActive ahk_class CabinetWClass ;; copy the current file to the dropbox ^+d:: CopySelectedFileOrFolderToDropbox() Return #IfWinActive
How it works
CopySelectedFileOrFolderToDropbox()
{
;; get the location of the dropbox
dropbox := GetDropboxFolderLocation()
;; get the selected files by copying them from the clipboard
Copy()
;; init the tray message
traymsg =
lastfile =
;; parse through it
Loop parse, clipboard, `n, `r
{
;; split the path
SplitPath A_LoopField, filename
;; find out if this file is a directory
FileGetAttrib attr, %A_LoopField%
if ( ErrorLevel > 0 )
{
traymsg = %traymsg%Failed to copy %A_LoopField% to Dropbox\Public\`n`n
}
IfInString attr, D
{
FileCopyDir %A_LoopField%, %dropbox%\Public\%filename%\
traymsg = %traymsg%Copied %filename% to Dropbox\Public\%filename%\`n`n
}
else
{
FileCopy %A_LoopField%, %dropbox%\Public\
traymsg = %traymsg%Copied %filename% to Dropbox\Public\`n`n
}
lastfile = %filename%
}
;; get the public url of the last file copied
user_id = 3771881
public_url := GetDropboxPublicURL(user_id, lastfile)
;; put the url on the clipboard
clipboard = %url%
;; add that to the tray msg
traymsg = %traymsg%Put url to %lastfile% on clipboard
;; show the tray msg
TrayTip Dropbox, %traymsg%
}
Leave a Reply