MortScript .mscr starten ohne zugehörige .exe

  • Zitat


    Zitat von Manni 123:
    Werde ich im TeamSkin V6.1 gleich ändern , wir sparen wo wir nur können.


    Wenn ihr wirklich noch mehr sparen wollt, dann benutzt doch noch die Parameterübergabe.
    So können dann Scripte auch noch zusammengefasst werden, die vom gleichen Thema sind.
    In meinem obigen Beispiel würde var=5 zur Folge haben, in die Subroutine Nr.5 zu verzweigen.


    Das wird jetzt zwar keinen Speicherplatzgewinn bringen, aber mehr Übersicht, und weniger
    mscr-Dateien
    ;)

  • Um zu sparen muss ich das anders angehen


    In der PFSpecial.skn
    MORT_PFAD: "\My Flash Disk\programme\MortScript\MortScript";
    MORT_PFAD2: "\My Flash Disk\programme\MortScript";



    In der PFSkin.skn
    Launch: "$MORT_PFAD$";
    params: "\"$MORT_PFAD2$\Pink.mscr\"";


    Wir haben im TeamSkin V6.1 PFSkin.skn immerhin 11 Koord und 12 Mort Aufrufe , wenn man sparen muss macht das schon was aus.





    @ Panik , das ist für mich wieder zu hoch , ich weis nicht im geringsten was Du meinst.[Blockierte Grafik: http://i44.tinypic.com/2di3f2u.gif]



    Gruß Manni

  • Parameterübergabe oder Übergabe von Argumenten an ein Script oder ein Programm
    bedeutet nichts anderes, als der aufgerufenen Zielanwendung schon ein paar "Dinge"
    mit auf den Weg zu geben, was sie tun soll.
    Du sendest der Mortscript.exe bisher auch ein *.mscr
    Somit hast du ihr schon mal EIN Argument/Parameter übergeben.
    Fasst du nun 5 Scripte zusammen in 5 Subs eines Scriptes musst du dem Script bei Aufruf nur mitteilen,
    welches Sub du anspringen willst - mit einem weiteren Argument.


    Im konkreten Fall: Schau dir unbedingt mal das Mortscript und die Koordanweisungen'
    im GoPal5 Changer von buchholz an!!! Da ist alles drin und gesagt.
    Der Changer arbeitet nur mit einem Script, obwohl er vorher vielleicht 30 EXE und MSCR hatte.
    Du hättest ihn wohl auf 30 MSCR gebracht. Es geht aber auch mit nur EINER MSCR.
    Es können meinethalben auch fünf sein, wenn die Performance besser würde ;)


    Aber ich schreibe hier soviel. Letztlich macht ihr doch bei Koord nichts anderes:
    Koord ist nur EIN Programm, dem ihr etliche Argumente mit auf den Weg gebt und es tut dann
    dementsprechend das Gewünschte.


    Mit Mortscript ist es nicht anders...

  • Das wird für außerhalb von GP5 locker gehen das ich mehrere Scripts zusammen fasse und beim Aufruf durch Koord-Menu oder Schumann-Menu(?) mit Parameterübergabe das zusammengefasste Script an der richtigen stelle starte und aussteigen lasse aber in GP5 mit großen Scripts rumhantieren , wir stoßen so schon andauert am Speicherende , ein paar POI´s zu viel und das war es mit GP5 .
    Um das zu verhindern müsste ich zusammen gefasste Scripts für die Menüs außerhalb von GP5 haben und einzelne Scripts für innerhalb von GP5 , dann habe ich noch mehr Scripts oder zumindest genau so viel , GoPal5 ist eben für die 128 MB Navis gedacht und nicht für die mit nur 64 MB , da kann man nicht mal meckern wenn Medion es nicht anders vorsieht .


    Edit : Machbar ist da mit Sicherheit so einiges , z.B. die Buttontauscherei mach ich ja nicht unter GP5 , wozu auch GP5 muss danach eh neu gestartet werden .
    Das muss ich mir in aller Ruhe reintun .


    Panik ich danke dir



    Gruß Manni

  • Hi Panik


    Die var Parameterangabe brauche ich aber für das Koord-Menu und Schumann-Menu , geht das genauso mit der Zeichenfolge ?
    Wohl eher nicht oder ?


    Ich weis , muss ich probieren , bei Fehlern kann ich nur lernen . :)


    Edit: Ach so ja , ich schaue in Buchholz GoPal Changer nach, zumindest schon mal für das Koor-Menu .


    Edit 2: Im GoPal Chaner von Buchholz findet durch das Kood-Menu keine Parameterangabe statt, das hast Du alles im Script geregelt , ich weis das hast Du ja nicht gesagt.


    Wie gebe ich im Koord-Menu die var Parameter an ?


    Für Schumann-Menu brauche ich es eigentlich nicht , da werden eh nur Progis gestartet.


    Gruß Manni

  • Für das Schumann-Menü hab ich es noch gar nicht getestet, wie es mit der Parameterübergabe aussieht. Nur das hab ich im Betrieb:
    Command = "\Storage Card\User\Usermenue\Mortscript\steuerung.exe" "steuerarg=32"
    Allerdings mit EXE und neuer Mortscript-Beta.
    Ist bei mir noch Baustelle, um es zu kürzen ;)


    Mit Koord z.B. so
    window=0 SendKey=\l\My Flash Disk\MortScript\MortScript.exe:"\My Flash Disk\MortScript\changer_control.mscr" paramter1="horizonte" paramter2="Berge" paramter3=1|


    Das ist der Zeilenabschnitt in einer Textdatei.
    Um es direkt im Code einer XML oder Skindatei unterzubringen bei Parameter, musst etwas "spielen", wenn du überhaupt den Umweg über Koord gehen willst.

  • Hallo Panik

    Ich habe erst mal nur zwei Scripts zusammen gefügt , klappt hervorragend .


    Im SkinMenu3 (Koord) in der Datei SkinMenu_Steuerung.txt unter anderem versteht sich.


    Code
    window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Autopfeile-Mapfarben.mscr" Parameter=1 |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Autopfeile-Mapfarben.mscr" Parameter=2 |





    im Script M_Autopfeile-Mapfarben.mscr


    Code
    #####################################################             Pfeiltauscher  by  TeamSkin          #			#################################################### Sound = "\Storage Card\Changer\sounds"If (Parameter=1)----Endif#########################################################          Mapfarben Auswahl  by  TeamSkin       #########################################################If (Parameter=2)----Endif


    Da habe ich endlich wieder was zum basteln. :D


    Gruß Manni

  • So kann ich die Koord SkinMenu_Steuerung.txt lesen , Variable als Namen anstatt Zahl , Zahlen habe ich Morgen vergessen und Zettel verliere ich. :D


    In der SkinMenu_Steuerung.txt

    Code
    window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="StartMenu" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="NavuButtons" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="KartenButtons" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="SkinButtons" |


    In der M_Menu_Karten_Navi_Changer_Buttons.mscr mit vier zusammengefügte Scripts.

    Code
    #######################################  StartButtonsTauscher für GoPal 5  #######################################If  (Parameter eq "StartMenu")---EndIf####################################   Kartenbutton Tauscher   ####################################If (Parameter eq "KartenButtons")---EndIf#####################################################   NavigationsButton Tauscher für GoPal 5   #####################################################If (Parameter eq "NavuButtons")---EndIf######################################## SkinMenuTauscher für GoPal 5  ########################################If (Parameter eq "SkinButtons")---EndIf


    Gruß Manni

  • Hallo Manni 123 !


    Das sieht doch schon mal sehr gut und übersichtlich aus - prima.
    (Gut ist es, daß du aussagekräftige Strings statt Zahlen verwendest.
    Numerische Werte sind nur sinnvoll, wo sie auch verarbeitet werden.)


    So kannst du dann auch wiederkehrende Abläufe , die vorher
    in jedem Script gleich bzw. ähnlich waren, in eine weitere Subroutine
    oder Funktion packen und sie stehen allen Teilabläufen gleichermaßen
    zur Verfügung.


    Was ich an deiner Stelle noch machen würde z.B.:


    If (Parameter eq "StartMenu")
    call sub startmenue
    EndIf
    sub startmenue
    message("hier ist das Startmenü")
    endsub


    statt:



    If (Parameter eq "StartMenu")
    message("hier ist das Startmenü")
    EndIf


    Also wo es geht, subroutinen bilden, denn die kannst du später,
    wie du magst, verketten.

    Einmal editiert, zuletzt von Panik ()

  • Hallo Panik


    So sieht es aus wenn aufgeräumt ist und sparen tut es auch noch aber es ist bestimmt noch mehr drin , ich bin immer noch der Anfänger der Koord und Mort Script-Geschichte . :)


    Code
    // Koord-Steuerungsdatei// in Ordner SkinMenu2// Das ist Zeile 3 window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="StartMenu" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Back_Splasch_Scheinw_Panel.mscr" Parameter="Splaschsreens" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="NavuButtons" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="KartenButtons" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Back_Splasch_Scheinw_Panel.mscr" Parameter="Backrounds" |window=0 SendKey=\l\My Flash Disk\programme\MortScript\MortScript.exe:"\My Flash Disk\programme\MortScript\M_Menu_Karten_Navi_Changer_Buttons.mscr" Parameter="SkinButtons" |*include=\My Flash Disk\programme\SkinMenu\SkinMenu\SkinMenu1.txt*~// Das ist Zeile 12


    das ist die M_Menu_Karten_Navi_Changer_Buttons.mscr


    Code
    #############################################  StartMenu-Buttons-Tauscher für GoPal 5  #############################################Sound = "\Storage Card\Changer\sounds"If  (Parameter eq "StartMenu")Dirliste = "MENU"call("Pfadliste")auswahl = Choice ("Menütauscher","StartMenü Tauscher^NL^Diese Version wurde für den TEAMSKIN erstellt", Standard, 0, liste)If (auswahl)	XCopy ("\Storage Card\Changer\Menu" \ liste[auswahl] \ "*.*", "\My Flash Disk\Startmenue\",1,1)	sleep (300)  	Playsound(%Sound%&"\INFBEG.WAV")EndIfEndIf#####################################   Karten-Button-Tauscher   #####################################If (Parameter eq "KartenButtons")Dirliste = "Buttons"call("Pfadliste")	auswahl = Choice ("Kartenbuttontauscher","Kartenbutton Tauscher^NL^Diese Version wurde für den TEAMSKIN erstellt", Standard, 0, liste)If (auswahl)	XCopy ("\Storage Card\Changer\Buttons" \ liste[auswahl] \ "*.*", "\My Flash Disk\navigation\Skin480x272\PPSkin\480x272\PPSkin\",1)	sleep (300)	Playsound(%Sound%&"\INFBEG.WAV")EndIfEndIf######################################################   Navigations-Button-Tauscher für GoPal 5   ######################################################If (Parameter eq "NavuButtons")Dirliste = "Navigation"call("Pfadliste")	auswahl = Choice ("Navigationbuttontauscher","Navigationbutton Tauscher^NL^Diese Version wurde für den TEAMSKIN erstellt", Standard, 0, liste)If (auswahl)	XCopy ("\Storage Card\Changer\Navigation" \ liste[auswahl] \ "*.*", "\My Flash Disk\navigation\Skin480x272\PPSkin\480x272\",1,1)	sleep (300)      Playsound(%Sound%&"\INFBEG.WAV")EndIfEndIf################################################# SkinMenu-Buttons-Tauscher für GoPal 5  #################################################If (Parameter eq "SkinButtons")Dirliste = "Changer Menu"call("Pfadliste")auswahl = Choice ("Menütauscher","SkinMenü Tauscher^NL^Diese Version wurde für den TEAMSKIN erstellt", Standard, 0, liste)If (auswahl)	XCopy ("\Storage Card\Changer\Changer Menu" \ liste[auswahl] \ "*.*", "\My Flash Disk\programme\SkinMenu\",1,1)	XCopy ("\Storage Card\Changer\Changer Menu" \ liste[auswahl] \ "*.*", "\My Flash Disk\programme\SkinMenu\SkinMenu\",1,1)	sleep (300)      Playsound(%Sound%&"\INFBEG.WAV")EndIfEndIfsub Pfadlisteclear (liste)ForEach path in directories ("\Storage Card\Changer\" & Dirliste & "\*.*" )                      dir = Part(path, "\", -1)	liste[MaxIndex(liste) + 1] = Part(dir, "\", -1)EndForEachEndSub



    Man könnte die Variable Dirliste auch noch von der Koord-Steuerungsdatei als zweiten Parameter übergeben lassen aber wozu , dadurch würde die Koord-Steuerungsdatei für uneingeweihte wieder undurchsichtig .


    Der Ordner MortScript ist jetzt von 220 auf 99 Files geschrumpft und von 1.46 MB auf 628 KB , ich denke schon das sich das gelohnt hat.


    Ein bisschen geht ja noch was. :D

    Gruß Manni

  • Hallo Manni,


    Respekt Alder.... Du mauserst Dich zum "Eingeweihten" in Sachen Mort und Koord!!! :thumbup:

    Gruß
    Pitter


    ...ich bin nicht die Signatur... ich putz hier nur! ;D

  • Ich möchte Manni (und auch allen anderen Helfern aus diesem Thread) hiermit auch meine höchste Anerkennung aussprechen. Habe ich doch zuerst noch so nebenbei den Thread verfolgt und gemeint ... na ja, ganz nett aber brauchste nicht ... so habe ich nun das WE genutzt und meine "Exen" (nicht Echsen!! :D ) ausrangiert und dies hätte ich ohne den Ehrgeiz und der Begeisterung von Manni niemals getan, weil ich generell ein fauler Hund bin. ;)


    THX to Mort-Manni

    Fahrt nicht schneller als Euer Navi Euch warnen kann!

  • Wird wirklich immer besser :thumbup:


    Mir kam noch ein Gedanke, als ich den Sinn und
    Zweck deines Menüs sah:
    Für das Aussehen kannst du vielleicht auf so
    einen Dialog zurückgreifen (siehe oberes Bild zum poiwarner)


    Menü mit Vorauswahl


    D.h. , du hast mehrere Hauptpunkte, auf die du doppelklickst.
    Dann öffnet sich zu dem Hauptpunkt die eingelesenen
    Unterpunkte, wovon einer per Doppelklick gewählt wird.


    Entweder da passiert schon die Kopieraktion oder,
    für alle Hauptpunkte gemeinsam, wenn du abschliessend
    auf OK drückst. Was gerade aktuell ist,
    muss in eine ini-Datei, die du bei Scriptbeginn einliest
    und Scriptende schreibst ...
    Viel Spaß ;)