Bert Posted March 23, 2006 Posted March 23, 2006 (edited) This script is a example on how to program hotsetkeys so that they will turn on and off depending on if a window is active. It is designed for a beginner to understand how the script works, so please, no comments on the amount of comments in the script. If you see a way to improve the script, but keep the same feel of allowing a beginner to learn, please feel free to comment. Thank you. last update: 3/23/06 expandcollapse popup#cs Written by Volly - 2006 vollyman@gmail.com Script for turning on and off HotSetKeys when windows are active or not. The example below is for controling 3 windows. You can add more windows if needed. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + This script is designed so that a beginner will understand what each + + line does. It is designed to teach, so that each line will have a comment + + explaining what to do. Feel free to remove any comments you like. + + + + + + Out of kindness, please do not post comments on this script if you feel + + the comments are excessive. It is designed to teach, not to confuse. + + Thank you. + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #ce======================================================================================== Opt("WinTitleMatchMode", 2);Any part of the string can be used in a window's name AutoItSetOption("TrayIconDebug", 1);Debug is on. This can be disabled by changing 1 to 0 ;If your script hangs, this will help you on what ;is causing the problem. $window1T = "window 1 title" ;Change "window 1 title" to the title of the first window ;you wish to use $window1Tx = "window 1 text" ;Change "window 1 text" to the text of the first window ;you wish to use $window2T = "window 2 title" ;Change "window 2 title" to the title of the secondt window ;you wish to use $window2Tx = "window 2 text" ;Change "window 2 text" to the text of the second window ;you wish to use $window3T = "window 3 title" ;Change "window 3 title" to the title of the third window ;you wish to use $window3Tx = "window 3 text" ;Change "window 3 text" to the text of the third window ;you wish to use ;if you want to add more windows to control, you can add them here using the naming ;convention I laid out. While 1 Select Case WinActive($window1T, $window1Tx) _win1_func() ContinueLoop Case WinActive($window2T, $window2Tx) _win2_func() ContinueLoop Case WinActive($window3T, $window3Tx) _win3_func() ContinueLoop EndSelect WEnd Func _win1_func() HotKeySet("{F1}", "_F1A_Func");turns key on for MESSAGE 1A HotKeySet("{F5}", "_F5A_Func");turns key on for MESSAGE 2 HotKeySet("{PRINTSCREEN}", "_key2A_Func");turns key on for MESSAGE 3 Do Sleep(10) Until Not WinActive($window1T, $window1Tx) _key_clean_1() EndFunc ;==>_win1_func Func _win2_func() HotKeySet("{F1}", "_F1B_Func");turns key on for MESSAGE 1B HotKeySet("{F5}", "_F5B_Func");turns key on for MESSAGE 2B HotKeySet("{PRINTSCREEN}", "_key2B_Func");turns key on for MESSAGE 3B Do Sleep(10) Until Not WinActive($window2T, $window2Tx) _key_clean_1();turns off hotsetkeys EndFunc ;==>_win2_func Func _win3_func() HotKeySet("{F1}", "_F1C_Func");turns key on for MESSAGE 1C HotKeySet("{F5}", "_F5C_Func");turns key on for MESSAGE 2C HotKeySet("{PRINTSCREEN}", "_key2C_Func");turns key on for MESSAGE 3C Do Sleep(10) Until Not WinActive($window3T, $window3Tx) _key_clean_1() EndFunc ;==>_win3_func Func _key_clean_1();Releases hotsetkeys HotKeySet("{F1}") HotKeySet("{F5}") HotKeySet("{PRINTSCREEN}") EndFunc ;==>_key_clean_1 ;the following functions are what happens when a key is pressed Func _F1A_Func() MsgBox(0, "", "F1 pressed for Window 1") EndFunc;==>_F1A_Func Func _F1B_Func() MsgBox(0, "", "F1 pressed for Window 2") EndFunc;==>_F1B_Func Func _F1C_Func() MsgBox(0, "", "F1 pressed for Window 3") EndFunc;==>_F1C_Func Func _F5A_Func() MsgBox(0, "", "F5 pressed for Window 1") EndFunc;==>_F5A_Func Func _F5B_Func() MsgBox(0, "", "F5 pressed for Window 2") EndFunc;==>_F5B_Func Func _F5C_Func() MsgBox(0, "", "F5 pressed for Window 3") EndFunc;==>_F5C_Func Func _key2A_Func() MsgBox(0, "", "Print Screen key pressed for Window 1") EndFunc;==>_key2A_Func Func _key2B_Func() MsgBox(0, "", "Print Screen key pressed for Window 2") EndFunc;==>_key2B_Func Func _key2C_Func() MsgBox(0, "", "Print Screen key pressed for Window 3") EndFunc;==>_key2C_Func Edited March 23, 2006 by vollyman The Vollatran project My blog: http://www.vollysinterestingshit.com/
slightly_abnormal Posted March 23, 2006 Posted March 23, 2006 I have a question.. I tried your script and got: ERROR: syntax error $window1Tx = "window 1 text", ect.. $window1T = "window 1 title", ;Change "window 1 title" to the title of the first window ;you wish to use $window1Tx = "window 1 text", ;Change "window 1 text" to the text of the first window ;you wish to use $window2T = "window 2 title", ;Change "window 2 title" to the title of the secondt window ;you wish to use $window2Tx = "window 2 text", ;Change "window 2 text" to the text of the second window ;you wish to use $window3T = "window 3 title", ;Change "window 3 title" to the title of the third window ;you wish to use $window3Tx = "window 3 text", ;Change "window 3 text" to the text of the third window ;you wish to use ;if you want to add more windows to control, you can add them here using the naming ;convention I laid out. I'm a little lost on where the windows are.. I tried changing them to notepad, mspaint and wordpad, and still got the error, do I manually add them?
Bert Posted March 23, 2006 Author Posted March 23, 2006 (edited) sorry about that. I was editing it, and didn't test it. I fixed it so it should work now. I just tested it by changing the following code, and opening notepad with the word "test" in the edit field $window1T = "Untitled - Notepad" ;Change "window 1 title" to the title of the first window ;you wish to use $window1Tx = "test" ;Change "window 1 text" to the text of the first window ;you wish to use $window2T = "window 2 title" ;Change "window 2 title" to the title of the secondt window ;you wish to use $window2Tx = "window 2 text" ;Change "window 2 text" to the text of the second window ;you wish to use $window3T = "window 3 title" ;Change "window 3 title" to the title of the third window ;you wish to use $window3Tx = "window 3 text" ;Change "window 3 text" to the text of the third window ;you wish to use ;if you want to add more windows to control, you can add them here using the naming ;convention I laid out. While 1 Select Case WinActive($window1T, $window1Tx) _win1_func() ContinueLoop ; Case WinActive($window2T, $window2Tx) ; _win2_func() ; ContinueLoop ; Case WinActive($window3T, $window3Tx) ; _win3_func() ; ContinueLoop EndSelect WEnd Edited March 23, 2006 by vollyman The Vollatran project My blog: http://www.vollysinterestingshit.com/
Bert Posted March 24, 2006 Author Posted March 24, 2006 Welcome. Glad this can help someone out The Vollatran project My blog: http://www.vollysinterestingshit.com/
gamerman2360 Posted June 7, 2006 Posted June 7, 2006 That kind of eats at your CPU. All that window checking and hotkey setting? Why not use what I posted back in december?HotKeySet("{F2}", "HotKeyFunc") HotKeySet("{ESC}", "HotKeyFunc") While 1 Sleep(60000) ; Script part WEnd Func HotKeyFunc() If WinActive("") Then; Set the window Switch @HotKeyPressed Case "{F2}" ;;; Case "{ESC}" Exit EndSwitch Else HotKeySet(@HotKeyPressed) Send(@HotKeyPressed) HotKeySet(@HotKeyPressed, "HotKeyFunc") EndIf EndFunc
JSThePatriot Posted June 26, 2006 Posted June 26, 2006 @gamerman2360 Your function is exactly what I needed. It is quite useful. I had remembered seeing it, and found this post with it. I just wanted to let you know I appreciate it! JS AutoIt Links File-String Hash Plugin Updated! 04-02-2008 Plugins have been discontinued. I just found out. ComputerGetInfo UDF's Updated! 11-23-2006 External Links Vortex Revolutions Engineer / Inventor (Web, Desktop, and Mobile Applications, Hardware Gizmos, Consulting, and more)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now