 |
AutoHotkey Community Let's help each other out
|
| View previous topic :: View next topic |
| Author |
Message |
winflowers
Joined: 21 Feb 2005 Posts: 5
|
Posted: Mon Apr 11, 2005 1:51 pm Post subject: Put multiple scripts into one .AHK file? |
|
|
Is it possible to put several scripts into one file? Each script has its own hotkey.
I tried to put Volume On-Screen-Display (OSD) and Window Shading scripts downloaded from Showcase into one file, but only the first script is executable. There is no response for the second one? So, what could be the problem?
Thanks in advance! |
|
| Back to top |
|
 |
Titan
Joined: 11 Aug 2004 Posts: 5390 Location: /b/
|
Posted: Mon Apr 11, 2005 2:00 pm Post subject: |
|
|
#Include is probabily what you're looking for. _________________
 |
|
| Back to top |
|
 |
toralf
Joined: 31 Jan 2005 Posts: 3841 Location: Bremen, Germany
|
Posted: Mon Apr 11, 2005 3:15 pm Post subject: |
|
|
How did you put them together?
You have to be careful with the autoexec area. _________________ Ciao
toralf  |
|
| Back to top |
|
 |
winflowers
Joined: 21 Feb 2005 Posts: 5
|
Posted: Mon Apr 11, 2005 3:46 pm Post subject: |
|
|
| toralf wrote: | How did you put them together?
You have to be careful with the autoexec area. |
I just copied one script after another, e.g. Volume On-Screen-Display (OSD) and Window Shading scripts. These two scripts are in one .AHK file. So I only need run once, and there is only one AutoHotKey tray icon. When I press Win+z, the Window Shading script runs; When I press Win+UP, the master volume is increased. However, at the moment only the first script in the file works no matter which one.
Is it possible to run AutoHotKey in this way? And what should I do to make it work? |
|
| Back to top |
|
 |
toralf
Joined: 31 Jan 2005 Posts: 3841 Location: Bremen, Germany
|
Posted: Mon Apr 11, 2005 5:13 pm Post subject: |
|
|
You have to make sure that both autoexec are executed. So you could move | Code: | ; Set the height of a rolled up window here. The operating system
; probably won't allow the title bar to be hidden regardless of
; how low this number is:
ws_MinHeight = 25
; This line will unroll any rolled up windows if the script exits
; for any reason:
OnExit, ExitSub
return ; End of auto-execute section
| from window shade to the top of your combined script. But you have to remove the line | Code: | | return ; End of auto-execute section |
Try it, if it works let us know. If not, post your script, please. _________________ Ciao
toralf  |
|
| Back to top |
|
 |
winflowers
Joined: 21 Feb 2005 Posts: 5
|
Posted: Tue Apr 12, 2005 7:20 am Post subject: |
|
|
Thank you very much for your suggestion. As you suggested, I moved the WS's atuo-execute section to the top. But now only the window shade can be executed. Here I post the code. These codes are just copied from the showcase, and they work perfectly separately.
| Code: | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Window Shading (roll up a window to its title bar) -- by Rajat
; http://www.autohotkey.com
; This script reduces a window to its title bar and then back to its
; original size by pressing a single hotkey. Any number of windows
; can be reduced in this fashion (the script remembers each). If the
; script exits for any reason, all "rolled up" windows will be
; automatically restored to their original heights.
; Set the height of a rolled up window here. The operating system
; probably won't allow the title bar to be hidden regardless of
; how low this number is:
ws_MinHeight = 25
; This line will unroll any rolled up windows if the script exits
; for any reason:
OnExit, WS_ExitSub
; Return ; End of WS_Auto-Execute Section
;___________________________________________
;_____VOSD Auto Execute Section__________________
; DON'T CHANGE ANYTHING HERE (unless you know what you're doing).
vol_BarOptionsMaster = 1:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBM% CW%vol_CW%
vol_BarOptionsWave = 2:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBW% CW%vol_CW%
; If the X position has been specified, add it to the options.
; Otherwise, omit it to center the bar horizontally:
if vol_PosX >= 0
{
vol_BarOptionsMaster = %vol_BarOptionsMaster% X%vol_PosX%
vol_BarOptionsWave = %vol_BarOptionsWave% X%vol_PosX%
}
; If the Y position has been specified, add it to the options.
; Otherwise, omit it to have it calculated later:
if vol_PosY >= 0
{
vol_BarOptionsMaster = %vol_BarOptionsMaster% Y%vol_PosY%
vol_PosY_wave = %vol_PosY%
vol_PosY_wave += %vol_Thick%
vol_BarOptionsWave = %vol_BarOptionsWave% Y%vol_PosY_wave%
}
#SingleInstance
SetBatchLines, 10ms
Return
;___________________________________________
; End of VOSD_auto-execute section
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Volume On-Screen-Display (OSD) -- by Rajat
; http://www.autohotkey.com
; This script assigns hotkeys of your choice to raise and lower the
; master and/or wave volume. Both volumes are displayed as different
; color bar graphs.
;_________________________________________________
;_______User Settings_____________________________
; Make customisation only in this area or hotkey area only!!
; The percentage by which to raise or lower the volume each time:
vol_Step = 4
; How long to display the volume level bar graphs:
vol_DisplayTime = 2000
; Master Volume Bar color (see the help file to use more
; precise shades):
vol_CBM = Red
; Wave Volume Bar color
vol_CBW = Blue
; Background color
vol_CW = Silver
; Bar's screen position. Use -1 to center the bar in that dimension:
vol_PosX = -1
vol_PosY = -1
vol_Width = 150 ; width of bar
vol_Thick = 12 ; thickness of bar
; If your keyboard has multimedia buttons for Volume, you can
; try changing the below hotkeys to use them by specifying
; Volume_Up, ^Volume_Up, Volume_Down, and ^Volume_Down:
HotKey, #Up, vol_MasterUp ; Win+UpArrow
HotKey, #Down, vol_MasterDown
HotKey, +#Up, vol_WaveUp ; Shift+Win+UpArrow
HotKey, +#Down, vol_WaveDown
vol_WaveUp:
SoundSet, +%vol_Step%, Wave
Gosub, vol_ShowBars
return
vol_WaveDown:
SoundSet, -%vol_Step%, Wave
Gosub, vol_ShowBars
return
vol_MasterUp:
SoundSet, +%vol_Step%
Gosub, vol_ShowBars
return
vol_MasterDown:
SoundSet, -%vol_Step%
Gosub, vol_ShowBars
return
vol_ShowBars:
; To prevent the "flashing" effect, only create the bar window if it
; doesn't already exist:
IfWinNotExist, vol_Wave
Progress, %vol_BarOptionsWave%, , , vol_Wave
IfWinNotExist, vol_Master
{
; Calculate position here in case screen resolution changes while
; the script is running:
if vol_PosY < 0
{
; Create the Wave bar just above the Master bar:
WinGetPos, , vol_Wave_Posy, , , vol_Wave
vol_Wave_Posy -= %vol_Thick%
Progress, %vol_BarOptionsMaster% Y%vol_Wave_Posy%, , , vol_Master
}
else
Progress, %vol_BarOptionsMaster%, , , vol_Master
}
; Get both volumes in case the user or an external program changed them:
SoundGet, vol_Master, Master
SoundGet, vol_Wave, Wave
Progress, 1:%vol_Master%
Progress, 2:%vol_Wave%
SetTimer, vol_BarOff, %vol_DisplayTime%
return
vol_BarOff:
SetTimer, vol_BarOff, off
Progress, 1:Off
Progress, 2:Off
return
;;;;;;;;;;;;;;;;;;;;;;;Windows Shadow;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#u:: ; Change this line to pick a different hotkey.
; Below this point, no changes should be made unless you want to
; alter the script's basic functionality.
; Uncomment this next line if this subroutine is to be converted
; into a custom menu item rather than a hotkey. The delay allows
; the active window that was deactivated by the displayed menu to
; become active again:
;Sleep, 200
WinGet, ws_ID, ID, A
Loop, Parse, ws_IDList, |
{
IfEqual, A_LoopField, %ws_ID%
{
; Match found, so this window should be restored (unrolled):
StringTrimRight, ws_Height, ws_Window%ws_ID%, 0
WinMove, ahk_id %ws_ID%,,,,, %ws_Height%
StringReplace, ws_IDList, ws_IDList, |%ws_ID%
return
}
}
WinGetPos,,,, ws_Height, A
ws_Window%ws_ID% = %ws_Height%
WinMove, ahk_id %ws_ID%,,,,, %ws_MinHeight%
ws_IDList = %ws_IDList%|%ws_ID%
return
WS_ExitSub:
Loop, Parse, ws_IDList, |
{
if A_LoopField = ; First field in list is normally blank.
continue ; So skip it.
StringTrimRight, ws_Height, ws_Window%A_LoopField%, 0
WinMove, ahk_id %A_LoopField%,,,,, %ws_Height%
}
ExitApp ; Must do this for the OnExit subroutine to actually Exit the script.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#t::WinSet, AlwaysOnTop, Toggle, A
|
|
|
| Back to top |
|
 |
