2008-02-10, 02:49
  #1
Medlem
Hejsan.
Jag har inte gjort ngon sorts VB porgrammering p ett bra tag men nu tnkte jag slnga ihop en liten grejj. Jag bestmde mig fr att dumpa det frldrade VB6 och kra p .NET.
Detta r ju hyffsat annorlunda s jag undrar nu hur jag skall anvnda SendKeys.
Vad jag vill gra r att nr jag trycker ner en viss tangent skall en annan ocks skickas/skickas i stllet.
T.ex. i VB6
Kod:
If GetAsyncKeyState(vbKeyF1) Then
SendKeys "{NUMPAD4}"

Hur skall detta gras i .NET?
Citera
2008-02-10, 14:06
  #2
Medlem
gadzooxs avatar
Citat:
Ursprungligen postat av Logz
Hejsan.
Jag har inte gjort ngon sorts VB porgrammering p ett bra tag men nu tnkte jag slnga ihop en liten grejj. Jag bestmde mig fr att dumpa det frldrade VB6 och kra p .NET.
Detta r ju hyffsat annorlunda s jag undrar nu hur jag skall anvnda SendKeys.
Vad jag vill gra r att nr jag trycker ner en viss tangent skall en annan ocks skickas/skickas i stllet.
T.ex. i VB6
Kod:
If GetAsyncKeyState(vbKeyF1) Then
SendKeys "{NUMPAD4}"

Hur skall detta gras i .NET?
Vill du fnga och skicka tangenter internt i applikationen, eller vill du intercepta och skicka ut dem till ngon annan applikation?

Om internt s r det hyfsat ltt, borde vl bli ngt i den hr stilen. Urskta eventuella fel i koden, knner inte direkt fr att ha ngon strre koll p VB. Microsoft fr en att knna sig som en femring med den dr syntaxen; "MyBase", "Handles", "Inherits", "Then"... bah!
Kod:
Implements System.Windows.Forms
Public Class Form1 Inherits Form
  
'' Constructor
  
Public Sub New()
    
Me.KeyPreview True  '' Stt KeyPreview till true fr att formulret skall ta emot knapptryckningar innan de skickas till den kontroll som har fokus.
  
End Sub

  
'' EventHandler fr eventet KeyDownsom raise:as nr en knapp trycks ner.
  
'' Alternativt kan du hantera eventet textBox1.KeyDown istlletfr att frhindra W enbart i just den textboxenI s fall krvs inte KeyPreview=True.
  Private 
Sub Form1_KeyDown(ByVal sender As ObjectByVal e As KeyEventArgsHandles MyBase.KeyDown
    
If e.KeyCode Keys.W Then                  '' Om W trycktes ner.... 
       
e.SuppressKeyPress True                '' ...suppressa (kasta bortknapptryckningen...
       
System.Windows.Forms.SendKeys.Send("Q")  '' ...och skicka ett Q istllet.
    
End If
  
End Sub
End 
Class 

h herregud vilket fult sprk, s mycket text
Citera
2008-02-10, 19:07
  #3
Medlem
Citat:
Ursprungligen postat av gadzoox
Vill du fnga och skicka tangenter internt i applikationen, eller vill du intercepta och skicka ut dem till ngon annan applikation?
Den mste g att anvnda i en annan applikation
Citera
2008-02-22, 16:01
  #4
Bannlyst
D mste du hooka tangenterna.

Kolla p denna
http://blogs.msdn.com/toub/archive/2...03/589423.aspx
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in