Autorun und Betriebssystemabfrage

  • Zitat von LigH

    Das sind aber alles DOS-Compiler. Mit denen kann man nicht auf die Windows-Registry zugreifen, und auch nicht ihr eigenes Fenster selbst verstecken. Für den Zweck wären sie also nutzlos.

    Au. Das wusste ich nicht. Denn bei SWAG war ein Beispiel, womit man zumindest feststellen konnte, ob Windows läuft. DOS greift auch nicht auf die Registry zu, sondern versucht eine Variable %OS% auszulesen.

    Zitat von LigH

    Das belastende Beiwerk eines Compilers macht nämlich bei so winzigen Aufgaben, wie sie hier besprochen wurden, mindestens noch 80% der Dateigröße dieser EXE aus.

    Von der Effektivität her gesehen ist dies sehr sehr viel.

    Zitat von LigH

    Obwohl - spielt ja heute keine Rolle mehr, ob es z.B. 400 oder 40'000 Bytes sind, oder?

    Eigentlich nicht. Wenn man bedenkt, dass man früher mit 640 kB Arbeitspeicher auskommen konnte und heute zum Teil 256 MB nicht mehr ausreichen...

    Zitat von LigH

    Deswegen habe ich ja so sehr auf die Optimierung der Batch-Datei gesetzt, um eine EXE vermeiden zu können.

    Die Autorun.inf sieht jetzt so aus:

    Code
    [autorun]  icon=dvd.ico  open=command.com /c start /m start.bat  shellexecute=start /min start.bat



    Die start.bat habe ich nicht weiter geändert.


    Im großen und ganzen ist das in Ordnung so.

    Für WinXP ist SHELLEXECUTE eine gute Lösung. Es blitzt ja nur ein Fenster auf. Ich denke, es ist der Aufruf des MPC.

    Bei Win98SE wird OPEN ausgeführt. Der Parameter /m hinter START führt dazu, dass die START.BAT minimiert ausgeführt wird. Deshalb sind nur ein Fenster der MS-DOS Eingabeaufforderung (COMMAND) und das Fenster beim Aufruf des MPC sichtbar.

    Zur weiteren Optimierung wäre deshalb zu überlegen/prüfen, ob in der Autorun.inf bei OPEN der Teil COMMAND /C wirklich benötigt wird. Ausserdem könnte man eventuell die Aufrufe des MPC minimieren.

    Der MPC startet unter Win98SE im Vollbild-Modus, unter WinXP im Normalfenster. Da muss ich noch den Schalter /fullscreen hinzufügen.

    Die Anleitung habe ich jetzt in die Homepage integriert.
    http://fr-an.de/vcdeasy/a08/index.htm

    Gruß Frank

  • Zitat von Fr_An

    Zur weiteren Optimierung wäre deshalb zu überlegen/prüfen, ob in der Autorun.inf bei OPEN der Teil COMMAND /C wirklich benötigt wird.

    Das Weglassen hat nur zur Folge, dass anstelle des Fenster "MS-DOS Eingabeaufforderung" ein Fenster "START" erscheint.

    Gruß Frank

  • Der Befehl "OPEN" kann nur Programme starten. Echte Programme oder Batch-Skripte (.COM / .EXE / .BAT / .CMD). Es ist damit nicht möglich, interne Befehle des Kommandointerpreters (wie DIR oder START) oder Dokumente (.MPG) direkt zu starten. Das ist auch der Grund dafür, dass ich die Aufrufe so zu optimieren versuche:

    - Wenn ich in der OPEN-Zeile die Batchdatei aufrufe, öffnet sich leider deren Fenster.
    - Um das Öffnen zu vermeiden, müsste ich es mit "START /MIN" aufrufen.
    - Um den internen START-Befehl überhaupt rufen zu können, muss ich ihn mit "COMMAND.COM /C" starten.

  • Zitat von Fr_An

    Und die COMMAND öffnet ihr eigenes Fenster.


    Na toll... Dann könnte man höchstens noch die Eigenschaften der Batch-Datei so einstellen, dass sie mit minimiertem Fenster gestartet wird - wodurch eine PIF-Datei erzeugt wird. Dumm wäre nur, wenn darin ein Laufwerksbuchstabe steht! Also doch ein Startprogramm.

    Zitat von Fr_An

    Könnte man die MPC-Aufrufe eigentlich minimieren?


    Wie - das MPC-Fenster minimiert starten? Dann würde man das Video nicht sehen.

    "Den Aufruf minimieren" würde ja heißen "die aufrufende Batch-Datei minimiert starten". Und das versuchen wir hier schon tagelang...

    Zitat von Fr_An

    Nachtrag: Das wäre nicht schlecht - http://de.wikipedia.org/wiki/XBasic


    Aha! Schau'n wir mal, welche Win32-Systemfunktionen das beherrscht...

    Offenbar setzt das Programm auf GNU-Win32 (MinGW) - kann also sein, dass es DLLs braucht, das wäre schlecht.

  • Zitat von LigH

    ... wodurch eine PIF-Datei erzeugt wird. ...

    Das hatte ich schon versucht. Das Ergebnis war: Nichts geht mehr! -> Reset.

    Zitat von LigH

    Also doch ein Startprogramm.

    Unter http://www.ww-a.de/pbcd1.htm gibt es einen CD-Starter mit Visual Basic und Power Basic Quellcode. Das könnte man eventuell als Anregung für den Programmaufruf nehmen.

    Zitat von LigH

    Wie - das MPC-Fenster minimiert starten? Dann würde man das Video nicht sehen.

    Ich meine damit das Fenster [Blockierte Grafik: http://fr-an.de/vcdeasy/c01/18.png].

    Zitat von LigH

    Offenbar setzt das Programm auf GNU-Win32 (MinGW)

    Ja schon, aber es wird über ein Setup installiert. Dummerweise habe ich nirgends eine Dokumentation gefunden.

    Na toll. Eine Console und ein integrated development envirenment. Leider habe ich keine Ahnung, was ich damit anfangen kann.

    Nachtrag:

    Was ich unter anderen noch gefunden habe:

    http://www.naughter.com/shelexec.html
    http://www.pro-support.de/htmlauto.shtml
    http://www.raumer-records.de/rainerschamel/downloads/

    PS:

    Es gibt doch hier einige Nutzer, welche programmieren können. Vielleicht kann einer davon noch etwas beisteuern. Sie werden aber vermutlich erst unter der Woche wieder aktiv sein, wenn ich über 500 km von meinem Rechner entfernt bin.

    Gruß Frank

  • Ich habe die SVCD so gebrannt und hoffe, dass der Bekannte damit zufrieden ist. Ein kleines Basic-Programm, welches die Funktion der Start.bat übernimmt, wäre natürlich ideal. Vielleicht findet sich noch jemand, der eines als Freeware zur Verfügung stellt.

    Ein Gedanke ist mir noch gekommen:

    Der Befehl SHELLEXECUTE soll ja ab Win2000 (oder WinME?) oder dem Internet Explorer 5 funktionieren. Ich habe Win98SE und den Internet Explorer 6. Trotz des IE6 wird der Befehl nicht ausgeführt sondern OPEN.

    Vielleicht könnte man bereits mit den Befehlen SHELLEXECUTE und OPEN indirekt eine Betriebssystemabfrage vornehmen und eine Autorun.inf wie folgt verwenden.

    Code
    [autorun]
      icon=dvd.ico
      open=mpc_98me\mplayerc.exe MPEG2\AVSEQ01.MPG
      shellexecute=mpc_2kxp\mplayerc.exe MPEG2\AVSEQ01.MPG



    Nachtrag:

    Auf der CD-RW hat ja alles prima funktioniert. Nun habe ich drei CD-R versucht, aber die laufen sich beim Laden des MPGs tot. Scheint also irgend etwas nicht zu stimmen.

    Gruß Frank

  • Ich habe es mächtig unterschätzt: Ganze 400 KB erzeugt Delphi! Zusammengepackt sind's imme rnoch 160 KB.

    http://www.ligh.de/software/AppStart.zip

    Ich hoffe, in der beigelegten INI-Datei sind ausreichend Hinweise zu finden. Aufruf ist einfach:

    OPEN=AppStart.exe AppStart.ini

    Wenn du "AppStart /?" aufrufst, meldet es die OS-Familie und -Version. Notwendig ist nur der Command-Eintrag pro Gruppe, der Rest darf fehlen.

  • Hallo,

    du möchtest eigentlich nur zwischen einem Windows9x basierendem System und Windows NT basierendem System unterscheiden, oder? Da gibt's die WinAPI Funktion GetVersionEx(), und auf dieser Seite hab ich ein paar Infos gefunden, demnach müsste bei allen Win9x System die PlatformID = 1 sein und bei WinNT System PlatformID = 2. Gibt's dazu ein Programm? Ja das gibt's, hab's gerade programmiert. Deine Autorun.ini sollte dann so aussehen:

    Zitat

    [autorun]
    icon=dvd.ico
    open=GetWindowsVersion.exe


    Und dann noch die beiden Dateien win9x.bat und winnt.cmd entsprechend editieren.

  • Im Grunde macht mein Programm auch nicht wesentlich mehr (siehe beigefügten Delphi-Quelltext: *.dpr); nur wird es wahrscheinlich an der Verwendung der TIniFile-Klasse liegen, dass Delphi den kompletten Runtime-Müll für Klassenverarbeitung mit einbindet.

    Ich könnte die INI auch als Textdatei auslesen, macht aber mehr Arbeit. Oder das Programm noch viel unflexibler und dadurch kleiner machen (bin eigentlich froh, dass es recht flexibel sein dürfte).

  • Bin vor einer knappen Stunde wieder zu Hause angekommen. Nur 5 Stunden für die 500 km von München bis hier. Werde mir morgen mal das Programm ansehen, LigH. Danke.

    Gruß Frank

  • Die Frage von firefox hab ich glatt übersehen - ääh, fileman:

    CALL sorgt dafür, eine Batchdatei aufzurufen, und nach deren Ende wieder nach dem CALL-Aufruf weiterzumachen. Würde man aus einer Batch-Datei eine andere ohne CALL aufrufen, dann würde nach Abschluss der aufgerufenen zweiten Batch-Datei die Ausführung beendet sein.

  • Zitat von Schlunz

    :ani_lol: Na das nenn ich dann mal ne zuenftige Markenpraegung

    Vielleicht sollten wir fileman in fireman oder foxman umbenennen? :lol:

    Ich bin nicht zum Testen gekommen. Wie oben geschrieben, hat das Öffnen der Autorun SVCD auf einmal nicht mehr geklappt.

    Da es noch einige andere Probleme gab, die auf einen Defekt in meinem Rechner hindeuteten, musste ich etwas austauschen und Win98SE neu installieren. Mit den Windows- oder nVidia(?)-Treibern funktioniert es auch nicht.

    Muss bald wieder nach München und komme erst zum 1. Mai wieder nach Hause. :(

    Nachtrag:

    Nach der Neuinstallation von Win98SE zeigt der MPC nicht mehr das Hintergrundbild wie in meiner Anleitung sondern dasselbe wie bei WinXP. Es werden auch nicht mehr zwei Fenster über einen längeren Zeitraum angezeigt, sondern es blinkt nur eines kurz auf. :(

    Gruß Frank

  • In der letzten Woche habe ich Appstart endlich ausprobiert. Leider hat es nicht funktioniert. Es kommt immer die Meldung, dass die aoostart.ini nicht gefunden wird, obwohl sie da ist, wo sie sein soll. Anscheinend kommt das Programm nicht mit der SVCD klar.

    Gruß Frank

  • Ich habe meine start.bat etwas abgeändert und lasse den mpc mit dem Parameter /CD aufrufen. Unter Win XP funktioniert es bis auf die Minimierung des CMD.EXE-Fensters. Unter Win98SE ohne DirectX kommt eine Fehlermeldung:

    Zitat

    Die Datei MPLAYER.EXE ist verknüpft mit dem fehlenden Export-DDRAW.DLL: DirectDrawCreateEx...

    Bei Win98SE mit DirectX 9.0b ruckelt Ton und Bild.

    Unter Win2000 konnte ich es auch kurz ausprobieren. Da gab die Fehlermeldung, dass der MPC für 2KXP keine zulässige Win32-Anwendung wäre.

    Gruß Frank

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!