%MAX_PATH = 260 ' max. length of full pathname DECLARE FUNCTION GetModuleFileName LIB "KERNEL32.DLL" ALIAS "GetModuleFileNameA" (BYVAL hModule AS DWORD, lpFileName AS ASCIIZ, BYVAL nSize AS DWORD) AS DWORD DECLARE FUNCTION GetModuleHandle LIB "KERNEL32.DLL" ALIAS "GetModuleHandleA" (lpModuleName AS ASCIIZ) AS DWORD FUNCTION ModuleNaam() AS STRING LOCAL Succes AS LONG DIM TmpAsciiz AS ASCIIZ * %MAX_PATH Succes= GetModuleFileName(GetModuleHandle(BYVAL 0&), TmpAsciiz, SIZEOF(TmpAsciiz)) IF Succes<>0 THEN FUNCTION=TmpAsciiz ELSE FUNCTION="Naam kon niet worden bepaald" END IF END FUNCTION FUNCTION PBMAIN AS LONG LOCAL app AS STRING LOCAL Resultaat AS LONG LOCAL MarkerFile AS STRING 'haal de applicatie aanduiding van de command-line op app = COMMAND$ MarkerFile = Modulenaam+".startingapp" 'plaats een markerfile in dezelfde directory als dit programma (omshell), met extra extensie ERRCLEAR OPEN MarkerFile FOR OUTPUT AS #1 IF ERR<>0 THEN PRINT "Fout bij aanmaken MarkerFile bestand":BEEP: WAITKEY$: EXIT FUNCTION PRINT #1,app+$CRLF+DATE$+" = "+TIME$ CLOSE #1 PRINT MarkerFile 'shell naar de applicatie synchoon (=wachten tot -ie klaar is) SHELL app 'verwijder de markerfile weer, eerst fouten even wissen ERRCLEAR KILL MarkerFile IF ERR<>0 THEN PRINT "Fout bij verwijderen MarkerFile bestand":BEEP: WAITKEY$: EXIT FUNCTION BEEP END FUNCTION