Jag skulle vilja veta hur jag ska göra för att få knappen på forumläret att tryckas ner när jag trycker på en tangent. prova om Det fungerade tyvärr inte, jag använder mig av select case (jag gör en miniräknare) och jag vill koppla samtliga knappar till olika tangenter. Om det är visuelt du menar, så kan du göra så här: Anders som du vet så är du en ängel, men skulle du kunna förklara koden lite för mig, jag är som sagt nybörjare???? Tycker du jag ska byta namn? Men nu är det så att jag vill koppla detta till tangentbordet alltså använda vbkey.... Hej För att Visa knappen nedtryckt är jag tvungen att skicka ett meddelande som säger att musen klickar. Fast i själva verket är det en tangent som är nedtryckt. <br> Jag har provat detta nu, men jag ve inte om jag har gjort riktigt rätt, jag får nämneligen ett felmeddelande: "Methord or data member not found" när jag klickar på OK så markera den i Private Sub Form_KeyDown cmdNumber.hwnd (jag har en array på mina nummerknappar som heter cmdNumber). Varför får jag detta felet?? Hej Om man även vill visa visuellt att man tryckt ned knappen skrviver man:VbKey[LÖST!!!!)
Sv: VbKey
command1.setfoucs
Sendkeys "{ENTER}"
funkar...
annars kan du använda sendmessageSv: VbKey
Sv: VbKey
<code>
Option Explicit
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Command1_Click()
Debug.Print "Command1_Click"
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKey0, vbKeyNumpad0
SendMessage Command1.hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKey0, vbKeyNumpad0
SendMessage Command1.hwnd, WM_LBUTTONUP, 0&, ByVal 0&
End Select
End Sub
Private Sub Form_Load()
KeyPreview = True
End Sub
</code>Sv: VbKey
please :-)Sv: VbKey
Vad jag gör är att emulera musen. Skickar fönster medelande till knappens fönster som säger att jag trycker ned vänster musknapp på kordinat 0, 0. Samt släpper upp musen på kordinat 0, 0.Sv: VbKey
Sv: VbKey
Du har ju fått ett användbart svar använd
vbKey0 ,vbKeynumpad0 i Select Case enl mitt exempel.
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case Is = vbKey0,vbKeyNumpad0
Call cmdNull_Click
Case Is = vkey1,vbKeyNumpad1
Call cmdEtta_Click
............ osv
End Select
End Sub
SvenSv: VbKey
<br>
<code>
'Angera att alla varibler måste deklareras
Option Explicit
'Deklarerar konstanter för vänster musknapp
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
'Deklarerar API anrop till funktionen SendMessageA i dll-filen user32.dll
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'Subrutin för att hantera Click eventet för Command1
Private Sub Command1_Click()
'Skriver ut text i debug fönstret för att visa att event aktiverats
Debug.Print "Command1_Click"
End Sub
'Subrutin för att hantera KeyDown eventet för formuläret
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Kontrollerar vilken tangent som tryckdes ned
Select Case KeyCode
Case vbKey0, vbKeyNumpad0 'Kontrollerar om det var 0-tangenten eller 0-tangenten på numerisk tangentgbordet
'Skickar meddelande till knappen att vänster musknapp är nedtryckt
'Vilket får knappen att se nedtryckt ut
SendMessage Command1.hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
End Select
End Sub
'Subrutin för att hantera KeyUp eventet för formuläret
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
'Kontrollerar vilken tangent som släppdes upp
Select Case KeyCode
Case vbKey0, vbKeyNumpad0 'Kontrollerar om det var 0-tangenten eller 0-tangenten på numerisk tangentgbordet
'Skickar meddelande till knappen att vänster musknapp är uppsläppd
'Vilket får knappen att se normal ut
SendMessage Command1.hwnd, WM_LBUTTONUP, 0&, ByVal 0&
End Select
End Sub
Private Sub Form_Load()
'Innebär att alla tangentryckningar aktivera Formulärets event
'Även när en kontroll har Focus
'Normalt sett får enbart kontrollen som har focus dessa
KeyPreview = True
End Sub
</code>Sv: VbKey
Hur gör jag med alla andra knapparna är det bara att lägga till dem på det sättet som alla command1_click förekommer?Sv: VbKey
Förstår inte varför Ni skall krångla till det så in i helv...
Gör så här
Private Sub Form_Load()
KeyPreview = True
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case Is = vbKey0,vbKeyNumpad0
Call cmdNummber_Click(0)
Case Is = vbKey1,vbKeyNumpad1
Call cmdNummber_Click(1)
Case Is = vbKey2,vbKeyNumpad2
Call cmdNummber_Click(2)
Case Is = vbKey3,vbKeyNumpad3
Call cmdNummber_Click(3)
....osv
End Select
End Sub
SvenSv: VbKey
<code>
Option Explicit
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKey0, vbKeyNumpad0
SendMessage mdNummber(0).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey1, vbKeyNumpad1
SendMessage mdNummber(1).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey2, vbKeyNumpad2
SendMessage mdNummber(2).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey3, vbKeyNumpad3
SendMessage mdNummber(3).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey4, vbKeyNumpad4
SendMessage mdNummber(4).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey5, vbKeyNumpad5
SendMessage mdNummber(5).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey6, vbKeyNumpad6
SendMessage mdNummber(6).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey7, vbKeyNumpad7
SendMessage mdNummber(7).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey8, vbKeyNumpad8
SendMessage mdNummber(8).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
Case vbKey9, vbKeyNumpad9
SendMessage mdNummber(9).hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKey0, vbKeyNumpad0
SendMessage mdNummber(0).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey1, vbKeyNumpad1
SendMessage mdNummber(1).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey2, vbKeyNumpad2
SendMessage mdNummber(2).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey3, vbKeyNumpad3
SendMessage mdNummber(3).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey4, vbKeyNumpad4
SendMessage mdNummber(4).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey5, vbKeyNumpad5
SendMessage mdNummber(5).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey6, vbKeyNumpad6
SendMessage mdNummber(6).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey7, vbKeyNumpad7
SendMessage mdNummber(7).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey8, vbKeyNumpad8
SendMessage mdNummber(8).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
Case vbKey9, vbKeyNumpad9
SendMessage mdNummber(9).hwnd, WM_LBUTTONUP, 0&, ByVal 0&
End Select
End Sub
Private Sub Form_Load()
KeyPreview = True
End Sub
</code>