steelys Posted June 24, 2005 Share Posted June 24, 2005 expandcollapse popup#include <GUIConstants.au3> ; ------------------------------------------------- ; Window ; ------------------------------------------------- GUICreate ("test", 180, 130) GUIsetstate () ; ------------------------------------------------- ; Label ; ------------------------------------------------- GUICtrlCreateLabel("test", 5, 103) ; ------------------------------------------------- ; IsPressed ; ------------------------------------------------- Func _IsPressed($hexKey) Local $aR, $bO $hexKey = '0x' & $hexKey $aR = DllCall("user32", "int", "GetAsyncKeyState", "int", $hexKey) If Not @error And BitAND($aR[0], 0x8000) = 0x8000 Then $bO = 1 Else $bO = 0 EndIf Return $bO EndFunc;==>_IsPressed ; ------------------------------------------------- ; Hotkey ; ------------------------------------------------- $on = 0 While 1 If(_ispressed("41")) then $on = 1 endif if(_ispressed("42")) then $on = 0 endif Wend ; eh If($on = 1) Then program() endif ; ------------------------------------------------- ; Main script ; ------------------------------------------------- Func program() if(_ispressed("31")) then Send("{NUMPAD1}") elseif(_ispressed("32")) then Send("{NUMPAD2}") elseif(_ispressed("33")) then Send("{NUMPAD3}") elseif(_ispressed("34")) then Send("{NUMPAD4}") elseif(_ispressed("35")) then Send("{NUMPAD}") elseif(_ispressed("3")) then Send("{NUMPAD}") endif endfunc This program mainly On if i press A, Off if i press B. After i on, whenever i press 1, it will send a command to press another 1 but using the numpad. Cant seem to get it to work. Anyone can help? thanks. Link to comment Share on other sites More sharing options...
ezzetabi Posted June 24, 2005 Share Posted June 24, 2005 I do not like the way you code... but cant you see that the 'eh' section is never executed? Try expandcollapse popup#include <GUIConstants.au3> ; ------------------------------------------------- ; Window ; ------------------------------------------------- GUICreate("test", 180, 130) GUISetState() ; ------------------------------------------------- ; Label ; ------------------------------------------------- GUICtrlCreateLabel("test", 5, 103) ; ------------------------------------------------- ; IsPressed ; ------------------------------------------------- Func _IsPressed($hexKey) Local $aR, $bO $hexKey = '0x' & $hexKey $aR = DllCall("user32", "int", "GetAsyncKeyState", "int", $hexKey) If Not @error And BitAND($aR[0], 0x8000) = 0x8000 Then $bO = 1 Else $bO = 0 EndIf Return $bO EndFunc ;==>_IsPressed ; ------------------------------------------------- ; Hotkey ; ------------------------------------------------- $on = 0 While 1 Sleep(1) If (_IsPressed("41")) Then $on = 1 EndIf if (_IsPressed("42")) Then $on = 0 EndIf If ($on = 1) Then program() EndIf WEnd ; ------------------------------------------------- ; Main script ; ------------------------------------------------- Func program() if (_IsPressed("31")) Then Send("{NUMPAD1}") elseif (_IsPressed("32")) Then Send("{NUMPAD2}") elseif (_IsPressed("33")) Then Send("{NUMPAD3}") elseif (_IsPressed("34")) Then Send("{NUMPAD4}") elseif (_IsPressed("35")) Then Send("{NUMPAD}") elseif (_IsPressed("03")) Then Send("{NUMPAD}") EndIf EndFunc ;==>program Link to comment Share on other sites More sharing options...
steelys Posted June 24, 2005 Author Share Posted June 24, 2005 Sorry i'm trying very hard to keep it neat. Anyway thanks alot. It works but.. Whenever i press 1, the program presses like five 1s on the numpad. How can i amke it that whenever i press 1, only one 1 from the numpad would come out ? thanks alot. Link to comment Share on other sites More sharing options...
FuryCell Posted June 26, 2005 Share Posted June 26, 2005 Sorry i'm trying very hard to keep it neat.Anyway thanks alot. It works but..Whenever i press 1, the program presses like five 1s on the numpad. How can i amke it that whenever i press 1, only one 1 from the numpad would come out ?thanks alot.<{POST_SNAPBACK}>Modified your script to use HotKeySet() instead of _IsPressed()This seems to fix your problem.However A and B cannot be set as hotkeys So i had to use F1 and F2 instead. expandcollapse popup#include <GUIConstants.au3> ; ------------------------------------------------- ; Window ; ------------------------------------------------- GUICreate("test", 180, 130) GUISetState() ; ------------------------------------------------- ; Label ; ------------------------------------------------- GUICtrlCreateLabel("test", 5, 103) ; ------------------------------------------------- ; Hotkey ; ------------------------------------------------- $on = 0 HotKeySet("{F1}", "On") HotKeySet("{F2}", "Off") While 1 Sleep(100) WEnd Func Off() For $X = 0 To 9 HotKeySet($X) Next EndFunc ;==>Off Func On() For $X = 0 To 9 HotKeySet($X, "Send" & $X) Next EndFunc ;==>On Func Send0() Send("{NumPad0}") EndFunc ;==>Send0 Func Send1() Send("{NumPad1}") EndFunc ;==>Send1 Func Send2() Send("{NumPad2}") EndFunc ;==>Send2 Func Send3() Send("{NumPad3}") EndFunc ;==>Send3 Func Send4() Send("{NumPad4}") EndFunc ;==>Send4 Func Send5() Send("{NumPad5}") EndFunc ;==>Send5 Func Send6() Send("{NumPad6}") EndFunc ;==>Send6 Func Send7() Send("{NumPad7}") EndFunc ;==>Send7 Func Send8() Send("{NumPad8}") EndFunc ;==>Send8 Func Send9() Send("{NumPad9}") EndFunc ;==>Send9 HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code. Link to comment Share on other sites More sharing options...
therks Posted June 26, 2005 Share Posted June 26, 2005 First of all, if you use the beta, you can totally optimize that code. Second, you CAN use A and B as hotkeys. Try this: expandcollapse popup#include <GUIConstants.au3> ; ------------------------------------------------- ; Window ; ------------------------------------------------- GUICreate("test", 180, 130) GUISetState() ; ------------------------------------------------- ; Label ; ------------------------------------------------- GUICtrlCreateLabel("test", 5, 103) ; ------------------------------------------------- ; Hotkey ; ------------------------------------------------- HotKeySet("a", "On") HotKeySet("b", "Off") While 1 Sleep(100) WEnd Func Off() For $i = 0 To 9 HotKeySet($i) Next EndFunc ;==>Off Func On() For $i = 0 To 9 HotKeySet($i, "SendNumpad") Next EndFunc ;==>On Func SendNumpad() Send("{NumPad" & @HotKeyPressed & "}") EndFunc ;==>SendNumpad My AutoIt Stuff | My Github Link to comment Share on other sites More sharing options...
FuryCell Posted June 26, 2005 Share Posted June 26, 2005 (edited) Second, you CAN use A and B as hotkeys.when was this limitation removed???P.S. Wow!! That is some sleek looking code Saunders. Edited June 26, 2005 by SolidSnake HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code. Link to comment Share on other sites More sharing options...
therks Posted June 27, 2005 Share Posted June 27, 2005 when was this limitation removed???I can't remember when exactly. I think it might have been added around the same time as the @HotKeyPressed macro, which looks like it was originally added April 24th, to beta .13 My AutoIt Stuff | My Github Link to comment Share on other sites More sharing options...
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