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:
Gruß
czemmel
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