Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
goooofy
Anmeldungsdatum: 12.09.2005 Beiträge: 69
|
Verfasst am: 12.05.2010, 17:23 Titel: Konsolen-Popup schließt Grafik-Vollbild |
|
|
Und dann habe ich gleich noch ein unlösbares Problemchen...
Ich kompiliere mit -s gui um kein Konsolenfenster angezeigt zu bekommen.
Das Prog wird im Vollbild ausgeführt und enthält an einigen Stellen SHELL-Anweisungen. Sobald eine SHELL (z.B. SHELL "cscript.exe ...") ausgefürt wird, wird das Vollbild minimiert und es ist kurz die Konsole zu sehen, die sich aber gleich wieder schließt. So ist ein Betrieb im Vollbild natürlich nicht möglich. Das Konsolenfenster offen lassen (also ohne -s gui) möchte ich aber auch nicht, da das Prog wahlweise auch im Fenster ohne dieses lästige Fenster angezeigt zu bekommen laufen soll.
Gibt es vielleicht eine Möglichkeit, die Konsole "unsichtbar" offen zu lassen oder hat jemand eine andere Lösung parat? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 12.05.2010, 20:30 Titel: |
|
|
OPEN PIPE (bzw in -lang qb dann wahrschienlich __OPEN PIPE oder OPEN __PIPE) _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
goooofy
Anmeldungsdatum: 12.09.2005 Beiträge: 69
|
Verfasst am: 13.05.2010, 11:17 Titel: |
|
|
Gleiches Ergebnis mit PIPE, Vollbild wird gecanceld
Code: | 'MIT -s gui KOMPILIEREN!
SCREENRES 640,480,,,1: WIDTH 80,30
PRINT "Taste druecken, um SHELL-Anweisung mit PIPE auszufuehren..."
SLEEP
OPEN PIPE "c:\windows\system32\cscript.exe" FOR INPUT AS #1
PRINT "Vollbild wurde verlassen :-("
CLOSE #1
PRINT "Taste druecken, um SHELL-Anweisung mit SHELL auszufuehren..."
SLEEP
SHELL "c:\windows\system32\cscript.exe"
PRINT "Vollbild wurde wieder verlassen :-("
PRINT "Taste druecken, um SHELL-Anweisung mit EXEC auszufuehren..."
SLEEP
EXEC "c:\windows\system32\cscript.exe",""
COLOR 4,0: PRINT "Und nu???"
SLEEP |
|
|
Nach oben |
|
 |
darkinsanity aka sts

Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
|
Nach oben |
|
 |
Cherry
Anmeldungsdatum: 20.06.2007 Beiträge: 249
|
Verfasst am: 15.05.2010, 15:19 Titel: |
|
|
Nein, dann hat er nämlich keine Pipe.
Wenn er die Pipe nicht bräuchte, würde ich nämlich zu wscript.exe statt cscript.exe raten.
Was für ein Skript willst du da eigentlich ausführen? Vielleicht ginge es mit FreeBasic auch, dann wäre das ganze Problem nicht mehr da.
EDIT: Oh, hab mich wohl verlesen.
Zuletzt bearbeitet von Cherry am 16.05.2010, 18:36, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
darkinsanity aka sts

Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 15.05.2010, 19:55 Titel: |
|
|
Im ersten Post steht nicht, das er eine pipe braucht. Und in seinem Beispielcode nimmt er auch einfach shell, da hat er auch keine pipe. _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
 |
goooofy
Anmeldungsdatum: 12.09.2005 Beiträge: 69
|
Verfasst am: 15.05.2010, 21:58 Titel: |
|
|
Richtig, ich brauche keine pipe. Mir geht es nur darum, irgendwie ein Programm auszuführen, ohne dass mir der Fullscreen dabei abschmiert.
Ob ich da nun cscript oder sonst etwas aufrufe, macht keinen Unterschied.
Um meine Behauptung nochmal auf den Punkt zu bringen:
Es scheint offensichtlich nicht möglich zu sein, aus dem Vollbild heraus eine Anwendung zu starten, ohne dass das Vollbild minimiert wird, wenn mit -s gui kompiliert wurde.
Ob es sich dabei nun um einen Bug oder unverständliche Absicht handelt, weiß ich nicht.
Das Problem tritt sowohl unter XP mit Sp3 als auch unter Vista auf. Getestet auf zwei verschiedenen Computern mit unterschiedlichen Grafikkarten. Getestet sowohl mit der aktuellen SVN als auch der 0.20.0b. |
|
Nach oben |
|
 |
darkinsanity aka sts

Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 15.05.2010, 23:13 Titel: |
|
|
Code: | Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
ShellExecute(0, "open", "Pfad und Programmname", "Parameter", "Arbeitsverzeichnis", 0) |
Der Code führt einfach ein Programm aus, die 0 bewirkt das keine Anzeige erfolgt. Stünde da eine 1 würde man das Fenster sehen.
Achte aber darauf, das sich das Programm dann auch wirklich wieder schließt, sonst läuft es zwar noch, aber man sieht es nicht.
Die Funktion ist auch in den Windows-headern von FreeBASIC zu finden, bloß macht bei mir dann die "windef.bi" Probleme... _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
 |
goooofy
Anmeldungsdatum: 12.09.2005 Beiträge: 69
|
Verfasst am: 31.05.2010, 11:44 Titel: |
|
|
Danke dir vielmals, darkinsanity! Mit ShellExecute funktioniert es nun endlich.
Allerdings wartet er mit ShellExecute im Gegensatz zu SHELL nicht mehr aufs Programmende. Ginge das vielleicht irgendwie auch mit ShellExecute? |
|
Nach oben |
|
 |
|