Deutsch
Forum

Unterschied shell und winexec

 

GDL
Hi,

in dem Zusammenhang von der Runtimegröße bin ich wieder auf ein altes Problem gestoßen.
KompilierenMarkierenSeparieren
Von den obigen Befehlen geht nur der letzte shell Befehl. Alle anderen starten das gerade laufende Programm neu.

Der einzige Unterschied des Moduls betrieb.exe zu den anderen Modulen ist der, dass betrieb.exe mit einem Ladedialog startet.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
07.11.2007  
 




Jörg
Sellmeyer
Hallo Georg,
So funktioniert es bei mir:

Hauptprogramm
KompilierenMarkierenSeparieren
Programm zwei:prog2.prc
KompilierenMarkierenSeparieren
Declare Test$
Test$ = Dies ist ein zweiter Test
MessageBox(Ich bin Programm 2,Test$,0)

Programm drei:prog3.prc
KompilierenMarkierenSeparieren
Declare Test$
Test$ = Dies ist ein dritter Test
MessageBox(Ich bin Programm 3,Test$,0)

Die beiden letzten müssen kompiliert im gleichen Verzeichnis wie die Exe aus dem Hauptprogramm liegen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.11.2007  
 




Jörg
Sellmeyer
Ich hab noch was korrigiert!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.11.2007  
 




GDL
Hallo Jörg,

mein obiges Beispiel geht auch ohne dem prc nicht.Ein einfaches winexex(blabla.exe,1)
geht nicht, wenn blabla.exe mit nem Ladedialog beginnt.

und auch was roland mit

WinExec(startmenue.exe diagnose_ports.prc, 1)
meinte,

geht nur wenn beide Programme unterschiedliche Variablennamen nutzen.
Bei declare hdll& in startmenu.prf und declare hdll& in xyz.prf usw. hagelts ständig fehlermeldungen mit doppelt declariert.
Anscheinend sind die Programme doch nicht 100%ig auseinander dann.Noch interessanter wird es wenn noch ein drittes unabhängiges Programm dann benötigt wird.
Ich werde nur noch überschüttet mit doppelten declarationen.
Ich habe Monate gebraucht dass ich möglichst schnell laufend Einleseergebnisse von ausserhalb bekomme. Jetzt wo es endlich einigermassen geht zerreiß ich das ganze nimmer.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
07.11.2007  
 




Jörg
Sellmeyer
Ich habs nochmal aktualisiert. Da gibts aber keine Meckereien wg. doppelter Variablen
Du mußt Dir wahrscheinlich mal ein Struktogramm machen, um zu sehen, was Deine einzelnen Module machen sollen.

Achja, wenn Du Dein eigenes Programm nochmal aufrufen willst, bist Du mit Par$(0) immer auf der richtigen Seite!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.11.2007  
 




Thomas
Freier
Laufen die Programme auch mit XProfan 9 ?
Da ist die doppelte Declarierung nicht so streng oder es war bei XProfan 8.
 
Gruß Thomas
Windows XP SP2, XProfan X2
07.11.2007  
 




GDL
Das Problem ist das das total unterschiedliche in sich abgeschlossene Programme sind, die als prc von einer anderen exe aus gestartet werden sollen.

Aber um zu meinem ursprünglichen Problem zurückzukommen.

In startmenue.exe rufe ich in der Hauptschleife betrieb.exe auf
KompilierenMarkierenSeparieren
elseif (menuitem(200)) or (getfocus(starten&[1]))

clearlist statbox&
clear adressen%
bereich$=Betrieb
statistik
clearclip
putclip ja
winexec(astart$+betrieb.exe,1)
shell astart$+betrieb.exe
chdir datenordner$

Dies geht aber nur mit shell .....
Nehme ich winexec......... wird komischerweise startmenue ein 2tes mal statt betrieb.exe gestartet.

Ich kann alle Programme einwandfrei mit winexec starten, solange die aufzurufenden Programme nicht mit einem Ladedialog in irgendeinem Zusammenhang starten.
Lass ich den Ladedialog weg lässt sich betrieb.exe auch mit winexec starten.

ich habe jetzt nur diese Zeilen zur betrieb.exe gemacht.
KompilierenMarkierenSeparieren
ich kann diese zeilen als exe nur mit shell aufrufen.Winexec und winexecwait gehen nicht.
Was noch geht ist mittels run aufzurufen.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
07.11.2007  
 




GDL
@Jörg,

vielleicht reden wir einander vorbei.Meine Module sind kommplett eigenständige Exe Dateien in einem Komplettprogramm aus 10 Exen.
Programm bezieht sich bei mir nicht auf eine einzelne EXE sondern auf mehrere eigenständige Unterprogramme jede als exe.

Servus
Georg

zz.jpg  
95 kB
Hochgeladen:07.11.2007
Ladeanzahl100
Herunterladen
 
Windows7 Xprofan 8,9,10 [...]  [...] 
07.11.2007  
 




Jörg
Sellmeyer
Genau, aber Du willst doch die Exen nicht, sondern stattdessen prc-Dateien, oder?
Also brauchst Du nur noch Startmenü.exe und der Rest besteht aus betrieb.prc, diagnose_ports.prc, Gleisbau.prc oder was auch immer.
Wenn eins dieser Module gestartet werden soll, brauchst Du es nur mit
KompilierenMarkierenSeparieren
WinExec(Par$(0) +   + ModulName$,1)

starten.
Oder eben mit Shell, WinExecWait...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.11.2007  
 




RGH
Hallo Georg,

das klingt alles äußerst seltsam.
Was steht denn bei Dir in der Variablen astart$ drin? Ich nehme an der Programmpfad mit abschließendem Backslash.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.11.2007  
 




RGH
Hallo Georg,

ich kann Deine Probleme nicht nachvollziehen: Ich habe Dein BETRIEB.EXE exakt so, wie Du es oben gelistet hast, erzeugt. Folgendes Programm funktioniert bei allen drei Aufrufen völlig problemlos:
KompilierenMarkierenSeparieren
Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.11.2007  
 




GDL
Genau und jetzt schliesst sich wida der Kreis.

Sobald die prf Code der einzelnen Module die selben Variablennamen haben hagelts bei mir Fehlermeldungen mit Doppelte declarationen.

Und dieser codeteil als exe oder als prc lässt sich gar nicht öffnen
KompilierenMarkierenSeparieren
In diesem Fall startet das aufrufende Programm ein 2tes mal.
Dieser Codeteil läßt sich nur als exe und nur mit shell starten.

Beispiel für oben

Programm start.prf hat declare a&
Programm bunt.prf hat declare a&

Programm start wird zur exe gelinkt und und Programm bunt zu pcr compiliert.

gebe ich im Code start dann ein

winexec(start.exe bunt.prc,1)
kommt sofort beim Starten von bunt die Fehlermeldung Doppelte declaration a&

Servus
Georg

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
07.11.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.224 Betrachtungen

Unbenanntvor 0 min.
kustg10.05.2019
rquindt16.03.2018
Walter30.01.2018
GC5704.08.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie