Also, da Windows auch nicht hexen kann, muss es doch ein System geben, z.B. sowas:
Wenn 1.Zeichen ein '"' dann suche bis zum nächsten '"' und der Programmname ist Alles dazwischen, ansonsten ist der Programmname alles bis zum ersten Leerzeichen oder Zeilenende, je nachdem, was zuerst kommt.
So, nun haben wir den Programmnamen. Nun sind dort vielleicht noch Environment-Variablen ('%Bla%') enthalten. Na ja, dann ersetzen wir die eben (Preisfrage: Woher bekommt man die Windows-Umgebungsvariablen? Da muss es doch was geben... Vielleicht sogar hier im Forum?
)
Nun haben wir also Programmnamen mit oder ohne Pfad. Und nun suchen wir. Nur wo? Unterm Bett? Auf der ganzen Festplatte? Bei Google? Nö, Windows ist ja genauso doof wie wir, also gibt es dafür eine Umgebungsvariable 'PATH', und das ist eine durch Semikolon getrennte Liste von Pfadnamen, in denen eine EXE gesucht wird. Ist sie in keinem der Pfade, dann existiert das Programm für Windows auch nicht.
Da die letzte Funktion ein wenig aufwändig ist (aber nicht wirklich), existiert vermutlich sogar ein
API-Aufruf dafür, sicher bin ich mir aber nicht.
Zitat von
SirThornberry:
...Dadurch das leerzeichen in Dateinamen erlaubt sind kannst du manchmal einfach nicht unterscheiden ob es Parameter sind oder ob der Teil noch zum Dateinamen gehört...
Ich bin mir nicht sicher, aber ich bezweifle, das ein Name wie:
Code:
Das ist aber ein bloeder Name.EXE
von Windows als einzelne Datei erkannt wird.
Code:
"Das ist aber ein bloeder Name.EXE"
aber schon, oder?