![]() |
||||
Hotkeys zeigen keine Reaktion - Druckversion +- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de) +-- Forum: Coding (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=15) +--- Forum: Visual Basic 6, VB.NET (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=19) +--- Thema: Hotkeys zeigen keine Reaktion (/showthread.php?tid=1042) Seiten:
1
2
|
||||
Hotkeys zeigen keine Reaktion - .SquoI3 - 15.06.2012 Heyho ich bins mal wieder mit einer kleinen mehr oder weniger dummen Frage. Ich versuche einen Timer für einen Hotkey zu starten, nur leider funktioniert das ganze nicht so wirklich wie es soll. Ich habe schon mehrmals nachgeprüft und mit meinem anderem Programm verglichen (welches ebenfalls mit hotkeys läuft) und finde das Problem nicht. Vermutlich ist es ganz simpel aber ich bin einfach zu blöd den Fehler zu finden. Hier der Code( Ich hab 2 verschiedene Möglichkeiten probiert) : Code:
RE: Hotkeys zeigen keine Reaktion - DNA - 15.06.2012 Hey, zeig doch mal den Code deiner anderen Programme, bei denen der Timer funktioniert. RE: Hotkeys zeigen keine Reaktion - fr33k - 15.06.2012 (15.06.2012, 18:31).SquoI3 schrieb: Heyho ich bins mal wieder mit einer kleinen mehr oder weniger Das wird allgemein so nicht funktionieren, was steht dem im Label? z.B wenn da stehen würde "lol" wie soll dann gehen das es lol -1 berechnet???? Es wäre hilfreich wenn du uns veraten würdest was du machen willst, dann gibt es bestimmt eine lösung RE: Hotkeys zeigen keine Reaktion - DNA - 15.06.2012 Vom Label mal abgesehen, die Hotkeyabfrage befinden sich in 2 unterschiedlichen Funktionen ... time und HotkeyDown Diese Funktionen werden allerdings nie aufgerufen und somit für eine HotkeyAbfrage nicht von Vorteil ![]() Möchtest du denn den Hotkey Systemweit abfragen, oder nur in der Form? RE: Hotkeys zeigen keine Reaktion - .SquoI3 - 15.06.2012 Zitat:Das wird allgemein so nicht funktionieren, was steht dem im Label? Also im label steht die Zahl 300. Der Timer soll mit einem Intervall von 1000 ms also einer Sekunde herunterzählen, wenn ich einen Hotkey drücke. (15.06.2012, 19:10)DNA schrieb: Vom Label mal abgesehen, die Hotkeyabfrage befinden sich in Ich weiß nicht genau was du mit Systemweit meinst... Ich erkläre mal mein gesamtes vorhaben. Ich habe ein Spiel offen, welches sich im Vordergrund befindet. Wenn ich Tod bin dauert es c.a 300 Sekunden , bis ich wieder lebe. Solange möchte ich gerne auf den Desktop und dort etwas machen. Wenn der Timer abgelaufen ist soll das Programm einen Ton spielen, aber das tut nicht zur Sache. Außerdem soll er mir den Verlauf in einem Label anzeigen und das ist der Knackpunkt... Mit einem Button funktionierts aber mit meiner beschriebenen Hotkeyfunktion nicht. RE: Hotkeys zeigen keine Reaktion - DNA - 15.06.2012 Nimm diesen Quellcode [code=VB] Public Class Form1 Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer Public Const VK_0 = &H30 Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Label1.Text -= 1 If Label1.Text = 0 Then Timer2.Enabled = False Timer1.Enabled = True Label1.Text = 300 'Play Sound End If End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If GetAsyncKeyState(VK_0) Then Timer1.Enabled = False Timer2.Enabled = True System.Threading.Thread.Sleep(250) End If End Sub End Class [/code] Pack dir 2 Timer auf die Form. Timer 1 enabled = true stellen und Interval auf 50 Timer 2 enabled = false stellen und Interval auf 1000 Dazu noch nen Label mit Text = 300. Wenn du jetzt im Spiel stirbst, kannst du den Hotkey drücken und der 2. Timer fängt an die 300 Sekunden runter zu zählen. Während der Zeit ist die Hotkeyabfrage gesperrt. Erst wenn das Label den Wert 0 erreicht, wird die Hotkeyabfrage wieder freigegeben. Eine Liste für die Hotkeys findest du hier GetAsyncKeyState Liste Des Weiteren musst du die Anwendung als 32bit Anwendung laufen lassen! RE: Hotkeys zeigen keine Reaktion - .SquoI3 - 15.06.2012 Vielen dank <3... Das ihr hier auch immer einem die Arbeit abnehmt! Unverschämtheit :P #Edit : Mh wohl doch nicht so ganz... Aber dein Post hat mir anregungen gegeben. Jetzt funktioniert es! [code=vb] Public Class Form1 Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal key As Keys) As Integer Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If GetAsyncKeyState(Keys.A) = -32767 Then Timer2.Start() End If End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Label1.Text -= 1 If Label1.Text = 0 Then Timer2.Stop() Label1.Text = 300 End If End Sub End Class [/code] danke nochmal! RE: Hotkeys zeigen keine Reaktion - iNvIcTUs oRCuS - 15.06.2012 Ich klinke mich hier mal interessehalber mit ein. Ist das hier ein Schreibfehler... [code=VB]Label1.Text -= 1[/code] ...oder muss das so aussehen bzw. deklariert werden? RE: Hotkeys zeigen keine Reaktion - DNA - 15.06.2012 Das ist so korrekt ... bevor ich hier etwas schreibe, teste ich das auch (meistens ![]() ![]() ![]() So zieht er jedes mal, von dem was in dem Label steht, 1 ab. RE: Hotkeys zeigen keine Reaktion - iNvIcTUs oRCuS - 16.06.2012 Ja ne is schon klar. Wie ich schon sagte - Interessehalber. Ich code ja unter Delphi und ich hätte es ja noch verstanden wenns so ausgesehen hätte... [code=VB]Label1.Text = Label1.Text - 1[/code] Aber das MINUS direkt vor dem Gleichheitszeichen... ![]() Hätte ich jetzt auch nicht erwartet. |