Jump to content

_IsPressed - Please help


Recommended Posts

Hi,

I'm trying to make a script that detects when / is pressed, I've searched in the help file to find the hex code for the / but I've had no luck.

In the help file is says:

/ 47 2f Slant (forward slash, divide)

So, this is my code which isn't working. How would I get it do detect detect when the / key is pressed?

#Include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
        If _IsPressed("2f", $dll) Then msgbox(64,"Slash pressed", "Detected!")
WEnd
        
        DllClose($dll)

I've tried using "2f" and "47"

Help would be appreciated :)

Edit: I'm trying to detect the one near shift, not the divide key near the numpad

Edited by Delta01
Link to comment
Share on other sites

  • Moderators

_IsPressed(0x2f, $dll)

or

_IsPressed(47, $dll)

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
Share on other sites

  • Moderators

47 is the letter G not slash :)

So it works fine.

Edited by SmOke_N

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
Share on other sites

47 is the letter G not slash :)

So it works fine.

No, I went into the autoit help file and this is what it said. (First column is: Char, Second: dec and third: hex)

/ 47 2f Description: Slant (forward slash, divide)

And when I try to use that in a script, it won't detect it.

Edit: 6f works, but only for the numpad divide.

Edit: What I'm trying to do is recognize a string, which is /display - The below code is working great, works with the numpad / but not the question mark one.

#Include <Misc.au3>
#Include <Date.au3>
Global $Slash, $D, $i, $S, $P, $L, $A, $Y, $bRunTimer = 2, $Hour, $Mins, $Secs, $booLtype

$dll = DllOpen("user32.dll")


While 1
        If _IsPressed("6f", $dll) Then
            $Slash = "Ok" 
            _Timer("/")
            EndIf
        If _IsPressed("44", $dll) AND $Slash = "Ok" Then
            $D = "Ok"
            $Slash = 1
            _Timer("D")
            EndIf
        If _IsPressed("49", $dll) AND $D = "Ok" Then
            $Slash = 1
            $D = 1
            $i = "Ok"
            _Timer("i")
        EndIf
        If _IsPressed("53", $dll) AND $i = "Ok" Then
            $Slash = 1
            $D = 1
            $i = 1
            $S = "Ok"
            _Timer("p")
        EndIf
        If _IsPressed("50", $dll) AND $S = "Ok" Then
            $Slash = 1
            $D = 1
            $i = 1
            $P = "Ok"
            $S = 1
            _Timer("S")
        EndIf
        If _IsPressed("4c", $dll) AND $P = "Ok" Then
            $Slash = 1
            $D = 1
            $i = 1
            $P = 1
            $L = "Ok"
            _Timer("L")
        EndIf
        If _IsPressed("41", $dll) AND $L = "Ok" Then
            $Slash = 1
            $D = 1
            $i = 1
            $P = 1
            $L = 1
            $A = "Ok"
            _Timer("A")
        EndIf
        If _IsPressed("59", $dll) AND $A = "Ok" Then
            $Slash = 1
            $D = 1
            $i = 1
            $P = 1
            $L = 1
            $A = 1
            $Y = "Ok"
            ToolTip("Success!", 0, 0)
            sleep(2000)
            ToolTip("", 0, 0)
            _Timer("Y")
        EndIf
        If $bRunTimer = 1 Then PollTimer()
WEnd
        
        DllClose($dll)
        
        Func _Timer($booLtype01)
            Global $Timer = TimerInit()
            Global $bRunTimer = 1
            Global $booLtype = $booLtype01
        EndFunc
        
        Func PollTimer()
            Global $iTimeToGo = 8000 - Int(TimerDiff($timer))
             If $iTimeToGo <= 0 Then
            If $booLtype = "/" Then $Slash = "No"
            If $booLtype = "D" Then $D = "No"
            If $booLtype = "i" Then $i = "No"
            If $booLtype = "s" Then $s = "No"
            If $booLtype = "p" Then $p = "No"
            If $booLtype = "l" Then $l = "No"
            If $booLtype = "a" Then $a = "No"
            If $booLtype = "y" Then $y = "No"
            EndIf
        EndFunc
Edited by Delta01
Link to comment
Share on other sites

  • Moderators

No, I went into the autoit help file and this is what it said. (First column is: Char, Second: dec and third: hex)

/ 47 2f Description: Slant (forward slash, divide)

And when I try to use that in a script, it won't detect it.

Edit: 6f works, but only for the numpad divide.

Edit: What I'm trying to do is recognize a string, which is /display - The below code is working great, works with the numpad / but not the question mark one.

What do you man "no". You're wrong.
#include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
    If _IsPressed("BF", $dll) Then
        MsgBox(64, "Slash pressed", "Detected!")
        ExitLoop
    EndIf
    Sleep(100)
WEnd

DllClose($dll)

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
Share on other sites

No, I went into the autoit help file and this is what it said. (First column is: Char, Second: dec and third: hex)

/ 47 2f Description: Slant (forward slash, divide)

And when I try to use that in a script, it won't detect it.

The point you are missing is that keyboard scan codes (used in _IsPressed) are not the same as ASCII codes, which you quoted from the help file. The help file for 3.2.10.0 accidentally omitted the scan code chart from the page on _IsPressed, but if you look at the help files for the 3.2.11.x Betas, you will see the chart there again.

:)

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
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...