Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

abfrage Programmstart

abfrage Programmstart
09.06.2007 23:48:00
tino
Hallo,
könnt Ihr mir helfen?
mit unten stehenden Code, öffne ich ein Programm, anschliesend soll dieses Programm in den Focus
genommen werden um eine Reihe von SendKeys abzusenden.
Nun meine Frage
Ich möchte eine abfrage einbauen, die soll wartet bis dieses Programm komplett geladen ist.
Möchte keine Pausen über Sekunden (Zeit) einfügen, diese sind mir zu ungenau.
Habe schon versucht andere abfragen einzubauen, diese gehen aber offt über die aktiven Anwendungen im Task- Manager diese sind aber zu früh also Anwendung nicht komplett geladen.
Ist bestimmt nicht leicht, aber könnt Ihr mir helfen?
Private Declare

Function ShellExecute _
Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal Operation As String, _
ByVal Filename As String, _
Optional ByVal Parameters As String, _
Optional ByVal Directory As String, _
Optional ByVal WindowStyle As Long = vbMinimizedFocus _
) As Long


Sub Oeffne_Programm()
Dim lSuccess As Long
lSuccess = ShellExecute(0, "Open", "C:\WINDOWS\system32\mspaint.exe")
'hier Abfrage ob Programm vollständig gestartet 100%
AppActivate "Paint"
Call SendAnweisungen
End Sub


Gruss
Tino

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: abfrage Programmstart
10.06.2007 18:00:32
Nepumuk
Hallo Tino,
wenn das Progrmm keine Meldung zurückgibt, hast du keine Möglichkeit harauszubekommen, ob es vollständig geladen ist. Bau einfach eine kleine Wartezeit ein.
Gruß
Nepumuk

AW: abfrage Programmstart
10.06.2007 18:45:50
K.Rola
Hallo Nepumuk,
könnte man nicht in einer Schleife ermitteln, ob der Prozess vorhanden ist?
Stimmt deine e-mail noch?
Gruß K.Rola

AW: abfrage Programmstart
10.06.2007 19:03:29
Nepumuk
Liebste K.Rola,
der Prozess ist aber schon da, obwohl das Progrmm noch lädt.
Ja, die Adresse ist immer noch aktuell.
Herzliche Grüße
Nepumuk
P.S. Bin gerade auf dem Weg nach Düsseldorf, kann also eine Weile dauern, bis ich antworte.

Anzeige
AW: abfrage Programmstart
11.06.2007 11:09:00
Tino
Hallo,
vieleich gibt ja eine möglichkeit, zBsp Prozessorauslastung von diesem Programm?
Geht diese unter eine bestimmte Grenze, gilt dieses Programm als gestartet.
Gruss
Tino

AW: abfrage Programmstart
11.06.2007 14:16:20
Nepumuk
Hallo Tino,
ich kann aber nur die Gesamtauslastung des Prozessors auslesen, nicht die eines einzelnen Programms. Und bitte keine Einwände, dass das im Taskmanager auch geht, der ist nicht in VBA auf einer Excelplattform geschrieben!!!
Gruß
Nepumuk

AW: abfrage Programmstart
11.06.2007 15:18:51
Tino
Hallo,
habe von Ramses (danke nochmal an Ihn) einen Code bekommen und Ihn etwas umgebaut, dies kommt der sache schon ziemlich nahe. weis aber nicht welcher wert mir die Prosessorauslastung ausgibt!
Dim myRow As Long

Sub ReadProcessData()
'Cells.Clear
'(C) by Ramses
Dim objWMIService As Object, colProcesses As Object, sinProcess As Object
Set objWMIService = GetObject("winmgmts:")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
'Possible Properties of Win32_Process
'Caption
'CommandLine
'CreationClassName
'CreationDate
'CSCreationClassName
'CSName
'Description
'ExecutablePath
'ExecutionState
'Handle
'HandleCount
'InstallDate
'KernelModeTime
'MaximumWorkingSetSize
'MinimumWorkingSetSize
'Name
'OSCreationClassName
'OSName
'OtherOperationCount
'OtherTransferCount
'PageFaults
'PageFileUsage
'ParentProcessId
'PeakPageFileUsage
'PeakVirtualSize
'PeakWorkingSetSize
'Priority
'PrivatePageCount
'ProcessId
'QuotaNonPagedPoolUsage
'QuotaPagedPoolUsage
'QuotaPeakNonPagedPoolUsage
'QuotaPeakPagedPoolUsage
'ReadOperationCount
'ReadTransferCount
'SessionId
'Status
'datetime TerminationDate
'ThreadCount
'UserModeTime
'VirtualSize
'WindowsVersion
'WorkingSetSize
'WriteOperationCount
'WriteTransferCount
For Each sinProcess In colProcesses
With sinProcess
If .Name = "Videodeluxe.exe" Then
myRow = myRow + 1
Cells(myRow, 1) = .PeakVirtualSize
Cells(myRow, 2) = .PeakWorkingSetSize
Exit For
End If
End With
Next
End Sub



Sub versuch()
Dim a As Variant
myRow = 1
Range("A:AT").ClearContents
Application.ScreenUpdating = False
For a = 1 To 1000
Call ReadProcessData
Next a
Application.ScreenUpdating = True
End Sub


Gruss
Tino

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige