GUI Edit Feld gibt kein "+" aus

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

laserhans
Posts: 4
Joined: 15 Feb 2018, 03:08

GUI Edit Feld gibt kein "+" aus

06 Feb 2019, 10:25

Hallo,

wird in einem Edit Feld ein "+" mit einer Zahl eingegeben z.b. +10, ist die Ausgabe !0. Bei -10 ist die Ausgabe -10 (also korrekt). Wie bekomme ich es hin, dass ein + ausgegeben wird?


Folgende GUI:

Code: Select all

Gui, Add, Tab,x10 y10 h150 w300, Test
	
	Gui, Add, Text,, Betrag:
	Gui, Add, Edit, vvBETRAG r1, %vBETRAG%
	Gui, Add, Button, default xm, OK
	Gui, Show
	return

GuiClose:
ExitApp
GuiEscape:	
ExitApp
	
ButtonOK:
Gui, Submit 

{
if vBETRAG<>
	{
		sleep, 250
		Send, Betrag: %vBETRAG%{Enter}
	}
}	

ExitApp
garry
Posts: 3764
Joined: 22 Dec 2013, 12:50

Re: GUI Edit Feld gibt kein "+" aus

06 Feb 2019, 11:13

Es gibt vershiedene Möglichkeiten mit send / controlsend ...
Hier ein Beispiel, send zu notepad

Code: Select all

pr=notepad.exe
sc=ahk_exe notepad.exe

c1=+10
Gui, Add, Tab,x10 y10 h150 w300, Test
Gui, Add, Text,, Betrag:
Gui, Add, Edit, vBETRAG w100 r1 right,%c1%
Gui, Add, Button, default xm gA1, OK
Gui, Show
return
GuiClose:
ExitApp
A1:
Gui, Submit ,nohide
if BETRAG<>
{
IfWinNotExist,%sc%
  Run, %pr%,,,
IfWinNotActive ,%sc%,,WinActivate,%sc%
  WinWaitActive,%sc%
clipboard:=Betrag . "`n" 
send,^v     
clipboard=
betrag=
return
}
return
Margarethe

Re: GUI Edit Feld gibt kein "+" aus

06 Feb 2019, 20:38

Das + wird beim Send-Befehl als Shift interpretiert.
Wenn du ein + als Zeichen senden willst, kannst du das in geschweifte Klammern setzen.
Also kannst du z.B. deine Send-Zeile wie folgt ändern:

Code: Select all

Send, % "Betrag: " RegExReplace(vBETRAG, "\+", "{+}") "{Enter}"
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: GUI Edit Feld gibt kein "+" aus

07 Feb 2019, 02:54

Moin,

Margarethe hat Recht.

Alternative Lösung:

Code: Select all

vBetrag := "+10"
SendRaw, Betrag: %vBetrag%
Send, {Enter}
; oder
Send, {Raw}Betrag: %vBetrag%
Send, {Enter}
Guest

Re: GUI Edit Feld gibt kein "+" aus

07 Feb 2019, 06:53

Vielen Dank für die Antworten.

Margarethe: Habe deine Sende Zeile mit Copy and Paste eingefügt. Bekomme die folgende Fehlermeldung: Error: Call to nonexistent function
just me: Die Beträge unterscheiden sich. Daher kann ich nicht mit ein festen Variablen arbeiten
Margarethe

Re: GUI Edit Feld gibt kein "+" aus

08 Feb 2019, 03:23

Margarethe: Habe deine Sende Zeile mit Copy and Paste eingefügt. Bekomme die folgende Fehlermeldung: Error: Call to nonexistent function
Die Funktion ist seit 2006 in AHK enthalten und die Codezeile funktioniert bei mir auch in der Version 1.1.30.01 einwandfrei.
In der Fehlermeldung wird mit einem Pfeil auf die Codezeile hingewiesen, die den Fehler bei dir verursacht.
just me: Die Beträge unterscheiden sich. Daher kann ich nicht mit ein festen Variablen arbeiten
just me hat den Wert nur zu Testzwecken fest definiert, damit das Beispiel lauffähig ist. Aus deinem Code musst du diese Zeilen natürlich rauslassen.
vBetrag := "+10"
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: GUI Edit Feld gibt kein "+" aus

08 Feb 2019, 05:46

Moin,

'feste Variable' ist eine nette Formulierung. In meinem Beispiel wird in der Send/SendRaw Anweisung auf eine Variable zugegriffen. Wie die heißt und woher die ihren Inhalt bekommt, ist völlig unerheblich. Das Beispiel soll nur zeigen, dass ein enthaltenes + Zeichen unverändert gesendet wird.
gregster
Posts: 9002
Joined: 30 Sep 2013, 06:48

Re: GUI Edit Feld gibt kein "+" aus

08 Feb 2019, 06:07

Guest wrote:
07 Feb 2019, 06:53
Margarethe: Habe deine Sende Zeile mit Copy and Paste eingefügt. Bekomme die folgende Fehlermeldung: Error: Call to nonexistent function
Wenn deine AHK-Version die Funktion RegExReplace wirklich nicht kennen sollte (und es nicht etwa ein Copy&Paste-Problem war), könntest du mal erwägen eine neuere Autohotkey-Version zu verwenden. RegExReplace gibt es nämlich seit AutoHotkey Version 1.0.45 - die kam am 4. November 2006 raus :think:

Das würde dann ggf. auch die Frage aufwerfen, ob Send {Raw}, was just me vogeschlagen hat, bei dir funktionieren kann. Zumindest gemäß den Docs wurde das nämlich auch erst mit Version v1.0.43 eingeführt (im März 2006), wobei die Variante SendRaw auf jeden Fall älter zu sein scheint.

Edit: Zum Zeitpunkt meines Beitrags war Margarethes (anonymer) Beitrag zum gleichen Thema noch nicht von den Mods freigeschaltet, glaube ich.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 57 guests