Deseo crear un programa que me permita teclear una clave dura en un campo de texto del navegador, ya que contiene símbolos que son difíciles de teclear. Antes el campo los aceptaba, pero ahora el desarrollador deshabilito la opción 'pegar texto', por lo que ahora toca teclear la clave, lo cual es bastante difícil y me toma varios intentos, a veces me bloquean y me toca resetear la clave.
Le pedí ayuda a Chatgpt para que escribiera un programa que simule la pulsación de las teclas del teclado y me escribió este programa. Al ejecutarlo el compilador dice que hay un error en la line 27, que no se como solucionar. Adjunto el programa y el mensaje de error.
El error es este:
Le pedí ayuda a Chatgpt para que escribiera un programa que simule la pulsación de las teclas del teclado y me escribió este programa. Al ejecutarlo el compilador dice que hay un error en la line 27, que no se como solucionar. Adjunto el programa y el mensaje de error.
B4X:
#Region Shared Files
#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
#End Region
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
Sub Process_Globals
'Declarar aquí las variables globales
Private fx As JFX
Private MainForm As Form
Private TextField1 As TextField
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.Title = "Ejemplo de simulación de pulsaciones de teclado"
MainForm.RootPane.LoadLayout("MainPage")
MainForm.Show
'Crea una instancia de la clase Robot
Dim robot As Robot
robot.Initialize
'Detecta cuando se presiona F5 y espera 2 segundos antes de simular las pulsaciones de teclado
MainForm.RootPane.SetOnKeyPressed(Sub(event As KeyEvent)
If event.KeyCode = KeyCodeToKeyEvent("F5") Then
Sleep(2000)
robot.keyPress(KeyCodeToKeyEvent("H"))
robot.keyPress(KeyCodeToKeyEvent("o"))
robot.keyPress(KeyCodeToKeyEvent("l"))
robot.keyPress(KeyCodeToKeyEvent("a"))
robot.keyPress(KeyCodeToKeyEvent(","))
robot.keyPress(KeyCodeToKeyEvent(" "))
'libera las teclas presionadas
robot.keyRelease(KeyCodeToKeyEvent(" "))
robot.keyRelease(KeyCodeToKeyEvent(","))
robot.keyRelease(KeyCodeToKeyEvent("a"))
robot.keyRelease(KeyCodeToKeyEvent("l"))
robot.keyRelease(KeyCodeToKeyEvent("o"))
robot.keyRelease(KeyCodeToKeyEvent("H"))
End If
End Sub)
End Sub
'Convierte un código de tecla en un evento de teclado
Private Sub KeyCodeToKeyEvent(KeyCode As String) As Int
Dim event As KeyEvent
event.Initialize(KeyCode, False, False, False, 0)
Return event.KeyCode
End Sub
Public Sub Initialize
' B4XPages.GetManager.LogEvents = True
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("MainPage")
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Private Sub Button1_Click
xui.MsgboxAsync("Hello world!", "B4X")
End Sub
El error es este:
B4J Versión: 9.80
Parseando código. Error
Error al analizar el programa.
Descripción del error: La clave proporcionada no se encontró en el diccionario.
Ha ocurrido un error en la línea: 27 (B4XMainPage)
MainForm.RootPane.SetOnKeyPressed(Sub(event As KeyEvent)