Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.
Prüfen ob Enter gedrückt ist
Guten Tag,
ich google jetzt schon eine Stunde. Aber irgendwie finde ich nichts passendes. Ich möchte prüfen ob die Enter Taste gedrückt ist. Vllt mit einer If Abfrage. Aber ich weiß einfach nicht wie.
Vielen dank für euere hilfe.
Hi.
Ist es ein Textfeld? Generell nur im Programm? Systemweit?
"Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
ja, das meine ich. Aber es funktioniert nicht. Ich kann nicht schreiben. Was mache ich jetzt?
so ich habe es hinbekommen. Aber wenn ich enter drücke wird nicht gesendet. Warum?
Ähm... Woher sollen wir wissen, wo der Fehler liegt? Zeig bitte deinen Code.
Was willst du überhaupt errreichen?
Du willst sicherlich NICHT wissen, ob ENTER gedrückt ist (-> GetAsyncKeyState).
Also hier der Code, und noch was wenn ich jetzt mein Program ausführe kann es nur andere Clients annehmen, wenn ich etwas eintippe und Enter drücke (was noch nciht funktioniert) das möchte ich auch noch anders hinbekommmen.Jetzt der Code:
VB.NET-Quellcode
WhileTrue
client = server.AcceptTcpClient
Dim c AsNew Connection
c.stream = client.GetStream
c.streamr =New StreamReader(c.stream)
c.streamw =New StreamWriter(c.stream)
c.nick = c.streamr.ReadLine
list.Add(c)
Console.WriteLine(c.nick & " is here.")
Dim t AsNew Threading.Thread(AddressOf ListenToConnection)
t.Start(c)
Dim c1 AsNew Connection
Dim eingabe AsString= Console.ReadLine
c1.streamw.WriteLine(eingabe)
EndWhile
edit: hilft es was wenn ich die eingaben in einen neuen thread packe?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Black-Hat“ ()
While True .. End While ist äquvalent zu
Do .. Loop.
Des Weiteren verstehe ich immernoch nicht so ganz, was du willst (kannst du das bitte in korrektem Hochdeutsch mit Zeichernsetzung und Groß-/ Kleinschreibung neu formulieren?).
Und um es besser auszudrücken:
Mach die Abfrage in einem Timer mit dem Interval 20-50.
Und im Timer steht der Code:
VB.NET-Quellcode
Dim isEnterPressed AsBoolean= GetAsyncKeyState(Keys.Enter)
If isEnterPressed =True
MsgBox("Enter wurde gedrückt ;)")
EndIf
Hooks sind 100prozentig besser. Dort kann man in Events reagieren und man benötigt keinen Timer.
MessageBoxen zeigt man per MessageBox.Show() an und nicht mit dem VB6-Code MsgBox().
Gut, danke an alle bisher. Für die die noch nicht verstanden haben was ich will: Ich möchte, dass mein Server Clients annehmen kann auch wenn man gerade schreibt.
edit: @powachill ich habe hier eine konsolenanleitung. Wie soll ich dort einen Timer reinbringen.
Von Hooks habe ich leider nicht wirklich viel Ahnung. Das habe ich sogut wie noch garnicht gebraucht.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Black-Hat“ ()
Mache es wie in dem Beispiel: Server und Client getrennt. (Das ist sowieso erforderlich).
Den "Seeker" muss man natürlich in einen Externen Thread auslagern.
Hooks sind 100prozentig besser. Dort kann man in Events reagieren und man benötigt keinen Timer.
MessageBoxen zeigt man per MessageBox.Show() an und nicht mit dem VB6-Code MsgBox().
Die MsgBox() Funktion funktioniert bei meiner express edition wunderbar.