Autor | Thema: Winexec verbessert | | Datum:22.05.01 13:08 
(alexander.gall@web.de) | |
In letzter Zeit habe ich hier mehrmals Forenbeiträge zum Thema Winexec veröffentlicht, weil ich einige
Probleme damit hatte. Falls es jemandem ähnlich geht wie mir, hier ein kleiner Trick, den ich
herausgefunden habe. Mit seiner Hilfe lassen sich fast alle Probleme mit den Befehlen Winexec, Shell und
Run elegant umgehen:
Mit Shell "Notepad Brief.txt" wird die Datei Brief.txt geöffnet. Die bessere Methode ist aber in vielen Fällen
Shell "Explorer Brief.txt". Mit diesem Befehl wird der Windows-Explorer gestartet und mit dem Öffnen der
Datei Brief.txt beauftragt. Das gleiche geht mit allen Arten von Dateien, auch mit EXE- und LNK-Dateien.
Vorteile:
1. Wenn der Programmierer nicht weiß, mit welcher Anwendung ein bestimmter Dateityp auf dem PC des
Benutzers verknüpft ist, so stand er bisher im Regen. Mit der neuen Methode startet Windows automatisch
die richtige Anwendung.
2. Verknüpfungen (.lnk) ließen sich bisher nur öffnen, wenn der Programmierer gut genug war, ihre jeweiligen
Zieldateien aus dem Programmcode der Verknüpfung herauszulesen. Jetzt öffnet Windows automatisch die
verknüpfte Datei.
3. Die bisherige Verwendung von Winexec, Shell und Run ließ keinen Zugriff auf die Windows-Ressourcen
zu. Damit meine ich, dass jetzt, anders als früher, z.B. der "Anwendung wählen"-Dialog erscheint, wenn
Windows den Dateityp nicht kennt.
4. Neuerdings können auch Dateien geöffnet werden, deren Pfad Leerzeichen enthält. Bisher führte dies
meist zu einem Fehler, weil das Leerzeichen hier ein Symbol für das Ende des Dateinamens ist. Die neue
Methode hat damit hingegen keine Probleme.
5. Sehr interessant ist, dass jetzt sogar Ordner geöffnet werden können. Shell "Explorer C:\Windows" öffnet
also den Windows-Ordner.
Nachteile:
1. Unverständlicherweise versucht Windows die angegebene Datei immer zuerst mit dem Internet Explorer
zu starten, so dass z.B. TXT- und JPG-Dateien erst mit einem Klick auf das "Wechseln zu"-Icon in den
richtigen Anwendungen landen und eine lästige Abfrage erscheint, ob die Datei wirklich geöffnet werden soll.
Diese lässt sich aber meist abschalten.
2. Wie schon die alte Methode ist auch die neue leider nicht in der Lage, Programme zu starten, die auf
DirectX basieren - also vor allem Spiele.
Sollte jemand die Gründe für die beiden Nachteile dieser Methode kennen oder z.B. wissen, wie ein Aufruf des Internet Explorers verhindert werden kann, so wäre ich für Hinweise sehr
dankbar.
|
| | Datum:22.05.01 14:05 
(rgh-soft@t-online.de) | |
Hallo,
man sollte sich beie neueren PROFAN²-Versionen (ab 6.5) auch die funktion @ShellExec anschauen:
@ShellExec(S1,S2,N)
S1: String - Dokument/Programm (ggf. mit Pfad)
S2: String - Modus ("open", "print", "explore")
N : Integer - Anzeigemodus (wie bei @WinExec)
Ergebnis: Integer
Die Funktion SHELLEXEC ermöglich das Ausführen eines
Dokumentes, indem die entsprechende Anwendung gestartet wird.
Der Rückgabewert und Anzeigemodus entspricht dem von
@WinExec.
- Bei "open" wird das Dokument mit der verknüpften Anwendung geöffnet.
- Bei "print" wird es ausgedruckt. Ist dies nicht möglich wird es geöffnet.
- Bei "explore" muß S1 ein Pfad sein. Der Explorer wird in diesem Pfad geöffnet.
|
| | Datum: 22.05.01 15:13 
(Pascalxd@owl-online.de) | |
Hallo Leute!
Ganz genau genommen: Der Parameter S2 (String - Modus) gibt die auszuführende Shell-Verknüpfung in der Registry an. Bei manchen Dateien ginge demnach auch 'Edit' für 'Bearbeiten'.
Bei Leuten, die an diesen Reg-Einträgen rumbasteln, kann es sein, daß Shellexec bei den betroffenen Dateitypen nicht mehr wie gewohnt funktioniert.
Andersrum kann man so aber auch selbstangelegte ShellCommands ausführen.
Vielleicht interessiert's jemanden... ;-)
Pascal
|
|
|