vb2008 fehler

New member
hi, kann mir wer sagen was falsch ist?
Code:
Public Class Form1
    Private Declare Function GetASyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Dim asciicode As Integer
    Dim Eingabe As Integer


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        For i = 1 To 255
            Eingabe = GetASyncKeyState(i)
             Next
    End Sub
End Class
bei Eingabe = GetASyncKeyState(i) kommt immer die meldung Der Einstiegspunkt "GetASyncKeyState" wurde nicht in der DLL "user32" gefunden.
 


Du kannst der Funktion (afaik) keine Integer-Werte übergeben (deine Schleife bringt sowieso nicht viel - warum sollte man überprüfen ob 255 verschiedene Zeichen gedrückt wurden?). vKey ist ein 2-stelliger Hexadezimal-Wert (in VB kennzeichnet man solche mit einem &H davor). Außerdem musst du bei der DLL den vollständigen Namen angeben (also "user32.dll").


Spoiler:
Code:
' Declarations and such needed for the example:
' (Copy them to the (declarations) section of a module.)
Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer

' Determine whether the Q key has been pressed or not since the last
' call to the function (assuming this example code has already been run earlier).
' The code runs when button Command1 is pressed.

Private Sub Command1_Click()
	Dim keystate As Integer  ' state of the Q key
	
	' Get the state of the Q key as returned by the function.
	' (vbKeyQ is a VB-defined constant for Q's virtual-key code)
	keystate = GetAsyncKeyState(vbKeyQ)
	' Check the &H8000 bit of the return value.
	If keystate And &H8000 Then
		Debug.Print "The Q key has been pressed since the last check."
	Else
		Debug.Print "The Q key has not been pressed since the last check."
	End If
End Sub
 
Du kannst der Funktion (afaik) keine Integer-Werte übergeben
vKey ist ein 2-stelliger Hexadezimal-Wert

kannst du mir zeigen was du damit meinst also was anders muss?
 
Hast du dir den Link angeschaut und gelesen was die Funktion überhaupt macht? Unten auf der Seite ist auch nochmal ein Beispiel.

Vielleicht kannst du auch tatsächlich Integer-Werte benutzen (weil 16^2 gerade 256 entspricht). Wenn dem so ist machst du mit deinem Code folgendes: du überprüfst ob die Taste, die der Zahl 1 entspricht, gedrückt wurde (oder aktuell gehalten wird). Danach verwirfst du das Ergebnis und überprüfst ob die Taste, die der Zahl 2 entspricht, gedrückt wurde. Dann verwirfst du wieder das Ergebnis und schaust ob die Taste die der Zahl 3 zugewiesen ist gedrückt wurde... und so weiter bis 255. Im Endeffekt also völlig nutzlos.

Edit: Richtig ausgedrückt: du überprüfst gar nichts sondern weist der Variable "Eingabe" nur einen Wert zu, den du dann sofort wieder überschreibst.

Was hast du überhaupt vor? Deine Variable "Eingabe" deutet darauf hin, dass du einen Text einlesen willst?
 
stimmt das hab ich ein bissl umdeutlich gezeigt. das da oben ist ein teil eines programmes das ich schreibe. bevor es verwurfen wird, wirds abgesichert. und das ganze trägt dazu bei was das programm machen soll, nehmlich weil mein word sich immer aufhängt und ich nicht immer neuanfangen will. ja ich könnte ein anderes programm nehmen will ich aber wegen ner anderen geschichte nicht.

aber nochmal: kannst du mir anhand dieses codes zeigen (ignorier einfach das sinnlose) warum da dieser fehler kommt? ja ich hab mir dein link angeguckt.
 
Schon mit "user32.dll" versucht?

Office bietet übrigens seit geraumer Zeit die Möglichkeit Dateien automatisch alle x Minuten zu sichern.
 
das wars. danke

ne immernoch was kommisch
da steht nichts in der textbox in die das kopiert wird 0.o
textbox1.text = textbox1.text + chr(i)
 
Zuletzt bearbeitet:

Online-Statistiken

Zurzeit aktive Mitglieder
0
Zurzeit aktive Gäste
20
Besucher gesamt
20

Beliebte Forum-Themen

X
Keine passende Antwort gefunden?