Sign in to follow this  
Followers 0
au3scr

wait until key pressed

13 posts in this topic

how i make script that waits until key pressed

something like this

send("some text")

;wait until f2 key pressed

send("other text")

any ideas


Share this post


Link to post
Share on other sites

#2 ·  Posted (edited)

hotkeyset

---

HotKeySet ( "key" [, "function"] )

so you do

Hotkeyset("{F2}", a2)

func a2

msgbox(0, "WOW", "WOW OMG YOU PRESSED F2")

endunf

Edited by peter123

Share this post


Link to post
Share on other sites

EDIT

BUT You can't use that because that reserved by windows

The following hotkeys cannot be set:

Ctrl+Alt+Delete It is reserved by Windows

F12 It is also reserved by Windows, according to its API.

NumPad's Enter Key Instead, use {Enter} which captures both Enter keys on the keyboard.

Win+B,D,E,F,L,M,R,U; and Win+Shift+M These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.

Alt, Ctrl, Shift, Win These are the modifier keys themselves!

Other Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Not exactly good practice to use base function keys, but *shrug* this works just fine.

HotKeySet("{F2}", "_Continue")
Dim $binFlag = False

Run("notepad.exe")
WinWait("Untitled -")
WinActivate("Untitled -")
Send("Press F2 to continue" & @LF)
Do
    Sleep(100)
Until $binFlag = True
Send("You pressed F2.")

Func _Continue()
    $binFlag = Not $binFlag
EndFunc
Edited by Blue_Drache

Lofting the cyberwinds on teknoleather wings, I am...The Blue Drache

Share this post


Link to post
Share on other sites

Cant do that way beacause i have

something like this:

Func read_func ()
$line = _GUICtrlEdit_GetLineCount ($CommandInput) - 1
$Input = _GUICtrlEdit_GetLine ($CommandInput, $line)
$command = StringTrimLeft ($Input, 6) 
$commands= StringInStr ($command, "commands")
send("some text")
If $commands Then
HotKeySet ("{enter}")
;wait until f2 key pressed
send("other text")
HotKeySet ("{enter}")
Send (@CRLF & "shell:")
$line = $line + 30
HotKeySet ("{enter}", "read_func")
;else
;IF ..
;....
;...
;else
;IF ..
;....
;...
;endif
endif

endfunc

Any ideas now? with out hotkey.. func


Share this post


Link to post
Share on other sites

Rethink your shell/terminal.


Lofting the cyberwinds on teknoleather wings, I am...The Blue Drache

Share this post


Link to post
Share on other sites

Isn't this way easier..and i think it works....

#include<misc.au3>
Send("some text")
Do
    Sleep(1)
Until _IsPressed("71");71 for F2
Send("some other text")

Share this post


Link to post
Share on other sites

tnx but how u got 71?

Where i can get list of keys?


Share this post


Link to post
Share on other sites

It is in the _IsPressed() func in help file.

Share this post


Link to post
Share on other sites

I cant find it here .Wrong place?

and script here does nothing

Function Reference

_IsPressed

--------------------------------------------------------------------------------

Check if key has been pressed

#Include <Misc.au3>

_IsPressed($sHexKey[, $vDLL = 'user32.dll'])

Parameters

$sHexKey Key to check for

$vDLL Handle to dll or default to user32.dll

Return Value

True: 1

False: 0

Remarks

If calling this function repeatidly, should open 'user32.dll' and pass in handle.

+Make sure to close at end of script

Related

Example

#include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
    Sleep ( 250 )
    If _IsPressed("23", $dll) Then
        MsgBox(0,"_IsPressed", "End Key Pressed")
        ExitLoop
    EndIf
WEnd
DllClose($dll)

Share this post


Link to post
Share on other sites

Its in the Help File, it looks like you cut off some of it.

Remarks

01 Left mouse button

02 Right mouse button

04 Middle mouse button (three-button mouse)

05 Windows 2000/XP: X1 mouse button

06 Windows 2000/XP: X2 mouse button

08 BACKSPACE key

09 TAB key

0C CLEAR key

0D ENTER key

10 SHIFT key

11 CTRL key

12 ALT key

13 PAUSE key

14 CAPS LOCK key

1B ESC key

20 SPACEBAR

21 PAGE UP key

22 PAGE DOWN key

23 END key

24 HOME key

25 LEFT ARROW key

26 UP ARROW key

27 RIGHT ARROW key

28 DOWN ARROW key

29 SELECT key

2A PRINT key

2B EXECUTE key

2C PRINT SCREEN key

2D INS key

2E DEL key

30 0 key

31 1 key

32 2 key

33 3 key

34 4 key

35 5 key

36 6 key

37 7 key

38 8 key

39 9 key

41 A key

42 B key

43 C key

44 D key

45 E key

46 F key

47 G key

48 H key

49 I key

4A J key

4B K key

4C L key

4D M key

4E N key

4F O key

50 P key

51 Q key

52 R key

53 S key

54 T key

55 U key

56 V key

57 W key

58 X key

59 Y key

5A Z key

5B Left Windows key

5C Right Windows key

60 Numeric keypad 0 key

61 Numeric keypad 1 key

62 Numeric keypad 2 key

63 Numeric keypad 3 key

64 Numeric keypad 4 key

65 Numeric keypad 5 key

66 Numeric keypad 6 key

67 Numeric keypad 7 key

68 Numeric keypad 8 key

69 Numeric keypad 9 key

6A Multiply key

6B Add key

6C Separator key

6D Subtract key

6E Decimal key

6F Divide key

70 F1 key

71 F2 key

72 F3 key

73 F4 key

74 F5 key

75 F6 key

76 F7 key

77 F8 key

78 F9 key

79 F10 key

7A F11 key

7B F12 key

7C-7F F13 key - F16 key

80H-87H F17 key - F24 key

90 NUM LOCK key

91 SCROLL LOCK key

A0 Left SHIFT key

A1 Right SHIFT key

A2 Left CONTROL key

A3 Right CONTROL key

A4 Left MENU key

A5 Right MENU key

Share this post


Link to post
Share on other sites

thanks alot.. is it possible to do same thing with 2 keys?

like f2 for exit with out saveing and f3 for save and exit

so i need 2 keys.. i planned to do something like nano (very simple text editor)


Share this post


Link to post
Share on other sites

#include<misc.au3>
Do
    Sleep(1)
Until _IsPressed("71") or _IsPressed("72")
If _IsPressed("71") Then
Else If _IsPressed("72") Then
EndIf
While _IsPressed("71") or _IsPressed("72")
Sleep(1)
WEnd

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0