toralf
Joined: 31 Jan 2005 Posts: 3841 Location: Bremen, Germany
|
Posted: Tue Apr 12, 2005 7:49 am Post subject: |
|
|
Your post is not a correct copy of the OSD script. The order has changed.
The OSD script is consiting of a long auto exec area also the comments say something different. I have combined the two scripts, but didn't test. Try it and add the comments I deleted.
| Code: | vol_Step = 4
vol_DisplayTime = 2000
vol_CBM = Red
vol_CBW = Blue
vol_CW = Silver
vol_PosX = -1
vol_PosY = -1
vol_Width = 150 ; width of bar
vol_Thick = 12 ; thickness of bar
HotKey, #Up, vol_MasterUp ; Win+UpArrow
HotKey, #Down, vol_MasterDown
HotKey, +#Up, vol_WaveUp ; Shift+Win+UpArrow
HotKey, +#Down, vol_WaveDown
vol_BarOptionsMaster = 1:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBM% CW%vol_CW%
vol_BarOptionsWave = 2:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBW% CW%vol_CW%
if vol_PosX >= 0
{
vol_BarOptionsMaster = %vol_BarOptionsMaster% X%vol_PosX%
vol_BarOptionsWave = %vol_BarOptionsWave% X%vol_PosX%
}
if vol_PosY >= 0
{
vol_BarOptionsMaster = %vol_BarOptionsMaster% Y%vol_PosY%
vol_PosY_wave = %vol_PosY%
vol_PosY_wave += %vol_Thick%
vol_BarOptionsWave = %vol_BarOptionsWave% Y%vol_PosY_wave%
}
#SingleInstance
SetBatchLines, 10ms
ws_MinHeight = 25
OnExit, ExitSub
return ; End of auto-execute section
;___________________________________________
vol_WaveUp:
SoundSet, +%vol_Step%, Wave
Gosub, vol_ShowBars
return
vol_WaveDown:
SoundSet, -%vol_Step%, Wave
Gosub, vol_ShowBars
return
vol_MasterUp:
SoundSet, +%vol_Step%
Gosub, vol_ShowBars
return
vol_MasterDown:
SoundSet, -%vol_Step%
Gosub, vol_ShowBars
return
vol_ShowBars:
; To prevent the "flashing" effect, only create the bar window if it
; doesn't already exist:
IfWinNotExist, vol_Wave
Progress, %vol_BarOptionsWave%, , , vol_Wave
IfWinNotExist, vol_Master
{
; Calculate position here in case screen resolution changes while
; the script is running:
if vol_PosY < 0
{
; Create the Wave bar just above the Master bar:
WinGetPos, , vol_Wave_Posy, , , vol_Wave
vol_Wave_Posy -= %vol_Thick%
Progress, %vol_BarOptionsMaster% Y%vol_Wave_Posy%, , , vol_Master
}
else
Progress, %vol_BarOptionsMaster%, , , vol_Master
}
; Get both volumes in case the user or an external program changed them:
SoundGet, vol_Master, Master
SoundGet, vol_Wave, Wave
Progress, 1:%vol_Master%
Progress, 2:%vol_Wave%
SetTimer, vol_BarOff, %vol_DisplayTime%
return
vol_BarOff:
SetTimer, vol_BarOff, off
Progress, 1:Off
Progress, 2:Off
return
#z::
WinGet, ws_ID, ID, A
Loop, Parse, ws_IDList, |
{
IfEqual, A_LoopField, %ws_ID%
{
; Match found, so this window should be restored (unrolled):
StringTrimRight, ws_Height, ws_Window%ws_ID%, 0
WinMove, ahk_id %ws_ID%,,,,, %ws_Height%
StringReplace, ws_IDList, ws_IDList, |%ws_ID%
return
}
}
WinGetPos,,,, ws_Height, A
ws_Window%ws_ID% = %ws_Height%
WinMove, ahk_id %ws_ID%,,,,, %ws_MinHeight%
ws_IDList = %ws_IDList%|%ws_ID%
return
ExitSub:
Loop, Parse, ws_IDList, |
{
if A_LoopField = ; First field in list is normally blank.
continue ; So skip it.
StringTrimRight, ws_Height, ws_Window%A_LoopField%, 0
WinMove, ahk_id %A_LoopField%,,,,, %ws_Height%
}
ExitApp
|
_________________ Ciao
toralf  |
|
| Back to top |
|
 |
winflowers
Joined: 21 Feb 2005 Posts: 5
|
Posted: Tue Apr 12, 2005 9:33 am Post subject: |
|
|
| toralf wrote: | Your post is not a correct copy of the OSD script. The order has changed.
The OSD script is consiting of a long auto exec area also the comments say something different. I have combined the two scripts, but didn't test. Try it and add the comments I deleted.
|
Excellent!
Thanks toralf for your code. It runs smoothly now.
I misunderstood the auto-execute section of OSD script, and that's why the order was changed. |
|
| Back to top |
|
 |
jfty.009260
Joined: 18 Mar 2008 Posts: 8
|
Posted: Tue Mar 18, 2008 8:23 am Post subject: |
|
|
How do you apply the #Include command to AHK files that draw data from an INI file to run?  |
|
| Back to top |
|
 |
|
|
You can post new topics in this forum You can reply to topics in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|