Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Visual-Basic-Forum VB-Paradise.de. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

1

Sonntag, 4. März 2012, 01:47

Keybinder Problem -> Combobox

Hallo,
undzwar habe ich ein Problem ich code mir grade einen Keybinder zusammen der auch funktioniert.
Derzeit ist er so gecodet das wenn ich Checkbox1 anklicke und dann NumPad1 klicke der Text aus Textbox1 geschrieben wird.

Visual Basic Quellcode

1
2
    	If CheckBox1.Checked = True Then
        	RegisterHotKey(Me.Handle, 1, Key_NONE, Keys.NumPad1)

Das klappt super.
Nur ich würde gerne in einer ComboBox alle Buchstaben eingeben (also eine Liste von a-z) wo ich mir dann aussuche zb. Buchstabe "g".
(Hatte gedacht alles wie oben nur anstatt Keys.NumPad1, ComboBox1.text nur des geht irgendwie nicht beim debuggen er zeigt mir dann die Windows Hilfe an)
Falls CheckBox1.Checked soll auf Taste "g" der Text aus TextBox1 geschrieben werden.

Ich hoffe ihr könnt mir helfen.

_Tom

RodFromGermany

Der Programmator

Beiträge: 17 740

Hilfreich-Bewertungen: 1740

  • Private Nachricht senden

2

Sonntag, 4. März 2012, 11:01

RegisterHotKey() erwartet einen virtuellen KeyCode, also nicht "a" sondern Keys.A. Die musst Du alle übersetzen, z.B. über ein Dictionary:

Visual Basic Quellcode

1
2
Dim dd As New Dictionary(Of Char, Keys)
dd.Add("A"c, Keys.A)
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
VB-Fragen über PN werden ignoriert!

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

3

Sonntag, 4. März 2012, 11:06

Wo muss ich die "Übersetzung" einfügen? in die Form?

Edit: Wie krieg ich dann die ComboBox da rein?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kingtom« (4. März 2012, 11:18)


RodFromGermany

Der Programmator

Beiträge: 17 740

Hilfreich-Bewertungen: 1740

  • Private Nachricht senden

4

Sonntag, 4. März 2012, 12:46

Initialisiere Dein Dictionary in der Form_Load oder im Konstruktor:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
   Private dd As New Dictionary(Of Char, Keys)
   Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      dd.Add("A"c, Keys.A)
      dd.Add("B"c, Keys.B)
      dd.Add("C"c, Keys.C)
      dd.Add("D"c, Keys.D)
      '...
   End Sub
   Pivate Sub MySub()
      Dim MyKey As Keys = dd.Item(ComboBox1.text)
      RegisterHotKey(Me.Handle, 1, Key_NONE, MyKey)
   End Sub
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
VB-Fragen über PN werden ignoriert!

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

5

Sonntag, 4. März 2012, 14:15

Ok das funktioniert.
Neues Problem ich komme in eine Endlos Schleife also: Also wenn ich auf "A" Hallo habe kommt nur "Hllohllohllo"

RodFromGermany

Der Programmator

Beiträge: 17 740

Hilfreich-Bewertungen: 1740

  • Private Nachricht senden

6

Sonntag, 4. März 2012, 17:46

Wie sieht Dein Code aus?
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
VB-Fragen über PN werden ignoriert!

Center

Registrierter Benutzer

  • »Center« ist männlich

Beiträge: 65

Dabei seit: 4. März 2012

Wohnort: München

Hilfreich-Bewertungen: 4

  • Private Nachricht senden

7

Sonntag, 4. März 2012, 19:17

Schick mal dein Code ein.

So könnte man sich ein "Problem" genauer anschauen :).


Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

8

Sonntag, 4. März 2012, 21:02

 Hier klicken für weitere Informationen

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
Public Class Form1
	Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifier As Integer, ByVal vk As Integer) As Integer
	Private Declare Sub UnregisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal id As Integer)
	Private Const Key_NONE As Integer = &H0
	Private Const WM_HOTKEY As Integer = &H312
	Private dd As New Dictionary(Of Char, Keys)
	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    	dd.Add("A"c, Keys.A)
    	dd.Add("B"c, Keys.B)
    	dd.Add("C"c, Keys.C)
    	dd.Add("D"c, Keys.D)
    	dd.Add("E"c, Keys.E)
    	dd.Add("F"c, Keys.F)
    	dd.Add("G"c, Keys.G)
    	dd.Add("H"c, Keys.H)
    	dd.Add("I"c, Keys.I)
    	dd.Add("J"c, Keys.J)
    	dd.Add("K"c, Keys.K)
    	dd.Add("L"c, Keys.L)
    	dd.Add("M"c, Keys.M)
    	dd.Add("N"c, Keys.N)
    	dd.Add("O"c, Keys.O)
    	dd.Add("P"c, Keys.P)
    	dd.Add("Q"c, Keys.Q)
    	dd.Add("R"c, Keys.R)
    	dd.Add("S"c, Keys.S)
    	dd.Add("T"c, Keys.T)
    	dd.Add("U"c, Keys.U)
    	dd.Add("V"c, Keys.W)
    	dd.Add("X"c, Keys.X)
    	dd.Add("Y"c, Keys.Y)
    	dd.Add("Z"c, Keys.Z)
	End Sub

	Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    	If CheckBox1.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox1.Text)
        	RegisterHotKey(Me.Handle, 1, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 1)
    	End If
	End Sub
	Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    	If m.Msg = WM_HOTKEY Then
        	Select Case m.WParam
            	Case 0
            	Case 1
                	SendKeys.Send(TextBox1.Text)
            	Case 2
                	SendKeys.Send(TextBox2.Text)
            	Case 3
                	SendKeys.Send(TextBox3.Text)
            	Case 4
                	SendKeys.Send(TextBox4.Text)
            	Case 5
                	SendKeys.Send(TextBox5.Text)
            	Case 6
                	SendKeys.Send(TextBox6.Text)
            	Case 7
                	SendKeys.Send(TextBox7.Text)
            	Case 8
                	SendKeys.Send(TextBox8.Text)
            	Case 9
                	SendKeys.Send(TextBox9.Text)
            	Case 10
                	SendKeys.Send(TextBox10.Text)
            	Case 11
                	SendKeys.Send(TextBox11.Text)
            	Case 12
                	SendKeys.Send(TextBox12.Text)
            	Case 13
                	SendKeys.Send(TextBox13.Text)
            	Case 14
                	SendKeys.Send(TextBox14.Text)
            	Case 15
                	SendKeys.Send(TextBox15.Text)
            	Case 16
                	SendKeys.Send(TextBox16.Text)
            	Case 17
                	SendKeys.Send(TextBox17.Text)
            	Case 18
                	SendKeys.Send(TextBox18.Text)
            	Case 19
                	SendKeys.Send(TextBox19.Text)
            	Case 20
                	SendKeys.Send(TextBox20.Text)
            	Case 21
                	SendKeys.Send(TextBox21.Text)
            	Case 22
                	SendKeys.Send(TextBox22.Text)
            	Case 23
                	SendKeys.Send(TextBox23.Text)
            	Case 24
                	SendKeys.Send(TextBox24.Text)

        	End Select

    	End If
    	MyBase.WndProc(m)
	End Sub

	Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
	End Sub

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    	Process.Start("www.life-of-sa.de/index.php?page=Index")
	End Sub

	Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
    	If CheckBox2.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox2.Text)
        	RegisterHotKey(Me.Handle, 2, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 2)
    	End If
	End Sub

	Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged
    	If CheckBox4.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox4.Text)
        	RegisterHotKey(Me.Handle, 4, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 4)
    	End If
	End Sub

	Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
    	If CheckBox3.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox3.Text)
        	RegisterHotKey(Me.Handle, 3, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 3)
    	End If
	End Sub

	Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged
    	If CheckBox6.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox6.Text)
        	RegisterHotKey(Me.Handle, 6, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 6)
    	End If
	End Sub

	Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged
    	If CheckBox5.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox5.Text)
        	RegisterHotKey(Me.Handle, 5, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 5)
    	End If
	End Sub

	Private Sub CheckBox8_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged
    	If CheckBox8.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox8.Text)
        	RegisterHotKey(Me.Handle, 8, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 8)
    	End If
	End Sub

	Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox7.CheckedChanged
    	If CheckBox7.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox7.Text)
        	RegisterHotKey(Me.Handle, 7, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 7)
    	End If
	End Sub

	Private Sub CheckBox16_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox16.CheckedChanged
    	If CheckBox16.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox16.Text)
        	RegisterHotKey(Me.Handle, 16, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 16)
    	End If
	End Sub

	Private Sub CheckBox15_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox15.CheckedChanged
    	If CheckBox15.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox15.Text)
        	RegisterHotKey(Me.Handle, 15, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 15)
    	End If
	End Sub

	Private Sub CheckBox14_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox14.CheckedChanged
    	If CheckBox14.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox14.Text)
        	RegisterHotKey(Me.Handle, 14, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 14)
    	End If
	End Sub

	Private Sub CheckBox13_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox13.CheckedChanged
    	If CheckBox13.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox13.Text)
        	RegisterHotKey(Me.Handle, 13, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 13)
    	End If
	End Sub

	Private Sub CheckBox12_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox12.CheckedChanged
    	If CheckBox12.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox12.Text)
        	RegisterHotKey(Me.Handle, 12, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 12)
    	End If
	End Sub

	Private Sub CheckBox11_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox11.CheckedChanged
    	If CheckBox11.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox11.Text)
        	RegisterHotKey(Me.Handle, 11, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 11)
    	End If
	End Sub

	Private Sub CheckBox10_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox10.CheckedChanged
    	If CheckBox10.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox10.Text)
        	RegisterHotKey(Me.Handle, 10, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 10)
    	End If
	End Sub

	Private Sub CheckBox9_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox9.CheckedChanged
    	If CheckBox9.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox9.Text)
        	RegisterHotKey(Me.Handle, 9, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 9)
    	End If
	End Sub

	Private Sub CheckBox24_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox24.CheckedChanged
    	If CheckBox24.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox24.Text)
        	RegisterHotKey(Me.Handle, 24, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 24)
    	End If
	End Sub

	Private Sub CheckBox23_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox23.CheckedChanged
    	If CheckBox23.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox23.Text)
        	RegisterHotKey(Me.Handle, 23, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 23)
    	End If
	End Sub

	Private Sub CheckBox22_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox22.CheckedChanged
    	If CheckBox22.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox22.Text)
        	RegisterHotKey(Me.Handle, 22, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 22)
    	End If
	End Sub

	Private Sub CheckBox21_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox21.CheckedChanged
    	If CheckBox21.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox21.Text)
        	RegisterHotKey(Me.Handle, 21, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 21)
    	End If
	End Sub

	Private Sub CheckBox20_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox20.CheckedChanged
    	If CheckBox20.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox20.Text)
        	RegisterHotKey(Me.Handle, 20, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 20)
    	End If
	End Sub

	Private Sub CheckBox19_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox19.CheckedChanged
    	If CheckBox19.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox19.Text)
        	RegisterHotKey(Me.Handle, 19, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 19)
    	End If
	End Sub

	Private Sub CheckBox18_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox18.CheckedChanged
    	If CheckBox18.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox18.Text)
        	RegisterHotKey(Me.Handle, 18, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 18)
    	End If
	End Sub

	Private Sub CheckBox17_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox17.CheckedChanged
    	If CheckBox17.Checked = True Then
        	Dim MyKey As Keys = dd.Item(ComboBox17.Text)
        	RegisterHotKey(Me.Handle, 17, Key_NONE, MyKey)
    	Else
        	UnregisterHotKey(Me.Handle, 17)
    	End If
	End Sub
