SendKeys mal anders

czemmel

Mitglied
Hallo zusammen,
ich habe ein neues Thema erstellt, da ich an die Problematik etwas anders angehe.
Der Buntzer gibt einen String ein, nach dem in den aktuellen Prozessen gesucht wird (z.B. Mappe1). Dadurch wird die Mapp1 in Excel gefunden und aktiviert.
Nun soll der SendKey - Befehl ausgeführt werden.

Nun soll der Benutzer aber noch eine Variable angeben können, bei der er z.B. nach jedem Datensatz eine Msg-Box hochkommt "Weiter mit Enter" und dann der nächste Datensatz übertragen wird. Oder ein WAIT und die Anzahl der Sekunden.

Kann mir einer Helfen wie ichdas anstellen kann. Hier mein bisheriger Code:

Code:
 If Me.IsProcessRunning(sApplication) = True Then

                Select Case sRowAction
                    Case "FALSE"
                    Case "WAIT" 'Nach jedem Datensatz sWaitSec warten bis nächster Datensatz verarbeitet wird
                    Case "ENTER" 'Nach jedem Datensatz eine Messagebos "Weiter mit ENTER" 
                    Case ""
                        '###################################################
                        '## Datensatz durchsuchen und den Feldern zuordnen
                        '###################################################

                        For r = 0 To sDatensatz.Length - 1 '-1, wenn 0 Datensätze(Zeilen) erfolgt kein Durchlauf
                            Dim rückgabestring As String = sFelder
                            '        '--> 2b. dann die Array-Pos in das Format einfügen
                            Dim felder() As String
                            felder = sDatensatz(r).ToString.Split("|")
                            For s = 0 To felder.Length - 1
                                rückgabestring = Replace(rückgabestring, "[" & s + 1 & "]", felder(s))
                            Next s
                            'Übertragen des Rückgabestrings mit SendKey
                            SendKeys.SendWait(rückgabestring) ' Verwendung von SendWait:
                            ' um Tastatureingaben oder Tastenkombinationen an die aktive Anwendung zu senden und auf die Verarbeitung 
                            'der Meldungen der Tastatureingaben zu warten. 
                            'Mit dieser Methode können Sie Tastatureingaben an eine Anwendung senden und auf die Beendigung der Prozesse warten, 
                            'die dadurch gestartet werden. Dies kann wichtig sein, wenn die andere Anwendung beendet werden muss, 
                            'bevor Ihre Anwendung fortgesetzt werden kann.


                        Next r
                End Select


            Else
                'Anwendung ist noch nicht gestartet
                slasterror = "Die Anwendung " & sApplication & " ist nicht offen!!"
                Return False

            End If

        Catch ex As Exception
            slasterror = ex.Message.ToString
            Return False
        End Try

        Return True

    End Function
    Function IsProcessRunning(ByVal sProcessName As String) As Boolean

        Try
            For Each p As Process In Process.GetProcesses
                'Befindet sich in irgend einem aktuellen laufendem Process 
                'das Fenster mit dem teilstring von sProcessName

                If p.MainWindowTitle.ToLower.IndexOf(sProcessName.ToLower) <> -1 Then
                    ' alles was größer -1 ist, ist OK
                    ' dann Fenster aktivieren
                    AppActivate(p.MainWindowTitle)
                    Return True
                End If
            Next

        Catch ex As Exception
            slasterror = ex.Message.ToString
            Return False
        End Try
    End Function

Gruß
czemmel
 

Neue Beiträge

Zurück