Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Persistent
- NumberToDivideBy = 55
- #1:: ;Hotkey for WinKey + 1.
- PathToFile := Explorer_GetSelected()
- ifEqual, PathToFile, ERROR
- {
- Msgbox, You havent selected any files.
- Exitapp
- }
- StringGetPos, LocOfPoint, PathToFile, ., R1
- StringTrimLeft, FileExt, PathToFile, %LocOfPoint%
- MsgBox, %FileExt%
- ifEqual, FileExt, .docx
- {
- w := ComObjCreate( "Word.Application" )
- w.Documents.Open( PathToFile )
- FileContents := w.ActiveDocument.Content.Text
- w.Options.SaveNormalPrompt ? "True" : "False"
- w.Options.SaveNormalPrompt := ! w.Options.SaveNormalPrompt
- w.Options.SaveNormalPrompt ? "True" : "False"
- w.Quit
- w.Tasks( "Word" ).Close
- }
- FileRead, FileContents, %PathToFile% ;Reads the files contents to a variable.
- ifEqual, FileExt, .docx
- {
- goto, ReadFromWord
- }
- ifEqual, FileExt, .doc
- {
- goto, ReadFromWord
- }
- ifEqual, FileExt, .docs
- {
- goto, ReadFromWord
- }
- ifEqual, FileExt, .docm
- {
- goto, ReadFromWord
- }
- StringLen, ContentLen, FileContents ;Finds the charachter count of that variable.
- ContentLen /= NumberToDivideBy ;Divides by 55
- MsgBox, 36, Length of the Contents, Heres the charachter count of the file divided by 55: %ContentLen%`n`nWould you like to copy it to your clipboard? ;Shows a message box.
- IfMsgBox, Yes ;If you answer Yes
- Clipboard := ContentLen ;Set clipboard to the lenght divided by 55
- return
- /*
- Library for getting info from a specific explorer window (if window handle not specified, the currently active
- window will be used). Requires AHK_L or similar. Works with the desktop. Does not currently work with save
- dialogs and such.
- Explorer_GetSelected(hwnd="") - paths of target window's selected items
- Explorer_GetAll(hwnd="") - paths of all items in the target window's folder
- Explorer_GetPath(hwnd="") - path of target window's folder
- example:
- F1::
- path := Explorer_GetPath()
- all := Explorer_GetAll()
- sel := Explorer_GetSelected()
- MsgBox % path
- MsgBox % all
- MsgBox % sel
- return
- Joshua A. Kinnison
- 2011-04-27, 16:12
- */
- ReadFromWord:
- w := ComObjCreate( "Word.Application" )
- w.Documents.Open( PathToFile )
- FileContents := w.ActiveDocument.Content.Text
- w.Options.SaveNormalPrompt ? "True" : "False"
- w.Options.SaveNormalPrompt := ! w.Options.SaveNormalPrompt
- w.Options.SaveNormalPrompt ? "True" : "False"
- w.Quit
- w.Tasks( "Word" ).Close
- return
- Explorer_GetPath(hwnd="")
- {
- if !(window := Explorer_GetWindow(hwnd))
- return ErrorLevel := "ERROR"
- if (window="desktop")
- return A_Desktop
- path := window.LocationURL
- path := RegExReplace(path, "ftp://.*@","ftp://")
- StringReplace, path, path, file:///
- StringReplace, path, path, /, \, All
- ; thanks to polyethene
- Loop
- If RegExMatch(path, "i)(?<=%)[\da-f]{1,2}", hex)
- StringReplace, path, path, `%%hex%, % Chr("0x" . hex), All
- Else Break
- return path
- }
- Explorer_GetAll(hwnd="")
- {
- return Explorer_Get(hwnd)
- }
- Explorer_GetSelected(hwnd="")
- {
- return Explorer_Get(hwnd,true)
- }
- Explorer_GetWindow(hwnd="")
- {
- ; thanks to jethrow for some pointers here
- WinGet, process, processName, % "ahk_id" hwnd := hwnd? hwnd:WinExist("A")
- WinGetClass class, ahk_id %hwnd%
- if (process!="explorer.exe")
- return
- if (class ~= "(Cabinet|Explore)WClass")
- {
- for window in ComObjCreate("Shell.Application").Windows
- if (window.hwnd==hwnd)
- return window
- }
- else if (class ~= "Progman|WorkerW")
- return "desktop" ; desktop found
- }
- Explorer_Get(hwnd="",selection=false)
- {
- if !(window := Explorer_GetWindow(hwnd))
- return ErrorLevel := "ERROR"
- if (window="desktop")
- {
- ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progman
- if !hwWindow ; #D mode
- ControlGet, hwWindow, HWND,, SysListView321, A
- ControlGet, files, List, % ( selection ? "Selected":"") "Col1",,ahk_id %hwWindow%
- base := SubStr(A_Desktop,0,1)=="\" ? SubStr(A_Desktop,1,-1) : A_Desktop
- Loop, Parse, files, `n, `r
- {
- path := base "\" A_LoopField
- IfExist %path% ; ignore special icons like Computer (at least for now)
- ret .= path "`n"
- }
- }
- else
- {
- if selection
- collection := window.document.SelectedItems
- else
- collection := window.document.Folder.Items
- for item in collection
- ret .= item.path "`n"
- }
- return Trim(ret,"`n")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement