topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Tuesday May 24, 2022, 9:52 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - skrommel [ switch to compact view ]

Pages: prev1 2 3 4 [5] 6 7 8 9 10 ... 38next
101
Post New Requests Here / Re: WinFill - better than Aero Snap?
« on: January 12, 2009, 02:49 AM »
 :tellme: That's odd, I'm running Vista, too. It should just be a matter of taking a window by it's caption and dropping it on a screen edge. Try the upper left corner and let me know.

Skrommel

102
Post New Requests Here / WinFill - better than Aero Snap?
« on: January 11, 2009, 06:12 PM »
 :) Waiting for Windows 7?

WinFill - Drag a window to the edges of the screen to resize it.

Idea stolen from Windows 7's Aero Snap, but with more zones.

A  B  C  D  E

F             G

H             I

J   K      M N

A = top left corner = resize to fill top left quarter of the screen
B = top left           = resize to fill left half of the screen
C = top center      = maximize
...
F = left top          = resize to fill upper half of the screen
...

Try it!

Skrommel

;WinFill.ahk
; Drag a window to the edges of the screen to resize it
; A  B  C  D  E
;
; F           G
;
; H           I
;
; J  K    M   N
;Skrommel @ 2009

#SingleInstance,Force
SetWinDelay,0
CoordMode,Mouse,Screen
;CoordMode,ToolTip,Screen


~LButton::
MouseGetPos,mx0,my0,mwin1,mctrl1
WinGetPos,wx1,wy1,ww1,wh1,ahk_id %mwin1%
mx1:=mx0-wx1
my1:=my0-wy1
Return


~LButton Up::
MouseGetPos,mx2,my2,mwin2,mctrl2
SysGet,dragx,68
SysGet,dragy,69
If (mx2>=mx0-dragx And mx2<=mx0+dragx And my2>=my0-dragy And my2<=my0+dragy)
  Return

WinGet,progman,Id,Program Manager ahk_class Progman
If (progman=mwin1)
  Return
WinGetPos,wx2,wy2,ww2,wh2,ahk_id %mwin1%
mx3:=mx2-wx2
my3:=my2-wy2
SysGet,monitors,MonitorCount
Loop,% monitors
{
  current:=A_Index
  SysGet,monitor,Monitor,% current
  If (mx2>=monitorLeft And mx2<=MonitorRight And my2>=MonitorTop And my2<=MonitorBottom)
    Break
}
SysGet,monitor,MonitorWorkArea,% current
;ToolTip,%current%:%monitorLeft%-%monitorTop%-%mx2%-%my2%,100,100

If (mx3<>mx1 Or my3<>my1)
  Return
If (ww2<>ww1 Or wh2<>wh1)
  Return

If (mx2<=monitorLeft)
{
  If (my2=monitorTop)        ;topleft
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight/2,% monitorBottom/2 ;topleft
  Else
  If (my2>monitorTop And my2<monitorBottom/4)        ;topleft
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight,% monitorBottom/2 ;top
  Else
  If (my2>=monitorBottom/4 And my2<monitorBottom/4*3) ;middleleft
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight/2,% monitorBottom ;left
  Else
  If (my2>=monitorBottom/4*3 And my2<monitorBottom-1)  ;bottomleft
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorBottom/2,% monitorRight,% monitorBottom/2 ;bottom
  Else
  If (my2=monitorBottom-1)  ;bottomleft
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorBottom/2,% monitorRight/2,% monitorBottom/2 ;bottomleft
}
Else
If (mx2>=monitorRight)
{
  If (my2=monitorTop)        ;topright
    WinMove,ahk_id %mwin1%,,% monitorRight/2,% monitorTop,% monitorRight/2,% monitorBottom/2 ;topright
  Else
  If (my2>=monitorTop And my2<monitorBottom/4)        ;topright
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight,% monitorBottom/2 ;top
  Else
  If (my2>=monitorBottom/4 And my2<monitorBottom/4*3) ;middleright
    WinMove,ahk_id %mwin1%,,% monitorRight/2,% monitorTop,% monitorRight/2,% monitorBottom ;right
  Else
  If (my2>=monitorBottom/4*3 And my2<monitorBottom-1)  ;bottomright
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorBottom/2,% monitorRight,% monitorBottom/2 ;bottom
  Else
  If (my2=monitorBottom-1)  ;bottomright
    WinMove,ahk_id %mwin1%,,% monitorRight/2,% monitorBottom/2,% monitorRight/2,% monitorBottom/2 ;bottomright
}
Else
If (my2<=monitorTop)
{
  If (mx2>=monitorLeft And mx2<monitorRight/4)        ;topleft
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight/2,% monitorBottom ;left
  Else
  If (mx2>=monitorRight/4 And mx2<monitorRight/4*3)     ;topmiddle
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight,% monitorBottom ;full
  Else
  If (mx2>=monitorRight/4*3 And mx2<=monitorRight)     ;bottom
    WinMove,ahk_id %mwin1%,,% monitorRight/2,% monitorTop,% monitorRight/2,% monitorBottom ;right
;    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorBottom/2,% monitorRight,% monitorBottom/2 ;topright
}
Else
If (my2>=monitorBottom-1)
{
  If (mx2>=monitorLeft And mx2<monitorRight/4)        ;bottomleft
    WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight/2,% monitorBottom ;left
  Else
;  If (mx2>=monitorRight/4 And mx2<monitorRight/4*3)     ;bottommiddle
;    WinMinimize,ahk_id %mwin1% ;WinMove,ahk_id %mwin1%,,% monitorLeft,% monitorTop,% monitorRight,% monitorBottom ;full
;  Else
  If (mx2>=monitorRight/4*3 And mx2<=monitorRight)     ;bottom
    WinMove,ahk_id %mwin1%,,% monitorRight/2,% monitorTop,% monitorRight/2,% monitorBottom ;right
}
Return

103
 :) Here's WallpaperVolume, a quick hack, untested, XP only.

Just fill in the first few lines with wallpaper names and volumes, and see if it works.

Skrommel

;WallpaperVolume.ahk
; Change the volume when the wallpaper changes in XP
;Skrommel @ 2009

wallpaper1=Waves.jpg
volume1=10
wallpaper2=Sunlight.jpg
volume2=50
wallpaper3=Golf.jpg
volume3=100

#NoEnv
#SingleInstance,Force

Loop
{
  Sleep,1000
  oldwallpaper:=wallpaper
  RegRead,wallpaper,HKEY_CURRENT_USER,Control Panel\Desktop,wallpaper
  If (wallpaper=oldwallpaper)
    Continue
  Loop
  {
    currentwallpaper:=wallpaper%A_Index%
    If currentwallpaper=
      Break
    IfInString,wallpaper,%currentwallpaper%
    {
      currentvolume:=volume%A_Index%
      SoundSet,%currentvolume%
      TrayTip,%applicationname%,Volume: %currentvolume%
    }
  }
}

104
Post New Requests Here / Re: IDEA batch/deferred printer
« on: January 10, 2009, 06:49 PM »
 :) I'd go for CutePDF Writer from http://www.cutepdf.com/Products/CutePDF/writer.asp.

It'll create PDF files of whatever you print, just save them to a folder and print them all when you're back at the office.

It's free, too.

Skrommel

105
 :) Here's your AutoHotkey script, IconBoy!

Just edit the first few lines.

Skrommel

;IntoFrame.ahk
; Copies landscape or portrait images
;Skrommel @ 2009

source=%A_MyDocuments%
target=C:\To
types=jpg,jpeg,jpe,png,gif,tif
subdirs=1
landscape=0
portrait=1

#NoEnv
#SingleInstance,Force
SetWorkingDir,%A_ScriptDir%
SetBatchLines,-1

applicationname=IntoFrame

FileCreateDir,%target%
Loop,Parse,types,`,
{
  type:=A_LoopField
  Loop,%source%\*.%type%,0,%subdirs%
  {
    SplitPath,A_LoopFileLongPath,name,dir,ext,name_no_ext,drive
    ImageData_Load(imagedata,A_LoopFileLongPath)
    ImageData_GetSize(imagedata,width,height)
    If ((width>=height And landscape=1) Or (width<=height And portrait=1))
    {
        FileCopy,%A_LoopFileLongPath%,%target%\%name%
        TrayTip,%applicationname%,%target%\%name%
    }
  }
}
Return


;Stolen from Lexicos at http://www.autohotkey.com/forum/topic28334.html
ImageData_Load(ByRef ImageData, ImageFile)
{
    static PixelFormat32bppARGB = 0x26200a
         , ImageLockModeRead = 0x1
         , ImageLockModeUserInputBuf = 0x4
   
    ; Initialize GDI+. Doing this here rather than at script
    ; startup is more convenient, at the cost of ~15ms.
    VarSetCapacity(GdiplusStartupInput, 16, 0), NumPut(1, GdiplusStartupInput)
    GdiplusModule := DllCall("LoadLibrary", "str", "Gdiplus")
    if GdiplusModule = 0
        return false, ErrorLevel:="GDIPLUS NOT FOUND"
    r := DllCall("Gdiplus\GdiplusStartup", "uint*", GdipToken, "uint", &GdiplusStartupInput, "uint", 0)
    if r != 0
        return false, ErrorLevel:=r
   
    ; Convert the filename to a unicode string.
    VarSetCapacity(wImageFile, StrLen(ImageFile)*2+1)
    DllCall("MultiByteToWideChar", "uint", 0, "uint", 0, "str", ImageFile, "int", -1, "uint", &wImageFile, "int", StrLen(ImageFile)+1)
   
    ; Load the image.
    r := DllCall("Gdiplus\GdipCreateBitmapFromFile", "uint", &wImageFile, "uint*", bitmap)
   
    if r != 0
        return false, ErrorLevel:=r
   
    ; Get the image's size.
    DllCall("Gdiplus\GdipGetImageWidth", "uint", bitmap, "uint*", width)
    DllCall("Gdiplus\GdipGetImageHeight", "uint", bitmap, "uint*", height)
   
    ; Make room for a BitmapData structure and the image data.
    VarSetCapacity(ImageData, 24 + width * height * 4, 0)
   
    ; Fill the BitmapData structure with details of the desired image format.
    NumPut(width, ImageData, 0, "UInt")
    NumPut(height, ImageData, 4, "UInt")
    NumPut(width * 4, ImageData, 8, "Int") ; Stride
    NumPut(PixelFormat32bppARGB, ImageData, 12, "Int") ; PixelFormat
    NumPut(&ImageData + 24, ImageData, 16, "UInt") ; Scan0
   
    ; Rect specifies the image region to lock.
    VarSetCapacity(rect, 16, 0)
    NumPut(width, rect, 8)
    NumPut(height, rect, 12)
   
    ; Lock the image and fill ImageData.
    r := DllCall("Gdiplus\GdipBitmapLockBits"
        , "uint", bitmap
        , "uint", &rect
        , "uint", ImageLockModeRead | ImageLockModeUserInputBuf
        ,  "int", PixelFormat32bppARGB
        , "uint", &ImageData)
   
    if r = 0 ; Status.Ok
    {
        ; "LockBits and UnlockBits must be used as a pair."
        DllCall("Gdiplus\GdipBitmapUnlockBits", "uint", bitmap, "uint", &ImageData)
    }
   
    ; Delete the bitmap (image in memory).
    DllCall("Gdiplus\GdipDisposeImage", "uint", bitmap)
   
    ; Uninitialize GDI+.
    DllCall("Gdiplus\GdiplusShutdown", "uint", GdipToken)
    DllCall("FreeLibrary", "uint", GdiplusModule)
   
    return r=0, ErrorLevel:=r
}

; Note: X and Y are one-based.
ImageData_GetPixel(ByRef ImageData, X, Y)
{
    return NumGet(ImageData, 24 + ((Y-1)*NumGet(ImageData,0) + (X-1)) * 4)
}

ImageData_GetSize(ByRef ImageData, ByRef Width, ByRef Height)
{
    Width := NumGet(ImageData, 0)
    Height := NumGet(ImageData, 4)
}

106
Post New Requests Here / Re: Idea: Create shortcut location chooser
« on: January 10, 2009, 12:37 PM »
:) Try this one!

CreateShortcutThere - Rightclick a file and select the contextmenu CreateShortcutThere... to choose where to place the shortcut.



You'll find the downloads and more info at 1 Hour Software by Skrommel.

Skrommel

107
 :) Posted a compiled version of RunAndHide above.

Skrommel

108
Post New Requests Here / Re: show the oddball file
« on: January 10, 2009, 10:25 AM »
 :) I use ViceVersa from http://www.tgrmn.com!

Very powerful, the pay versions may be overkill?
There's a freeware version at http://www.tgrmn.com/free/

Skrommel

109
 :) Just in case you haven't found a working solution...

Skrommel

;MoveSameName.ahk
; Moves files with the same name to a common folder
;Skrommel @ 2009

from=C:\Dir1
to=C:\Dir2

Loop,%from%\*.*,0,0
{
  SplitPath,A_LoopFileLongPath,name,dir,ext,name_no_ext,drive
  MsgBOx,Moving`n %A_LoopFileLongPath%`nto`n %to%\%name_no_ext%\%name%
  FileCreateDir,%to%\%name_no_ext%
  FileMove,%A_LoopFileLongPath%,%to%\%name_no_ext%\%name%
}

110
 :( You need to keep it running.

DropCommand places an OLE enabled window underneath the mouse pointer whenever it hovers over a command window, and then copies and pastes the files dropped to the command line.

 :) It could even be extended to accept dropped text.

Skrommel

111
Post New Requests Here / Re: close folders
« on: January 09, 2009, 09:48 PM »
:) Try RunToClose!

RunToClose - DoubleClicking a file in Explorer closes Explorer afterwards.

You'll find the downloads and more info at 1 Hour Software by Skrommel.

Skrommel

112
:) Try DropCommand!

DropCommand - Enables drag and drop of files to a command window in Vista.

Features:

- Drop multiple files.



You'll find the downloads and more info at 1 Hour Software by Skrommel.

Skrommel

113
N.A.N.Y. 2009 / NANY 2009 Release: DropCommand
« on: December 27, 2008, 06:38 PM »
Application NameDropCommand
Version 1.0
Short DescriptionEnables drag and drop of files to a command window in Vista
Supported OSesVista 32
Web Pagehttp://www.1HourSoftware.com
Download Linkhttps://www.donationcoder.com/Software/Skrommel/DropCommand/DropCommand.exe
Minimum RequirementsVista 32
Version historyFirst stable release
Authorskrommel



Why:
Requested on the forum: https://www.donationcoder.com/forum/index.php?topic=16154.0

Usage:
Open a command window, drag and drop a file on the window to place the file name on the command line.

Installing:
Run the exe-file. It creates a wav-file next to it.

Uninstalling:
Delete the exe-file and the wav-file.

Features:
Drop multiple files.

Planned features:
OLE drag and drop.

 :) Skrommel

 
 
 
 
 
 

114
 :) Try MultiMonMouseMove!

- Press F1 to move the mouse the center of the next screen

Skrommel


;MultiMonMouseMove.ahk
; Press F1 to move the mouse the center of the next screen
;Skrommel

#SingleInstance,Force
#NoEnv

F1::
CoordMode,Mouse,Screen
MouseGetPos,mx,my
SysGet,monitors,MonitorCount
Loop,% monitors
{
  current:=A_Index
  SysGet,monitor,Monitor,%current%
  If (mx>=monitorLeft And mx<=monitorRight And my>=monitorTop and my<=monitorBottom)
    Break
}
current+=1
If (current>monitors)
  current=1
SysGet,monitor,Monitor,%current%
MouseMove,% monitorLeft+(monitorRight-monitorLeft)/2,% monitorTop+(monitorBottom-monitorTop)/2
Return

115
N.A.N.Y. 2009 / Re: NANY 2009 Intro
« on: December 14, 2008, 07:08 PM »
 :) Count me in!

Skrommel

116
Post New Requests Here / Re: Extra mouse buttons combo
« on: December 09, 2008, 03:40 AM »
 :tellme: I think it should.

Skrommel

117
Post New Requests Here / Re: Simple single exe to show/hide to taskbar
« on: December 08, 2008, 09:50 AM »
:) How about this?

RunAndHide - Run to hide or show the taskbar.

You'll find the downloads and more info at 1 Hour Software by Skrommel.

Skrommel

118
Post New Requests Here / Re: Extra mouse buttons combo
« on: December 07, 2008, 04:56 PM »
 :) Try tweaking this script.

Skrommel

;TwoHotkeys.ahk
;Skrommel @ 2008

button1=XButton1
button2=XBUtton2

Hotkey,*%button1%,BUTTON1DOWN
Hotkey,*%button1% Up,BUTTON1UP
Hotkey,*%button2%,BUTTON2DOWN
Hotkey,*%button2% Up,BUTTON2UP
active=0
Return

BUTTON1DOWN:
active+=1
ToolTip,%active%
Return

BUTTON1UP:
If active=1
  Send,1
If active=3
  Send,3
ToolTip,%active%
active=0
Return

BUTTON2DOWN:
active+=2
ToolTip,%active%
Return

BUTTON2UP:
If active=2
  Send,2
If active=3
  Send,4
ToolTip,%active%
active=0
Return

Esc::
ExitApp


119
Post New Requests Here / Re: REQUEST: Monitor Off by button
« on: December 07, 2008, 01:29 PM »
:) Try this one!

PushMonitOff - Press Shift-F1 to turn the monitor off.

Features:
- Change settings using Settings in the Tray menu.

You'll find the downloads and more info at 1 Hour Software by Skrommel.

 :( Sorry, but any button or mouse action turns the monitor back on...

Skrommel

120
 :) Try LineSaver!

Moves an alternating black and white line accross the screen(s).
To use it as a screensaver, compile it to LineSaver.exe and rename it to LineSaver.scr.

Skrommel


;LineSaver.ahk
; Moves an alternating black and white line accross the screen(s)
; Compile to exe and rename to scr to use as screensaver
;Skrommel @ 2008

#SingleInstance,Force
SetWinDelay,0

Loop,%0%
{
  If %A_Index% Contains s ;Show
    mode=Show
  If %A_Index% Contains c ;Config
  {
    MsgBox,0,LineSaver,www.1HourSoftware.com
    ExitApp
  }
  If %A_Index% Contains p,l ;Preview
    mode=Show
  If %A_Index% Contains a ;PWConfig
  {
    MsgBox,0,LineSaver,www.1HourSoftware.com
    ExitApp
  }
}

VarSetCapacity(active,4,0)
DllCall("user32.dll\SystemParametersInfo","uint",0x0072,"uint",0,"uint*",active,"uint",0) ; SPI_GETSCREENSAVERRUNNING = 0x0072 
If (active>0 Or mode="Show")
  SetTimer,EXIT,1000

minx=9999
maxx=0
miny=9999
maxy=0
SysGet,monitors,MonitorCount
Loop,% monitors
{
  SysGet,monitor%A_Index%,Monitor,%A_index%
  If (monitor%A_Index%Left<minx)
    minx:=monitor%A_Index%Left
  If (monitor%A_Index%Right>maxx)
    maxx:=monitor%A_Index%Right
  If (monitor%A_Index%Top<miny)
    miny:=monitor%A_Index%Top
  If (monitor%A_Index%Bottom>maxy)
    maxy:=monitor%A_Index%Bottom
}

Gui,1:Color,FFFFFF
Gui,1:+ToolWindow -Caption +LastFound +AlwaysOnTop
Gui,1:Show,% "X" minx " Y" miny " W1 H" maxy-miny
guiid1:=WinExist()
WinSet,Transparent,255,ahk_id %guiid1%  ; Transparency
WinSet,ExStyle,+0x20,ahk_id %guiid1%    ; Click-through

Gui,2:Color,000000
Gui,2:+ToolWindow -Caption +LastFound +AlwaysOnTop
Gui,2:Show,% "X" minx " Y" miny " W1 H" maxy-miny
guiid2:=WinExist()
WinSet,Transparent,255,ahk_id %guiid2%  ; Transparency
WinSet,ExStyle,+0x20,ahk_id %guiid2%    ; Click-through

Loop
{
  x:=minx
  Loop,% maxx-minx
  {
    WinMove,ahk_id %guiid1%,,%x%,%miny%
    WinSet,AlwaysOnTop,On,ahk_id %guiid1%
    WinMove,ahk_id %guiid2%,,%x%
    WinSet,AlwaysOnTop,On,ahk_id %guiid2%
    Sleep,100
    x+=1
  }
}

