Jump to content

Recommended Posts

There is no way to currently use backspace, delete, enter, Esc, F-Keys, and etc. operation keys that do not have associated characters.

I could show symbols from a different font, or something else to represent these keys in future updates.

Or I could just add a button below the OSK - or alot of different things...

I'll consider something for the next update.

(Note: as reference to Far Cry IE, there's no representation on the input there either - eg: backspace was triggered via a controller button)

Edited by crashdemons

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

so i changed the buttons alittle, only one rotate button, but it switches back and forth from left to right, and added buttons for enter, tab and backspace

I had to make the buttons smaller under the iris keyboard still needs some tweeking

Gnatwork Networks

Link to comment
Share on other sites

so i changed the buttons alittle, only one rotate button, but it switches back and forth from left to right, and added buttons for enter, tab and backspace

I had to make the buttons smaller under the iris keyboard still needs some tweeking

I have updated to version 7 with the prescribed changes. (Added BackSpace, Tab, Enter Buttons)

Personally, I like having two rotate buttons - so I just dropped the new buttons on a line below them.

Please check the new script to make sure I didn't miss anything.

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

Hello again,

in these day i'm working again on my OSK.

Try to apply crashdemons code that allows to create a GUI capable to send text on last focus windows (perfect for a keyboard on screen)

with post example, i can create a GUI always on top but without possibility to take focus on it.

Post script example, with goal i want to reach:

#include <GUIConstants.au3>
#include <Misc.au3>

dim $dll = DllOpen("user32.dll")
dim $Button1, $Button2, $Button3, $Button4, $ButtonX, $Button5, $Button6, $Button7, $Button8
global $pos = MouseGetPos()

_load_GUI()

While 1
        

    if _IsPressed("04", $dll) Then;middle mouse button load GUI
        $pos = MouseGetPos()
        GUISetState(@SW_hide)
        _load_GUI()
        GUISetState(@SW_SHOW)
    EndIf



    $msg = GUIGetMsg()
    Select

        Case $msg = $Button1
            tooltip("1",0,0)
            _reload_GUI()
        Case $msg = $Button2
            tooltip("2",0,0)
            _reload_GUI()
        Case $msg = $Button3
            tooltip("3",0,0)
            _reload_GUI()
        Case $msg = $Button4
            tooltip("4",0,0)
            _reload_GUI()

        Case $msg = $ButtonX
            tooltip("X",0,0)

        Case $msg = $Button5
            tooltip("5",0,0)
            _reload_GUI()
        Case $msg = $Button6
            tooltip("6",0,0)
            _reload_GUI()
        Case $msg = $Button7
            tooltip("7",0,0)
            _reload_GUI()
        Case $msg = $Button8
            tooltip("8",0,0)
            _reload_GUI()
            
    EndSelect


    Sleep(10)
WEnd
DllClose($dll)


Func _reload_GUI()
    $pos = MouseGetPos()
    GUISetState(@SW_hide)
    _load_GUI()
    GUISetState(@SW_SHOW)
EndFunc


Func _load_GUI()

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Mousse", 100, 100, $pos[0] - 50, $pos[1] - 66)
    $Button1 = GUICtrlCreateButton("abc", 0, 0, 33, 33, 0)
    $Button2 = GUICtrlCreateButton("def", 33, 0, 33, 33, 0)
    $Button3 = GUICtrlCreateButton("ghi", 66, 0, 33, 33, 0)
    $Button4 = GUICtrlCreateButton("jkl", 0, 33, 33, 33, 0)
    $ButtonX = GUICtrlCreateButton("OK", 33, 33, 33, 33, 0)
    $Button5 = GUICtrlCreateButton("mno", 66, 33, 33, 33, 0)
    $Button6 = GUICtrlCreateButton("pqrs", 0, 66, 33, 33, 0)
    $Button7 = GUICtrlCreateButton("tuv", 33, 66, 33, 33, 0)
    $Button8 = GUICtrlCreateButton("wxyz", 66, 66, 33, 33, 0)
;~  GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
EndFunc

and then same script but with crashdemons code :

#include <GUIConstants.au3>
#include <Misc.au3>

#include <WindowsConstants.au3>
$_NOACTIVATE=0x08000000
Opt('GUIOnEventMode',1)
Opt('wintitlematchmode', 4)
GUIRegisterMsg($WM_ACTIVATE,'WM_EVENTS')

dim $dll = DllOpen("user32.dll")
dim $Button1, $Button2, $Button3, $Button4, $ButtonX, $Button5, $Button6, $Button7, $Button8
global $Form1
global $pos = MouseGetPos()

_load_GUI()

While 1
        
    if _IsPressed("04", $dll) Then
        GUISetState(@SW_SHOW)
    EndIf

    $msg = GUIGetMsg()
    Select
        Case $msg = $Button1
            tooltip("1",0,0)
            _reload_GUI()
        Case $msg = $Button2
            tooltip("2",0,0)
            _reload_GUI()
        Case $msg = $Button3
            tooltip("3",0,0)
            _reload_GUI()
        Case $msg = $Button4
            tooltip("4",0,0)
            _reload_GUI()

        Case $msg = $ButtonX
            tooltip("X",0,0)

        Case $msg = $Button5
            tooltip("5",0,0)
            _reload_GUI()
        Case $msg = $Button6
            tooltip("6",0,0)
            _reload_GUI()
        Case $msg = $Button7
            tooltip("7",0,0)
            _reload_GUI()
        Case $msg = $Button8
            tooltip("8",0,0)
            _reload_GUI()
            
    EndSelect

    
    Sleep(10)
WEnd
DllClose($dll)



Func _load_GUI()

    #Region ### START Koda GUI section ### Form=
;~  $Form1 = GUICreate("Mousse", 100, 100, $pos[0] - 50, $pos[1] - 66, -1,$_NOACTIVATE)
    $Form1 = GUICreate("Mousse", 100, 100, $pos[0] - 50, $pos[1] - 66, -1)
    $Button1 = GUICtrlCreateButton("abc", 0, 0, 33, 33, 0)
    $Button2 = GUICtrlCreateButton("def", 33, 0, 33, 33, 0)
    $Button3 = GUICtrlCreateButton("ghi", 66, 0, 33, 33, 0)
    $Button4 = GUICtrlCreateButton("jkl", 0, 33, 33, 33, 0)
    $ButtonX = GUICtrlCreateButton("OK", 33, 33, 33, 33, 0)
    $Button5 = GUICtrlCreateButton("mno", 66, 33, 33, 33, 0)
    $Button6 = GUICtrlCreateButton("pqrs", 0, 66, 33, 33, 0)
    $Button7 = GUICtrlCreateButton("tuv", 33, 66, 33, 33, 0)
    $Button8 = GUICtrlCreateButton("wxyz", 66, 66, 33, 33, 0)
;~  GUISetState(@SW_SHOW)
    WinSetOnTop('Mousse', "", 1)
    WinActivate('classname=Progman')
    #EndRegion ### END Koda GUI section ###
    
EndFunc


Func _reload_GUI()
    $pos = MouseGetPos()
    GUISetState(@SW_hide)
    _load_GUI()
    GUISetState(@SW_SHOW)
EndFunc


Func WM_EVENTS($hWndGUI, $MsgID, $WParam, $LParam)
    Switch $MsgID
        Case $WM_ACTIVATE
            GUISetStyle(-1,0x08000000,$Form1); this may just be paranoia
            WinActivate('classname=Progman')
    EndSwitch
EndFunc


Func Close()
    Exit
EndFunc

obviously doesn't work, because i can't click on buttons, because code can't allow to take focus on my GUI.

So, i search to add 'On Screen Keyboard' (send) to my GUI (first script) but can't understand how ?

Anyone can help me ?

thank you,

m.

Link to comment
Share on other sites

Hello again,

in these day i'm working again on my OSK.

Try to apply crashdemons code that allows to create a GUI capable to send text on last focus windows (perfect for a keyboard on screen)

with post example, i can create a GUI always on top but without possibility to take focus on it.

Post script example, with goal i want to reach:

<snip>

and then same script but with crashdemons code :

<snip>

obviously doesn't work, because i can't click on buttons, because code can't allow to take focus on my GUI.

So, i search to add 'On Screen Keyboard' (send) to my GUI (first script) but can't understand how ?

Anyone can help me ?

thank you,

m.

I didn't know exactly what you wanted to send when, but I'll leave that up to you...

I tried to make the best of it, enjoy.

#include <GUIConstants.au3>
#include <Misc.au3>

#include <WindowsConstants.au3>
$_NOACTIVATE=0x08000000
;Opt('GUIOnEventMode',1); EDIT: You cannot use GUIGetMsg with OnEventMode
Opt('wintitlematchmode', 4)
GUIRegisterMsg($WM_ACTIVATE,'WM_EVENTS')

dim $dll = DllOpen("user32.dll")
dim $Button1, $Button2, $Button3, $Button4, $ButtonX, $Button5, $Button6, $Button7, $Button8
global $Form1
Global $open=False

_load_GUI()


While 1
    if _IsPressed("04", $dll) Then
        Global $Press04Timer
        If TimerDiff($Press04Timer)>500 Then; so that you have time to let up the button!
            $open=Not $open
            Switch $open
                Case True
                    Local $wasopen=WinGetHandle('[ACTIVE]')
                    WinMove($Form1,'',MouseGetPos(0)-50,MouseGetPos(1)-66)
                    GUISetState(@SW_SHOW,$Form1);EDIT:  - this is a problem because showing the GUI in this manner activates it.
                    WinActivate($wasopen);EDIT:  okay, so here we have activated the window that was active right before we show the GUI - OR you can use a different method to show the GUI that doesn't activate it!
                Case False
                    GUISetState(@SW_HIDE,$Form1); EDIT: middle click again to hide the GUI (I was bored)
            EndSwitch
            $Press04Timer=TimerInit()
        EndIf
    EndIf
    Local $send='';EDIT:  I didn't know what you wanted to do, so I assumed you wanted to SEND something... you can always modify the Send value however you like.
    Switch GUIGetMsg(); EDIT: it's simpler to use a Switch instead of Select ($x=$y) repeated
        Case $Button1
            $send='1'
        Case $Button2
            $send='2'
        Case $Button3
            $send='3'
        Case $Button4
            $send='4'
        Case $ButtonX
            $send='X'
        Case $Button5
            $send='5'
        Case $Button6
            $send='6'
        Case $Button7
            $send='7')
        Case $Button8
            $send='8'
        Case -3
            Exit
    EndSwitch
    If StringLen($send)>0 Then Send($send)
    
    Sleep(10)
