prüfen ob anderes Programm schon offen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: prüfen ob anderes Programm schon offen von: Johannes
Geschrieben am: 22.03.2005 20:30:00

Hallo Spezialisten,

ich habe folgendes Problem: Mit der Zeile öffne ich den Barcodegenerator aus dem Ablauf heraus - funktioniert auch.

Shell "D:\Barcode\BARCODE.exe"

Nun soll aber nicht in jeder Schleife das Programm erneut geöffnet werden und ich suche nach der Syntax in einer if - then - else Abfrage um zu prüfen ob das Programm schon offen ist.

if [programm schon offen]
then [weiterer Ablauf ...]
else [Programm öffnen s.o.]
[weiterer Ablauf ...]

Könnte mir bitte jemand auf die Sprünge helfen.
Vielen lieben Dank schon mal für Eure Mühe

Johannes

Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: Nepumuk
Geschrieben am: 22.03.2005 20:47:01

Hallo Johannes,

erzeugt das Programm ein sichtbares Fenster oder ein Icon in der Taskleiste, sobald es gestartet wird? Wenn du dir nicht sicher bist, starte das Programm und schau mal im Taskmanager unter Anwendungen. Ist da ein Eintrag, der das Programm repräsentiert? Wenn ja, was steht da unter "Task"?

Gruß
Nepumuk


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: Johannes
Geschrieben am: 22.03.2005 20:56:47

Hallo Nepumuk,

Taskmanager:
Task..........................Status
[Icon]Barcode..........Wird ausgeführt

Das Programm ist in der Taskleiste als Button sichtbar.

Gruß

Johannes


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: K.Rola
Geschrieben am: 22.03.2005 20:58:47

Hallo Nepumuk,
wie wärs damit:
Option Explicit
Sub teste()
Dim objWMI As Object, colPro As Object
Set objWMI = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
Set colPro = objWMI.ExecQuery _
    ("Select * from Win32_Process Where Name = 'Excel.exe'")
If colPro.Count = 0 Then
    MsgBox "Excel.exe ist nicht am werkeln!"
Else
    MsgBox "Excel.exe ist stark beschäftigt!"
End If
End Sub


Gruß K.Rola

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde




Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: chris
Geschrieben am: 22.03.2005 21:02:25

Hallo K.Rola ,
mit diesem Code hast du auch mich neugierig gemacht..
Würdest du mir dasd ganze auch etwas genauer ewrklären ?
Also wie ich es anwende ist klar aber wie oder was der code macht.
Und evtl. auch wie mann auf sowas kommt ?
Danke schon mal grüße Christian


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: K.Rola
Geschrieben am: 22.03.2005 21:09:46

Hallo,

das ist WMI Query Language, angelehnt an SQL aber halt nicht ganz genauso.
Wenn du dich dafür interessierst, kannst du bei Microsoft diverse WMI-Tools
downloaden. Mit einigen Worten kann man das nicht erklären, dafür ist das
zu mächtig.

Gruß K.Rola


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: chris b
Geschrieben am: 22.03.2005 21:15:05

Ohh Danke dir Kola,
dann lass ich lieber die finger davon. :)
Weil Microsoft downloaden und so ist english und dessen bin ich noch nicht so sehr mächtig.
Ich weiß wäre von vorteil bei Programmiersprachen aber so fitt bin ich dann leider doch nicht.
Danke !


Bild


Betrifft: Du kannst auch in deutsch downloaden__ot von: K.Rola
Geschrieben am: 22.03.2005 21:30:10

k


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: Nepumuk
Geschrieben am: 22.03.2005 21:29:32

Hi K.Rola,

ich benutze das um die ProzessorID auszulesen. Sowohl bei meinem, als auch bei deinem Code stelle ich fest, der schnellste ist der nicht gerade.

Gruß
Nepumuk


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: K.Rola
Geschrieben am: 22.03.2005 21:34:53

Hi Nepumuk,

also über die Geschwindigkeit kann ich nicht meckern, die Anzeige erfolgt quasi
verzögerungslos. Vieleicht solltest du deine Maschine mal von Dampf auf Strom
umstellen :-°)

Gruß K.Rola


Bild


Betrifft: Aber sonst geht´s Euch gut? von: Boris
Geschrieben am: 22.03.2005 23:40:39

Hi Teuerste,

...schwebt ihr gerade in anderen Sphären? Kommt mir zumindest so vor...(mir ist ganz schwindelig...). :-p

Grüße Boris


Bild


Betrifft: AW: Aber sonst geht´s Euch gut? von: K.Rola
Geschrieben am: 23.03.2005 01:38:17

Hi Schatz,

bei deinen {} Formel gehts mir ähnlich.

btw: WMI ist nichts für schwache Nerven.

Gruß und Kuss

K.Rola


Bild


Betrifft: Herzlichen Dank - klappt prima o.w.T von: Johannes
Geschrieben am: 22.03.2005 21:16:44

.


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: Nepumuk
Geschrieben am: 22.03.2005 21:18:07

Liebste K.Rola,

Windows Managemet System, auch keine schlechte Idee. Ich wollte erst über den Fenstertitel, aber den heraus zu bekommen wird mit "VBA - nur mit Recorder" schwierig. Ich denke einfacher geht es so:


Option Explicit

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As LongByVal th32ProcessID As LongAs Long
Private Declare Function Process32First Lib "kernel32.dll" (ByVal hSnapshot As LongByRef lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal hSnapshot As LongByRef lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As LongAs Long

Private Enum Costant
    TH32CS_SNAPPROCESS = &H2
    MAX_PATH = 260
End Enum

Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
End Type

Public Sub Alle_Prozesse()
    Dim Snap As Long, Process As PROCESSENTRY32, Result As Long
    Snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
    If Snap <> -1 Then
        Process.dwSize = Len(Process)
        Result = Process32First(Snap, Process)
        Do Until Result = 0
            If InStr(1, UCase$(Process.szExeFile), "BARCODE.EXE") Then
                MsgBox "Läuft !"
                Exit Do
            End If
            Result = Process32Next(Snap, Process)
        Loop
    End If
    CloseHandle Snap
End Sub


Gruß
Nepumuk


Bild


Betrifft: AW: prüfen ob anderes Programm schon offen von: Johannes
Geschrieben am: 22.03.2005 21:31:23

Hallo Nepumuk,

das mit dem "VBA nur mit Macrorecorder" ist vieleicht ein wenig tiefgestapelt - aber angesichts der wirklich super Ideen die ich hier finde ist mir eine Selbsteinstufung "VBA gut" dann aber doch ein wenig viel - es würde mir eine Zwischeneinstufung eher zustehen - und da es die leider nicht gibt, dann doch lieber ein bischen bescheidener.

Danke vielmals und Gruß

Johannes


 Bild

Beiträge aus den Excel-Beispielen zum Thema "prüfen ob anderes Programm schon offen"