mike0264 Posted January 1, 2016 Share Posted January 1, 2016 I am making a program and i dont understand how to have this workHotKeySet("{{Numpad2}{Numpad1}}","_Start")*How do you have numpad 2 and numpad 1 perform a separate action so when both are pressed at the same time it runs a script.* Link to comment Share on other sites More sharing options...
reb Posted January 1, 2016 Share Posted January 1, 2016 This should do it.HotKeySet("{Numpad2}{Numpad1}","_Start") while 11 Sleep(100) WEnd Func _Start () MsgBox(0,"","Got it") EndFuncHappy new year. MEASURE TWICE - CUT ONCE Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 1, 2016 Moderators Share Posted January 1, 2016 reb,That code fires on simply pressing {Numpad2} - the function only looks at the first key in the list.mike0264,Welcome to the AutoIt forums.You need to fire the HotKey on one of the keys and then check for the other inside the function - like this:#include <Misc.au3> #include <MsgBoxConstants.au3> Local $hDLL = DllOpen("user32.dll") HotKeySet("{Numpad1}","_Start") ; Fire HotKey on Numpad1 key HotKeySet("{ESC}", "_Exit") While 1 Sleep(10) WEnd Func _Start () ; Look for Numpad2 key If _IsPressed("62", $hDLL) Then ; Only action if BOTH pressed MsgBox($MB_SYSTEMMODAL, "", "Got it") EndIf EndFunc Func _Exit() DllClose($hDLL) Exit EndFuncNow the MsgBox only appears if both keys are pressed.M23 Skysnake 1 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
reb Posted January 1, 2016 Share Posted January 1, 2016 @ Melba23 Thanks for the correction. I was fooled by numpad2 being first. pressing 1 did not work and then I only pressed 1 & 2 together, never 2 alone. I Learned somethings new Today. 1. Test all possibilities & 2. Your method of handling it.Happy New YearREB MEASURE TWICE - CUT ONCE Link to comment Share on other sites More sharing options...
mike0264 Posted January 2, 2016 Author Share Posted January 2, 2016 THANK You @reb or @polymath, sorry im a little new.Happy New Year to you as well. @Melba23 i dont quiet understand whatIsPressed("62", $hDLL) Then ; Only action if BOTH pressed MsgBox($MB_SYSTEMMODAL, "", "Got it") All Id like is to have this script #include <Misc.au3> #include <MsgBoxConstants.au3> Local $hDLL = DllOpen("user32.dll") HotKeySet("{Numpad1}","_Start") ; Fire HotKey on Numpad1 key HotKeySet("{ESC}", "_Exit") While 1 Sleep(10) WEnd Func _Start () ; Look for Numpad2 key If _IsPressed("62", $hDLL) Then ; Only action if BOTH pressed MsgBox($MB_SYSTEMMODAL, "", "Got it") EndIf EndFunc Func _Exit() DllClose($hDLL) Exit EndFuncFit into This Script HotKeySet("{numpad7}{Numpad3}","_Start")While 1 Sleep(10)WEndFunc _Start()MouseClick("left", 531, 693, 1, 20)MouseClick("left", 664, 483, 1, 70)MouseClick("left", 445, 548, 1, 20)MouseClick("left", 243, 381, 1, 65)EndFunc Link to comment Share on other sites More sharing options...
InunoTaishou Posted January 2, 2016 Share Posted January 2, 2016 Let's put it together!You want the MouseClicks to execute only when Numpad7 and Numpad3 are both been pressed correct?We know that _IsPressed("62", $hDLL) (You could get the key codes from the helpf ile) checks to see if Numpad2 is currently pressed and that the first key in HotKeySet is the initial HotKey that will execute the function. You want to make it so that when the user presses the Key in HotKeySet AND your second key is also pressed to execute the MouseClicks.So what do you do? There's a few optionsInside the _Start() Function: Check to see if the key is pressed and if it is, execute the MouseClicksInside the _Start() Function: Check to see if the key is NOT pressed and if it is NOT pressed then ReturnDon't use HotKeySet and check for BOTH keys in your While 1 loop. If they are both pressed then call _Start() Link to comment Share on other sites More sharing options...
Danp2 Posted January 3, 2016 Share Posted January 3, 2016 What program are you trying to automate? Generally, there are better options than using MouseClick. Latest Webdriver UDF Release Webdriver Wiki FAQs Link to comment Share on other sites More sharing options...
Skysnake Posted January 4, 2016 Share Posted January 4, 2016 @Melba23 --- add your post #3 to the Help File? Or add to FAQ? I think thats valid? How to execute on multiple key press? kcvinu 1 Skysnake Why is the snake in the sky? Link to comment Share on other sites More sharing options...
jchd Posted January 4, 2016 Share Posted January 4, 2016 As a sidenote, maybe point out that successfully detecting multiple non-special keys combinations requires a keyboard handling n-key rollover correctly. Some people may have to google that for clarification. This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) 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