WEnd
DllClose($dll)




Func _load_GUI()
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Mousse", 100, 100, 0, 0, -1,$_NOACTIVATE); EDIT: If you don't want the window to activate, you DEFINATELY need the NoActivate style! :D
    $Button1 = GUICtrlCreateButton("abc", 0, 0, 33, 33, 0)
    $Button2 = GUICtrlCreateButton("def", 33, 0, 33, 33, 0)
    $Button3 = GUICtrlCreateButton("ghi", 66, 0, 33, 33, 0)
    $Button4 = GUICtrlCreateButton("jkl", 0, 33, 33, 33, 0)
    $ButtonX = GUICtrlCreateButton("OK", 33, 33, 33, 33, 0)
    $Button5 = GUICtrlCreateButton("mno", 66, 33, 33, 33, 0)
    $Button6 = GUICtrlCreateButton("pqrs", 0, 66, 33, 33, 0)
    $Button7 = GUICtrlCreateButton("tuv", 33, 66, 33, 33, 0)
    $Button8 = GUICtrlCreateButton("wxyz", 66, 66, 33, 33, 0)
    WinSetOnTop('Mousse', "", 1)
    #EndRegion ### END Koda GUI section ###
    
EndFunc


Func WM_EVENTS($hWndGUI, $MsgID, $WParam, $LParam)
    Switch $MsgID
        Case $WM_ACTIVATE
            GUISetStyle(-1,0x08000000,$Form1); this may just be paranoia
         ;WinActivate('classname=Progman'); interferes when the GUI is Shown if we want to manually activate a different window.
    EndSwitch
EndFunc
Edited by crashdemons

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

Perfect crashdemons, understand my errors.

I need for an idea explained here. Write using only mouse.

Sort of T9 for computer, write with other device other than keyboard.

My idea is dictionary based, and word is obtained with given number sequence. Post image to explain GUI.

(image contains some errors but post only to explain concept)

Posted Image

thank you for help,

m.

Link to comment
Share on other sites

  • 1 month later...

Update v8 and v9: (v8 was never uploaded)

+ Sounds now can play more rapidly

+ Sounds are now working on AutoIt v3.3.0.0

+ _IrisKeyboard_* Function comments/documentation now up-to-date with version 9

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

  • 1 year later...

Compatibility Update (tested with 3.3.6.1)

_SoundOpen useage was changed, versus the v9 code.

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

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

×
×
  • Create New...