End Class


Der ganze Code O:


Edit by hal2000:
- Fullquote entfernt. Bitte in Zukunft vermeiden.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »hal2000« (11. März 2012, 21:29)


RodFromGermany

Der Programmator

Beiträge: 17 740

Hilfreich-Bewertungen: 1740

  • Private Nachricht senden

9

Montag, 5. März 2012, 07:47

Pack da mal bitte einen Expander drum.
Das ganze kann man doch rigoros zusammenfassen und vereinfachen.
Mit welchen Texten / Buchstaben sind denn Deine Textboxen gefüllt?
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
VB-Fragen über PN werden ignoriert!

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

10

Montag, 5. März 2012, 12:52

@Rod: Expander drinne.
Ich hatte zum Test nur "Hallo" drinne nur es hängt sich ja jetzt auf wegen dem "a" im Hallo.
Überlegt habe ich mir das so, dass der Keybinder für alle Spiele ist also man kann sich selbst aussuchen ob vorher "t";"y" etc gedrückt wird das krieg ich ja auch noch hin.
Nur im Keybinder sollen ganze Sätze gespeichert werden bsp. "Guten Tag. Sie sprechen mit Officer "SchlagMichTot" was kann ich für die tun?"
das ganze würde sich dann zu einer endlosschleife entwickeln und das Spiel würde sich aufhängen.

Edit by hal2000:
- Fullquote entfernt. Bitte in Zukunft vermeiden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hal2000« (11. März 2012, 21:30)


RodFromGermany

Der Programmator

Beiträge: 17 740

Hilfreich-Bewertungen: 1740

  • Private Nachricht senden

11

Montag, 5. März 2012, 17:13

Neues Problem ich komme in eine Endlos Schleife also: Also wenn ich auf "A" Hallo habe kommt nur "Hllohllohllo"

Mit Deinem Code lässt sich das leider nicht nachvollziehen.
Mach Dir ein kleines Testprogramm, ersetze die Textboxen durch die Texte selbst und pack nur das rein, was zur Darstellung Deines Effekts nötig ist.
Vielleicht schaffst Du es so sogar allein. :thumbsup:
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
VB-Fragen über PN werden ignoriert!

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

12

Montag, 5. März 2012, 20:57

