Search  

   

Latest News  

Problemstellung:Wenn man Etiketten drucken will steht man oft vor einigen Problemen.1. Man möchte nur ein paar Etiketten drucken und beim nächsten Druck braucht man wieder   ein neues Blatt weil freie...
   

Latest Forumposts  

  • Keine Beiträge vorhanden
   

Kommentare  

Tut mir leid Hella, ich kann Dir nicht folgen? 13.04.2017 - 14.04.2017 ergibt bei mir 1 13.04.2017 -...
Gast - Hella
Hallo, Berechne wie folgt, ob "zu früh" oder "zu spät" Rückmeldet. Früher sollte auch mit negativer ...
Gast - Hella
Hallo, mit negativen Werten meine ich z.B. -5 Tage (ohne Wochenende) u.ä. Zur Zeit wird nur die 0 au...
Hallo Hella, wie negative Werte? Kannst Du es erläutern was Du machen willst? Gruß Tommy
Gast - Hella
Hallo, ich bräuchte auch negative Werte bei der Anzahl, wie kann man das realisieren? Liebe Grüße He...
   

Counter  

1114561
HeuteHeute160
GesternGestern1132
Diese WocheDiese Woche1292
Dieser MonatDieser Monat22773
GesamtGesamt1114561
Highest 07.12.2017 : 1250
US
UNITED STATES
US

This page uses the IP-to-Country Database provided by WebHosting.Info (http://www.webhosting.info), available from http://ip-to-country.webhosting.info

   

Download Statistik  

Diese Site enthält 187 Downloads in 30 Kategorien. Gesamtdownloads bisher: 234295
   
Free live stats and visitor counter for Joomla, Wordpress, Drupal, Magento and Prestashop
   

Login

   

User Online

Total: 76 Members: 0 Guests: 76
No members online
   

Beiträge

Prüfung ob ein Programm bereits läuft

Bewertung:  / 5
SchwachSuper 
Details

Problemstellung:

Wie kann ich mit Access prüfen, ob ein bestimmtes Programm bereits läuft?
Lösung mittels API Funktionen

Private Declare Function CreateToolhelpSnapshot Lib _
                          "Kernel32" Alias "CreateToolhelp32Snapshot" ( _
                          ByVal lFlgas As Long, ByVal lProcessID As Long) As Long
 
Private Declare Function ProcessFirst Lib "Kernel32" _
                          Alias "Process32First" (ByVal hSnapshot As Long, _
                          uProcess As PROCESSENTRY32) As Long
 
Private Declare Function ProcessNext Lib "Kernel32" _
                          Alias "Process32Next" (ByVal hSnapshot As Long, _
                          uProcess As PROCESSENTRY32) As Long
 
Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)
 
Private Const TH32CS_SNAPPROCESS As Long = 2&
 Private Const MAX_PATH As Long = 260
 
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
 
' Prüft, ob eine EXE-Datei bereits ausgeführt wird
 Private Function IsEXERunning(ByVal sFilename As String) As Long
 
    Dim lSnapshot As Long
     Dim uProcess As PROCESSENTRY32
     Dim nResult As Long
 
    ' "Snapshot" des aktuellen Prozess ermitteln
     lSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
     If lSnapshot <> 0 Then
         uProcess.dwSize = Len(uProcess)
 
        ' Ersten Prozess ermitteln
         nResult = ProcessFirst(lSnapshot, uProcess)
 
        Do Until nResult = 0
             ' Prozessliste durchlaufen
             If InStr(LCase$(uProcess.szexeFile), LCase$(sFilename)) > 0 Then
                 ' Jepp - EXE gefunden
                 IsEXERunning = True
                 Exit Do
             End If
 
            ' nächster Prozess
             nResult = ProcessNext(lSnapshot, uProcess)
         Loop
 
        ' Handle schliessen
         CloseHandle lSnapshot
     End If
End Function

Aufruf:

Dim AppRun As Boolean
 If IsEXERunning("winword.exe") Then AppRun = True 'z.B. WinWord 

Die Variable "AppRun" würde den Wert True annehmen wenn Word bereits läuft.

Einen Kommentar verfassen

Als Gast kommentieren

0 / 300 Zeichen Beschränkung
Dein Text sollte zwischen 10-300 Zeichen lang sein
Nutzungsbedingungen.

Personen in dieser Konversation

  • Gast - Thomas Keßler

    User Donti hat heraus gefunden das sich mit der Funktion<br />alle geöffneten Wordinstanzen schließen lassen.<br />z.B.:<br />

    If IsEXERunning("winword.exe" ) Then <br />   Dim oWord As Word.Application <br />   Set oWord = GetObject(, "Word.Application" ) <br />   With oWord <br />        .Application.Quit <br />   End With <br />   Set oWord = Nothing <br />End If