Hi, disrupted,
my compliments, you seem to me so utterly quick and prolific. Sadly, I couldn't make it work on mx KM 1.53.
As I have this other feature wish, live toolbar toggling, I reverted to Autohotkey, because there I know how to send keys to the browser. I now have a button working with:
- Leftclick to switch to drag mode, then Rightclick anywhere to drag (- even other windows). Releasing RButton exits the .ahk script, so unlock - luckily it even does not popup the contextMenu on releasing.
- RClick:
-> Minimize
-> NewWindow
-----
Bars ->toggle Titlebar
->toggle Toolbar
->toggle Statusbar
-----
Win ->Windows List
->Close Window
->Exit KM
->Restart
The biggest problem this gave me is still unsolved: I couldn't make Autohotkey digest the path strings from KM, so I had to hard-code the paths - going to ask on their forums one of these days.
The code of the .ahk script + 2 references:
note: a word forbidden had to be replaced. MouseY DOES have a horizontal counterpart
; Easy Window Dragging
; by Chris Mallet
; http://www.autohotkey.com/forum/posting.php?mode=quote&p=34052
; several forum topics, like:
; ;http://www.autohotkey.com/forum/topic5017.html&highlight=easy+window+dragging
; AutoHotkey Version: This script requires Autohotkey v1.0.25+
; Platform: (requires XP/2k/NT)
; Author: Chris Malletet al. (?)
;
; Script Function: when running, makes the RButton a DragButton, on release, exits,
; unlocking dragging.
; Be sure your taskbar can show, be shure to know how to move & resize a
; window from its taskbar labels system menu.
;
#SingleInstance, force
RButton Up::
{
exitapp
}
RButton::
CoordMode, Mouse ; Switch to screen/absolute coordinates.
MouseGetPos, EWD_MouseStartX, EWD_MouseStartY, EWD_MouseWin
WinGetPos, EWD_OriginalPosX, EWD_OriginalPosY,,, ahk_id %EWD_MouseWin%
WinGet, EWD_WinState, MinMax, ahk_id %EWD_MouseWin%
if EWD_WinState = 0 ; Only if the window isn't maximized
SetTimer, EWD_WatchMouse, 80 ; Track the mouse every n milliseconds. Ori=
return ; ginal Value=10. Less=>smoother, but eats CPU time
EWD_WatchMouse:
GetKeyState, EWD_LButtonState, LButton, P
if EWD_LButtonState = D ; Button has been pressed, so drag is complete.
{
SetTimer, EWD_WatchMouse, off
return
}
GetKeyState, EWD_EscapeState, Escape, P
if EWD_EscapeState = D ; Escape has been pressed, so drag is cancelled.
{
SetTimer, EWD_WatchMouse, off
WinMove, ahk_id %EWD_MouseWin%,, %EWD_OriginalPosX%, %EWD_OriginalPosY%
return
}
; Otherwise, reposition the window to match the change in mouse coordinates
; caused by the user having dragged the mouse:
CoordMode, Mouse
MouseGetPos, EWD_MouseQIX, EWD_MouseY
WinGetPos, EWD_WinX, EWD_WinY,,, ahk_id %EWD_MouseWin%
SetWinDelay, -1 ; Makes the below move faster/smoother.
WinMove, ahk_id %EWD_MouseWin%,, EWD_WinX + EWD_MouseQIX - EWD_MouseStartX, EWD_WinY + EWD_MouseY -
EWD_MouseStartY
EWD_MouseStartX := EWD_MouseQIX ; Update for the next timer-call to this subroutine.
EWD_MouseStartY := EWD_MouseY
return
Any help with the path/string problem would be appreciated
Cheers
SoerenB
Back again ...
Edited 1 time(s). Last edit at 02/22/2010 07:38AM by SoerenB.