none
button mit Fkt belegen, aber wie RRS feed

  • Frage

  • hallo, als neuanfänger mit visual studio 2005 weiß ich nicht wie man z. Bsp. den button mit Fkt. F9 belegt?
    Mittwoch, 28. März 2012 12:46

Antworten

  • Hallo,

    anbei 3 Beispiele. Als erstes die Simulation vom Drücken der Taste F9 für das eigene aktive Fenster. Als Zweites das Auslösen des Key Down Events für die Taste F9. Und als drittes die Simulation vom Drücken der Taste F5 in Notepad.


    Public Class Form1
      Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' Das Form erhält die KeyEvents vor seinen Controls.
        Me.KeyPreview = True
      End Sub

      Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = System.Windows.Forms.Keys.F9 Then
          ' Button1 wurde geclickt.
          MsgBox("F9 wurde gedrückt.")
        End If
      End Sub

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
           ' 1. Simulation vom Drücken der Taste F9 für das eigene aktive Fenster.     
           System.Windows.Forms.SendKeys.SendWait("{F9}")


          ' 2. Key Down Event für Taste F9 auslösen.
          Dim objKeyEventArgs As New System.Windows.Forms.KeyEventArgs(System.Windows.Forms.Keys.F9)
          ' Löst das KeyDown Event oben mit KeyCode F9 aus.
          OnKeyDown(objKeyEventArgs)


          ' 3.  Simulation vom Drücken der Taste F5 in Notepad. F5 fügt in Notepad Datum und Uhrzeit in den Text ein.
          Dim objProcess1 As System.Diagnostics.Process
          Dim intNotepad_ProcessId As Integer

          ' Startet Notepad.
          intNotepad_ProcessId = Shell(Environment.SystemDirectory & "\notepad.exe", AppWinStyle.NormalFocus)
          objProcess1 = System.Diagnostics.Process.GetProcessById(intNotepad_ProcessId)

          System.Windows.Forms.SendKeys.SendWait("{F5}")

          AppActivate(Me.Text)
          ' 4 Sekunden warten.
          System.Threading.Thread.Sleep(4000)
          ' Notepad beenden.
          objProcess1.CloseMainWindow()
          objProcess1.Close()

        Catch ex As Exception
          MsgBox(ex.Message)
        End Try
      End Sub
    End Class






    Donnerstag, 29. März 2012 19:31
  • Beispiel für C#

    static class Program 
    { 
        [DllImport("user32.dll")] 
        public static extern int SetForegroundWindow(IntPtr hWnd); 
     
        [STAThread] 
        static void Main() 
        { 
            while(true) 
            { 
                Process [] processes = Process.GetProcessesByName("iexplore"); 
     
                foreach(Process proc in processes) 
                { 
                    SetForegroundWindow(proc.MainWindowHandle); 
                    SendKeys.SendWait("{F5}"); 
                } 
     
                Thread.Sleep(5000); 
            } 
        } 
    } 

    MSDN Artikel dazu:

    http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx

    Freitag, 30. März 2012 11:11

Alle Antworten