Schauen ob Prozess existiert

Für allgemeine Fragen zur Programmierung mit PureBasic.
PMTheQuick
Beiträge: 630
Registriert: 05.05.2005 19:06

Schauen ob Prozess existiert

Beitrag von PMTheQuick »

HI,

folgende Frage: Ist es möglich, zu schauen, ob z.B. eine blabla.exe läuft? Ich bräuchte das nämlich dringend, da ich ein Programm brauche, welches folgendes macht: Zuerst wird ein Programm aufgerufen, was 1.exe und 2.exe aufruft... Soweit oso gut... Dann kontrolliert 2.exe ob 1.exe läuft, wenn nicht startet 2.exe 1.exe... 1. Macht das genau gleiche, nur die Zahlen sind umgekehrt... Und darum müsste ich irgendeine Prozessliste haben, die ich dann aussortieren kann... Wie geth das?

Gruss
PMTheQuick ;)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Schauen ob Prozess existiert

Beitrag von Kiffi »

> Schauen ob Prozess existiert

diese Prozess-Anfragen haben wir hier alle Nase lang. Seit doch so nett und
benutze erst mal die Board-Suche.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ansonsten: Warum greifen nicht alle deine prozesse auf C:\running.ini zu? Wenn ein Prozesss gestartet wird, setzt er seinen Schlüssel auf 0, vor dem beenden wieder auf 0.

Alle deine Prozesse können auf diese gemeinsame Datei zu und können schauen, ob die anderen Prozesse laufen oder nicht.



Professioneller geht's mit EnumWindows_() oder EnumProcess_() (oder so ähnlich).
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

?

Beitrag von Brügge »

wird das ein virus? (einen, den man nicht ausschalten kann?)

wenn ja ich weiß eine lösung des problems xD


datei1 erstellt eine datei namens dat1.txt in der datei schreibt es die aktuelle uhrzeit auf und datei2 öffnet die datei und guckt ob die uhrzeit mit der jetzigen übereinstimmt ... wenn nicht startet datei2 datei1 neu


und da ganze andersrum...

mfg!
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

Ich verwende diese Procedure. Stammt aus dem Forum:

Code: Alles auswählen

Structure PROCESSENTRY33 
  dwSize.l 
  cntUsage.l 
  th32ProcessID.l 
  th32DefaultHeapID.l 
  th32ModuleID.l 
  cntThreads.l 
  th32ParentProcessID.l 
  pcPriClassBase.l 
  dwFlags.l 
  szExeFile.b[#MAX_PATH] 
EndStructure 

Procedure SearchProcess(Name.s) 
  result.b = #False
  If OpenLibrary(0, "Kernel32.dll") 
    CreateToolhelpSnapshot = GetFunction(0, "CreateToolhelp32Snapshot") 
    ProcessFirst           = GetFunction(0, "Process32First") 
    ProcessNext            = GetFunction(0, "Process32Next") 
    If CreateToolhelpSnapshot And ProcessFirst And ProcessNext
      Process.PROCESSENTRY33\dwSize = SizeOf(PROCESSENTRY33) 
      Snapshot = CallFunctionFast(CreateToolhelpSnapshot, $2, 0) 
      If Snapshot 
        ProcessFound = CallFunctionFast(ProcessFirst, Snapshot, Process) 
        While ProcessFound 
          PN$ = UCase(PeekS(@Process\szExeFile))
          If UCase(Name) = GetFilePart(PN$) : result = #True : EndIf
          ProcessFound = CallFunctionFast(ProcessNext, Snapshot, Process) 
        Wend 
      EndIf 
      CloseHandle_(Snapshot) 
    EndIf 
    CloseLibrary(0) 
  EndIf
  ProcedureReturn result
EndProcedure 

If SearchProcess("EasySetup.exe")
  Debug "Programm läuft"
Else
  Debug "Programm nicht gefunden"
EndIf
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
PMTheQuick
Beiträge: 630
Registriert: 05.05.2005 19:06

Re: ?

Beitrag von PMTheQuick »

Brügge hat geschrieben:wird das ein virus? (einen, den man nicht ausschalten kann?)
Ne, ein Test Kopierschutz :lol:
Bis jetzt schiesst er bekannte Dienste ab (Nero u.s.w.)..
Dann blockiert er Debugger-Proggis (OlyDBG und so nur, wo man SVariablen auslesen und modden kann)
Bei einem Versuch den Copy-Protection auszuschalten, kommt "ILLEGAL REQUEST" und der Windows rechner wird gnadenlos heruntergefahren... Mit NtOpenFile(0,0,0,) oder wie auch immer...

Gruss
PMTheQuick ;)

EDIT: Keine Angst... Er soll nur als Test dienen! :lol: Und läuft auf einem VitualPC...
Antworten