ExamineProcesses()
While NextProcess()
If LCase(GetProcessName())="testprogramm.exe"
rennt=1
EndIf
Wend
If rennt
MessageRequester("Testprogramm","Läuft",0)
Else
MessageRequester("Läuft","Läuft nicht",0)
EndIf
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Procedure OnlyOne(MutexName.s)
Protected result.l = CreateMutex_(0, 0, @MutexName)
If GetLastError_() = #ERROR_ALREADY_EXISTS
ReleaseMutex_(result)
CloseHandle_(result)
End
EndIf
ProcedureReturn result
EndProcedure
Define.l MyMutex = OnlyOne("{8134EB66-4D60-4E1E-8F0D-582E6173580C}"); Beispiel GUID, bitte selber eine erstellen
; am Programmende, das passiert bei der Lib automatisch, im Code muß man das leider manuell machen
CloseHandle_(MyMutex)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
bluejoke hat geschrieben:Ich denke er benötigt diese Funktion für fremde Programme, nicht für eigene.
Dann hab ich es verkehrt verstanden.
Dann sollte er lieber durch die Prozesse iterieren, das sollte ja auch
irgendwie unter Win9x möglich sein. FindWindow ist jedenfalls mit Vorsicht zu
geniessen, gibt schnell "Falschfindungen"
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
bluejoke hat geschrieben:Die Funktion von Thorsten überprüft doch die Prozesse, nicht die Windows - ganz unten, der letzte Post ist doch was Rico meint.
Okay, gewonnen
Warum lädt er in dem Code die Kernel32.dll, sind doch alle API-Funktionen
verfügbar, oder soll das für eine Demo-Version sein?
Hab den Source dort mal überarbeitet
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
bluejoke hat Recht - ich meinte den letzten Post in dem Beitrag.
Ich will ein Auto-Update in mein Programm integrieren und versuchte mich mit dem Code aus dem Thread http://www.purebasic.fr/german/viewtopi ... r&start=10
(auch wieder der letzte Post). Dabei wird eben ein zweites Programm geladen und das eigentliche Programm muss beendet sein, damit die ganze Sache geht. Leider funzte das mit dem "If AppRunning=0" nicht, so dass ich einen Ersatz suchte.
;Anwendung nur einmal starten zulassen
If AppRunning("anwendung.exe")
MessageRequester("Anwendung","Anwendung wurde bereits gestartet!",#MB_ICONASTERISK)
End
EndIf