Das problem ist ja eigentlich Simple ich habe auf Taste A das Wort "Hallo" gebindet in dem Wort "Hallo" ist ein "a" enthalten und das gibt dem Programm den Befehl Textbox1.text zu senden dann kommt wieder das "Hallo" wo wieder das a drinne ist.

Edit by hal2000:
- Fullquote entfernt. Bitte in Zukunft vermeiden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hal2000« (11. März 2012, 21:30)


Silas88vD

Registrierter Benutzer

  • »Silas88vD« ist männlich

Beiträge: 27

Dabei seit: 10. März 2012

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

13

Samstag, 10. März 2012, 13:35

Du könntest dir irgendwo global ein Flag setzen bevor du Sendkeys auslöst. Dann fragst du einfach vor der Hotkey Verarbeitung ab, ob das Flag gesetzt ist und wenn nein führst du die Verarbeitung durch und sonst nicht.

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private _isProcessingHotkey as Boolean = false
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
	If m.Msg = WM_HOTKEY and not _isProcessingHotkey Then
   		Select Case m.WParam
      		Case 0
       		Case 1
				_isProcessingHotkey = true
           		SendKeys.Send(TextBox1.Text)
				_isProcessingHotkey = false
       		Case 2
				_isProcessingHotkey = true
           		SendKeys.Send(TextBox2.Text)
				_isProcessingHotkey = false
       		'[...]
    	End Select
	End If
	MyBase.WndProc(m)
End Sub


Alternativ kannst du natürlich einfach ein Hotkey definieren wie z.B. Strg+A statt einfach nur A. Dann hast du das Problem nicht.

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

14

Mittwoch, 14. März 2012, 00:35

Du könntest dir irgendwo global ein Flag setzen bevor du Sendkeys auslöst. Dann fragst du einfach vor der Hotkey Verarbeitung ab, ob das Flag gesetzt ist und wenn nein führst du die Verarbeitung durch und sonst nicht.

Alternativ kannst du natürlich einfach ein Hotkey definieren wie z.B. Strg+A statt einfach nur A. Dann hast du das Problem nicht.
Also so wie du mir das gepostet hast würde er diese endlos schleife nicht mehr senden oder wie? (kann es grade nicht testen, habe mein Projekt auf einem USB der nicht hier ist :/)

Und das mit dem Strg+A hab ich auch erst gedacht nur für manche Befehle InGame ist es schwierig 2 Tasten aufeinmal zu drücken.
Bsp. In einem GangWar sollen Autos neu gespawnt werden per Befehl aber der Leader Deagelt gerade.
Sonst würde ich mir ja einen in AutoHotKey machen, da weiß ich auch wie es geht aber viele User auf dem Server wissen es nicht und deswegen möchte ich halt einen Keybinder machen den jeder versteht.

Silas88vD

Registrierter Benutzer

  • »Silas88vD« ist männlich

Beiträge: 27

Dabei seit: 10. März 2012

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

15

Mittwoch, 14. März 2012, 11:35

Ja so die Theorie. Er würde den Hotkey ja so nur verarbeiten wenn _isProcessingHotkey false ist. Da du ja den Wert vor dem Sendkeys auf true und danach zurück auf false setzt ist die Hotkey verarbeitung vorrübergehend inaktiv.

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

16

Mittwoch, 14. März 2012, 21:36

Ne funktioniert nicht :/
Kommt das gleiche

Silas88vD

Registrierter Benutzer

  • »Silas88vD« ist männlich

Beiträge: 27

Dabei seit: 10. März 2012

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

17

Mittwoch, 14. März 2012, 21:51

Es würde funktionieren wenn du deine Hotkeys vor dem Sendkeys deregistrierst und dann wieder registrierst, aber das ist glaub ich keine besonders gute Idee. Vor allem müsstest du ja alle deregistrieren und neu registrieren.

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

18

Donnerstag, 15. März 2012, 22:52

Also anders kann ich es nicht machen oder wie

Silas88vD

Registrierter Benutzer

  • »Silas88vD« ist männlich

Beiträge: 27

Dabei seit: 10. März 2012

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

19

Donnerstag, 15. März 2012, 23:08

Mir fällt keine andere Lösung ein, was aber nicht bedeuten muss, dass es keine gibt. Normalerweise macht man sowas auch nicht. Nimm doch die F- Tasten oder die Nummernblocktasten. Dann braucht man auch bloß eine Taste drücken und hat das Problem trotzdem nicht.

Kingtom

Registrierter Benutzer

  • »Kingtom« ist der Autor dieses Themas

Beiträge: 25

Dabei seit: 28. November 2010

  • Private Nachricht senden

20

Donnerstag, 15. März 2012, 23:13

Ja das war mein letzter Ausweg.

Social Bookmarks