DonationCoder.com Software > Post New Requests Here
IDEA: middle click on desktop to get quick launch or 'start menu'
xunil:
i had tried intellipoint, but it did not work with my mouse (which is just your average Dell usb mouse). then i tried X-Mouse Button Control, which did work, but it is uses up about 10 mb ram. autohotkey only uses about 3 mb ram... and it can also be used for so much more.
i'll post my autohotkey script tomorrow, with some basic instructions on using shortpopup.
xunil:
ShortPopUp (http://www.digitallis.co.uk/) and AutoHotkey can be used together to get a LINUX like menu… middle click (instead of right click) to get a menu of your applications. to use ShortPopUp all you do is create a folder (lets say... \My Documents\SPU) and place shortcuts (or files or folders) inside along with the ShortPopUp.exe (you need to tell ShortPopUp what folder to start in, so techniclly it does not have to be in the same folder). anything inside here will show up in the menu when ShortPopUp is called. folders can be expanded, so you can place a shortcut to your start menu folder to get all of your applications. see the help file for all of its features. here is how I use it with AutHotkey...
--------------------------------------------------
AutoHotkey script...
;ShortPopUp Access
~MButton:: ;middle mouse button
Process, Priority, , High
Run, %A_MyDocuments%\SPU\ShortPopUp.exe -useinifile shortpopup.ini, %A_MyDocuments%\SPU
return
!Space:: ;Alt+Space (in case your hands are already on the keyboard)
Process, Priority, , High
Run, %A_MyDocuments%\SPU\ShortPopUp.exe -useinifile shortpopup.ini, %A_MyDocuments%\SPU
return
--------------------------------------------------
ShortPopUp ini file (shortpopup.ini), place in the same folder as ShortPopUp.exe...
-sort 2
-display 3 xp flat rounded
-dieonmouseout 1000
-menusforshortcutstofolders
-noavailablecheck
-dothumbnailsontooltip
-iconsforfolders
-block ".ini"
-maxmenuwidth 500
-menuxalignment left
-menuyalignment top
--------------------------------------------------
Target:
there have been a number of AHK scripts that do what you want (I'm thinking of some snazzy radial versions which I unfortunately can't find at the moment)
The attached script (by Rajat) will do what you want
target
skwire:
previously there was a tool that could do this. it was called Start Or Switch but i'm not sure whether it still works in newer OSes such as WinXP, 2K, etc.
-lanux128 (April 03, 2008, 10:16 PM)
--- End quote ---
looks like that project is dead. could not download nor could i find it with google :(
-xunil (April 04, 2008, 04:52 PM)
--- End quote ---
http://azores.globat.com/~pricelesswarehome.org/ftp/Programs/sosmenu.zip
Signy:
If you knew how to make an autohotkey script that when you click the middle mouse button, it would push the windows key, and then somehow move the start menu to where the mouse is, that would work, I could do part of that, but I dunno if I could make the start menu move to the mouse.
-nite_monkey (April 08, 2008, 10:58 PM)
--- End quote ---
Nice idea.
I started using ShortPopUp for All programs from StartMenu, but unfortunately ShortPopUp has a bug on multi-monitor screen (my case).
Luckily I use Classic shell http://classicshell.sourceforge.net/ and it's StartMenu replacement has ahk_class, so moving whole menu is possible.
I'm still using ShortPopUp on middle click on desktop for my favourite folders, so I use right click on desktop for StartMenu.
Bellow in Spoiler is AutoHotKey script, which:
* works with Classic shell StartMenu,
* works on multi-monitor desktop,
* right click on desktop -> opens StartMenu and moves it to mouse pointer,
* CTRL + right click on desktop -> works as usual right click on desktop,
Click to show AutoHotKey script
Spoiler
--- ---#SingleInstance force
DetectHiddenWindows, on
Process, Priority, , AboveNormal
;--------------------------------------------------------
; Classic shell desktop - use right button click on desktop and
; you get ClassicShell menu.
; If you need right click on desktop, use CTRL + right
; click instead.
; This script works for Classic shell start menu replacement
; http://classicshell.sourceforge.net/
RButton::
CoordMode, Mouse, Screen ; Absolute position
MouseGetPos, Xpos, Ypos, id, control
WinGetClass, class, ahk_id %id%
if (class == "Progman") ; Mouse is above desktop
{
; Set desired initial menu position
; "Top" - mouse pointer is going to be on top left corner menu, default value
; "Bottom" - mouse pointer is going to be on bottom left corner menu
; "Middle" - mouse pointer is going to be in the middle of menu left side
InitialMenuPosition := "Middle"
StateProgman := 1 ; For right click down + move
Send {RWin} ; Open StartMenu
WinWaitActive, ahk_class ClassicShell.CMenuContainer
#IfWinActive ahk_class ClassicShell.CMenuContainer
WinGetPos, , , Xsize, Ysize, ahk_class ClassicShell.CMenuContainer
SysGet, MonitorCount, 80 ; Number of monitors
Sysget, MonitorPrimary, MonitorPrimary ; Primary monitor number
Loop %MonitorCount%
{
; Primary working area, could be changed for primary monitor with taskbar
SysGet, Monitor, Monitor, %A_Index% ; Maximal monitor area
if ( Xpos >=MonitorLeft and Xpos <= MonitorRight
and Ypos >=MonitorTop and Ypos <= MonitorBottom ) ; Mouse pointer is inside this monitor
{
SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index% ; Working area without not hiding taksbar
WorkLeft := MonitorWorkAreaLeft
WorkTop := MonitorWorkAreaTop
WorkRight := MonitorWorkAreaRight
WorkBottom := MonitorWorkAreaBottom
; Test smaller work area - for auto-hide taskbar
if ( A_Index == MonitorPrimary and MonitorLeft == MonitorWorkAreaLeft
and MonitorTop == MonitorWorkAreaTop and MonitorRight == MonitorWorkAreaRight
and MonitorBottom == MonitorWorkAreaBottom ) ; Primary monitor with auto-hide taskbar
{
WinGetPos,TaskX,TaskY,TaskW,TaskH,ahk_class Shell_TrayWnd,,, ; Where is taskbar?
if (TaskW >= A_ScreenWidth) { ; Vertical Taskbar
if (TaskY <= 0) {
WorkTop := MonitorWorkAreaTop + TaskH
} else {
WorkBottom := MonitorWorkAreaBottom - TaskH
}
} else { ; Horizontal Taskbar
if (TaskX <= 0) {
WorkLeft := MonitorWorkAreaLeft + TaskW
} else {
WorkRight := MonitorWorkAreaRight - TaskW
}
}
}
}
}
; Window position
Xwin := Xpos ; Initial X value for window position
if ( InitialMenuPosition == "Bottom" )
Ywin := Ypos - Ysize
else if ( InitialMenuPosition == "Middle" )
Ywin := Ypos - Ceil( Ysize/2 )
else ; Default = "Top"
Ywin := Ypos ; Initial Y value for window position
; Whole window on visible part of selected monitor
if ( Xwin < WorkLeft )
Xwin := WorkLeft
if ( Xwin > WorkRight - Xsize )
Xwin := WorkRight - Xsize
if ( Ywin < WorkTop )
Ywin := WorkTop
if ( Ywin > WorkBottom - Ysize )
Ywin := WorkBottom - Ysize
WinMove, ahk_class ClassicShell.CMenuContainer, , Xwin, Ywin ; Move opened window
#IfWinActive
Return
}
else ; (class != "Progman") Right click for another programs intact
{
; Right click + move http://www.autohotkey.com/forum/topic19826.html
; Many thanks to original autor YMP
CoordMode, Mouse, Screen
MouseGetPos, mX0, mY0
Loop
{
Sleep, 20
If not GetKeyState("RButton", "P")
Break
MouseGetPos, mX, mY
dX:=Abs(mX-mX0), dY:=Abs(mY-mY0)
If (dX>3 or dY>3)
{
Move:=1
Click Down Right
KeyWait, RButton
Click Up Right
Break
}
}
}
Return
RButton Up::
If not Move ; For right click without move
{
If not StateProgman
Click Right
else
StateProgman := 0
}
Else
Move:=0
Return
;--------------------------------------------------------
; CTRL-right click on desktop = right click
^RButton::
MouseGetPos, , , id, control
WinGetClass, class, ahk_id %id%
if (class == "Progman") ; Click on desktop: CTRL-RightClick -> RightClick
{
; Right click + move http://www.autohotkey.com/forum/topic19826.html
; Many thanks to original autor YMP
CoordMode, Mouse, Screen
MouseGetPos, mX0, mY0
Loop
{
Sleep, 20
If not GetKeyState("RButton", "P")
Break
MouseGetPos, mX, mY
dX:=Abs(mX-mX0), dY:=Abs(mY-mY0)
If (dX>3 or dY>3)
{
Move:=1
Click Down Right
KeyWait, RButton
Click Up Right
Break
}
}
Return
}
else
{
Send ^{Click right} ; CTRL+RightClick
return
}
Return
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version