Jump to content

_IsPressed('20') dont work well (SPACEBAR)


Recommended Posts

hey guys. here is simple example with keys pressed.

after u click button: press a - working good

                                    press 1 - working good

                                    press F1 - working good

but after u click buton and press SPACEAR it wont work good. what is problem ???

#include <Misc.au3>
#include <MsgBoxConstants.au3>
#include <GUIConstantsEx.au3>

$GUI = GUICreate("set hotkeys", -1,-1)
GUISetState()

$button_hotkey = (GUICtrlCreateButton("", 80, 30, 150, 25))
Local $hDLL = DllOpen("user32.dll")

$start = False

While 1
    $Msg = GUIGetMsg()
            Switch $Msg
        Case $GUI_EVENT_CLOSE
            Exit
                Case $button_hotkey
                    $start = True
                    GUICtrlSetData($button_hotkey, "Press Hot Key")
            EndSwitch

        If $start = True And _IsPressed('20', $hDLL) Then
            $start = False
            $klawisz1 = "SPACEBAR"
            GUICtrlSetData($button_hotkey, $klawisz1)
            $start = False
;~          Beep(500)
        EndIf

        If $start = True And _IsPressed('31', $hDLL) Then
            $klawisz1 = "1"
            GUICtrlSetData($button_hotkey, $klawisz1)
            $start = False
        EndIf

        If $start = True And _IsPressed('41', $hDLL) Then
            $klawisz1 = "a"
            GUICtrlSetData($button_hotkey, $klawisz1)
            $start = False
        EndIf

        If $start = True And _IsPressed('70', $hDLL) Then
            $klawisz1 = "F1"
            GUICtrlSetData($button_hotkey, $klawisz1)
            $start = False
        EndIf
WEnd

 

Link to comment
Share on other sites

  • Moderators

Verssuss,

Pressing the Spacebar actions the default control - this is a Windows default, nothing to do with AutoIt. I suggest creating a dummy control to which you can give focus so that the main button does not get actioned:

#include <Misc.au3>
#include <MsgBoxConstants.au3>
#include <GUIConstantsEx.au3>

$GUI = GUICreate("set hotkeys")
GUISetState()

$button_hotkey = (GUICtrlCreateButton("", 80, 30, 150, 25))

$cDummy = GUICtrlCreateButton("Dummy", 80, 100, 150, 25) ; Here is your dummy control <<<<<<<<<<<<<

Local $hDLL = DllOpen("user32.dll")

$start = False

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $GUI_EVENT_CLOSE
            DllClose($hDLL) ; If you open it then you must close it <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            Exit
        Case $button_hotkey
            $start = True
            GUICtrlSetData($button_hotkey, "Press Hot Key")
            GUICtrlSetState($cDummy, $GUI_FOCUS) ; Give focus to the dummy <<<<<<<<<<<<<<<<<<<<<<<<<
    EndSwitch

    If $start = True And _IsPressed('20', $hDLL) Then
        $start = False
        $klawisz1 = "SPACEBAR"
        GUICtrlSetData($button_hotkey, $klawisz1)
        $start = False
;~          Beep(500)
    EndIf

    If $start = True And _IsPressed('31', $hDLL) Then
        $klawisz1 = "1"
        GUICtrlSetData($button_hotkey, $klawisz1)
        $start = False
    EndIf

    If $start = True And _IsPressed('41', $hDLL) Then
        $klawisz1 = "a"
        GUICtrlSetData($button_hotkey, $klawisz1)
        $start = False
    EndIf

    If $start = True And _IsPressed('70', $hDLL) Then
        $klawisz1 = "F1"
        GUICtrlSetData($button_hotkey, $klawisz1)
        $start = False
    EndIf
WEnd

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...