EXIT:
  If A_TimeIdlePhysical<1000
    ExitApp
Return

121
Coding Snacks / Re: IDEA: Windows Desktop Refresh Message Eater
« on: December 03, 2008, 03:19 PM »
 :tellme: Try replacing

LOCK:
winid:=WinExist("A")
with
LOCK:
winid:=DllCall("GetDesktopWindow")

Skrommel

122
 :) Here's one showing how many seconds are left when the mouse hovers above the bar.

To make multiple timers I don't think I can use the Progress control... Too much work for tonight...

Skrommel


InputBox, TimerValue, Timer Value, Minutes to countdown:
AlarmTime =
AlarmTime += TimerValue, minutes

alarm=%AlarmTime%  ;Alarm time
height=2       ;Progress bar height >0
message=Time's up!  ;Message to display when timer reached

#NoEnv
#SingleInstance,Force
DetectHiddenWindows,On
CoordMode,Mouse,Screen

range:=AlarmTime
EnvSub,range,%A_now%,seconds

Gui,+ToolWindow +AlwaysOnTop -Caption
Gui,Add,Progress,% "Vprogress X-2 Y-2 W" A_ScreenWidth+4 " H" height+5 " Range0-" range
Gui,Show,% "X0 Y0 W" A_ScreenWidth " H" height
Gui,+LastFound
guiid:=WinExist("A")
WinSet,Transparent,150,ahk_id %guiid%  ; Transparency
WinSet,ExStyle,+0x20,ahk_id %guiid%    ; Click-through

Loop,%range%
{
  Sleep,1000
  left:=range-A_Index
  GuiControl,,progress,% left
  Gosub,LEFT
}
If message<>
  MsgBox,%message%
ExitApp

LEFT:
  MouseGetPos,,my
  If (my<=height)
  {
    showing=1
    ToolTip,% left " seconds left"
  }
  Else
  If showing=1
    ToolTip
Return

123
Coding Snacks / Re: IDEA: Mouse click macro
« on: December 03, 2008, 12:24 PM »
 :tellme: Here's an AutoHotkey script that send a when the left mouse button is clicked, but how is this useful?

Skrommel

#SingleInstance,Force
LButton::Send,a
Esc::ExitApp

124
Coding Snacks / Re: IDEA: Windows Desktop Refresh Message Eater
« on: December 03, 2008, 12:17 PM »
 :) Try Freeze!

Press F1 to freeze/unfreeze the active window (stop it redrawing).

Skrommel


;Freeze.ahk
; Press F1 to freeze/unfreeze the active window (stop it redrawing)
;Skrommel @ 2008

#SingleInstance,Force
OnExit,EXIT
DetectHiddenWindows, on

F1::
If locked<>1
  Gosub,LOCK
Else
  Gosub,UNLOCK
Return


LOCK:
winid:=WinExist("A")
SendMessage,0xB,0,0,,ahk_id %winid%
locked=1
Return

UNLOCK:
SendMessage,0xB,1,0,,ahk_id %winid%
locked=0
DllCall("RedrawWindow",UInt,0,UInt,0,UInt,0,UInt,0x101)
Return

EXIT:
Gosub,UNLOCK
ExitApp

125
 :) Try ArraWin!

Press Ctrl+Shift+1 through 3 to cascade or arrange windows vertically and horizontally

Skrommel

;ArraWin.ahk
; Press Ctrl+Shift+1 through 3 to cascade or arrange windows vertically and horizontally
;Skrommel @ 2008

;Stolen from SKAN at http://www.autohotkey.com/forum/viewtopic.php?p=84807#84807
^+1::DllCall("CascadeWindows",uInt,0,Int,4,Int,0,Int,0,Int,0) ;Cascade windows
^+2::DllCall("TileWindows",uInt,0,Int,0,Int,0,Int,0,Int,0)    ;Tile windows vertically
^+3::DllCall("TileWindows",uInt,0,Int,1,Int,0,Int,0,Int,0)    ;Tile windows horizontally

Pages: prev1 2 3 4 [5] 6 7 8 9 10 ... 38next