Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 243086 (4522)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Winexec verbessert
Alexander Gall
| 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.
Roland G. Hülsmann
| 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.
Uwe ''Pascal'' Niemeier
| 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

| Zurück zur Übersicht