Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Konsolenfenster (nicht -s gui
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 14.06.2006, 22:36    Titel: Konsolenfenster (nicht -s gui Antworten mit Zitat

Es gab mal ein Thema über Konsolenfenster verschwinden lassen. Dort war von einem Befehl die Rede, nicht von -s gui; wie war dieser schonwieder?
Der Sinn wäre, das Konsolenfenster an einer bestimmten Stelle verschwinden zu lassen z.B. wenn eine Message Box kommt (die ist oft hinter dem Fenster versteckt) und es nacher wieder erscheinen zu lassen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 14.06.2006, 22:57    Titel: Antworten mit Zitat

Hallo.

Du kannst über den Fenstertitel das fenster per WINAPI verschwinden lassen. Ich such dir den Code mal raus.happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dominik



Anmeldungsdatum: 22.12.2004
Beiträge: 172

BeitragVerfasst am: 15.06.2006, 00:48    Titel: Antworten mit Zitat

@programmierer: da war ich wohl schneller durchgeknallt

Probier das mal aus, sollte gehen:

Code:
#include "Windows.bi"

Dim hWndConsole As HWND
Dim TitelDesKonsolenFensters As String

hWndConsole = FindWindow(0, TitelDesKonsolenFensters)
ShowWindow(hWndConsole, SW_HIDE) 'weg ist es
Sleep 1000 'für eine Sekunde
ShowWindow(hWndConsole, SW_SHOW) ' und nun ist es wieder da
Sleep 'und wartet auf einen Tastendruck.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 15.06.2006, 16:19    Titel: Antworten mit Zitat

Vielen Dank; ausprobieren kann ich das auch erst wenn ich die neue Version installiert habe (wie beim Thema Drucken).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 16.06.2006, 08:31    Titel: Antworten mit Zitat

Das hat nicht funktioniert; das Fenster blieb.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 16.06.2006, 09:56    Titel: Antworten mit Zitat

Zu beachten ist diese Auffoderung:
hWndConsole = FindWindow(0, TitelDesKonsolenFensters)

Dort musst du den Namen des Fensters eingeben.
(Also Laufwerk+Pfad+Dateiname)
Ich suche eine schöne Lösung wie es sicher und einfach geht.

Edit:
So geht es:
Code:
#include "Windows.bi"

Dim hWndConsole As HWND
Dim TitelDesKonsolenFensters As String

FensterName$=Command$(0)

hWndConsole = FindWindow(0, strptr(FensterName$))
ShowWindow(hWndConsole, SW_HIDE) 'weg ist es
Sleep 1000 'für eine Sekunde
ShowWindow(hWndConsole, SW_SHOW) ' und nun ist es wieder da
Sleep 'und wartet auf einen Tastendruck.

Edit 2:
Nun auch Dokumentiert auf Wikibooks.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 16.06.2006, 11:49    Titel: Antworten mit Zitat

Hm, muss ich mal genauer ausprobieren. Wäre ja C:\FreeBasic|fbidetemp.exe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 16.06.2006, 15:36    Titel: Antworten mit Zitat

Es geht ja:
Command$(0) liefert Pfad + Dateinamen
Fensternamen ist Pfad + Dateinamen.
Probier meinen Code von Oben doch einfach mal aus.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 16.06.2006, 20:25    Titel: Antworten mit Zitat

Direkt so funktioniert es bei mir nicht... Die Konsole bleibt einfach hier.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 16.06.2006, 20:34    Titel: Antworten mit Zitat

Ich tippe: es klappt.

Aber da das fenster versteckt wird, und eine sek später wieder auftaucht, kann es so aussehen, als würde das programm dann erst starten.
Falls ich richtig liege:
Code:

#include "Windows.bi"

Dim hWndConsole As HWND
Dim TitelDesKonsolenFensters As String

FensterName$=Command$(0)

Print "Fenster wird sofort versteckt"
Sleep 2000,1
hWndConsole = FindWindow(0, strptr(FensterName$))
ShowWindow(hWndConsole, SW_HIDE) 'weg ist es
Sleep 4000,1
ShowWindow(hWndConsole, SW_SHOW) ' und nun ist es wieder da
Print "Jetzt sollte es wieder da sein."
Sleep
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 17.06.2006, 06:38    Titel: Antworten mit Zitat

Bei mir tatsächlich nicht.. ich habe auch sleep eingefügt, dass das Fenster erst nach einem Tastendruck verschwinden sollte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 17.06.2006, 10:10    Titel: Antworten mit Zitat

Welches WIndows benutzt du?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 17.06.2006, 11:28    Titel: Antworten mit Zitat

XP und 98... habe es auf XP probiert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 17.06.2006, 12:08    Titel: Antworten mit Zitat

verwundert
In welchem Pfad ist dein Programm?
Vielleicht macht irgendein Sonderzeichen Probleme?

Freebasic Version?
(Ich hab 0.16 Stable)

Hast du auf deinem Rechner Adminrechte?
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 17.06.2006, 20:56    Titel: Antworten mit Zitat

nur auf ME ausprobiert....
Bei Win ME brauche ich nur den Titel des Konsolefensters (auch bei der Ordneroption "Vollständigen Pfad in der Titelzeile anzeigen") ohne Pfad und Endung.
Code:
#include "Windows.bi"

Dim hWndConsole As HWND
Dim FensterName As String
Dim x as Integer

FensterName=command(0)
x=1
do until instr(x, FensterName, "\")=0
  x=instr(x, FensterName, "\") +1
loop
FensterName = Mid(FensterName, x, Len(FensterName) -x -3)

Print "Fenster wird sofort versteckt"
Sleep 2000,1
hWndConsole = FindWindow(0, strptr(FensterName))
ShowWindow(hWndConsole, SW_HIDE) 'weg ist es
cls
Print "Jetzt sollte es wieder da sein."
Sleep 4000,1
ShowWindow(hWndConsole, SW_SHOW) ' und nun ist es wieder da
Sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 18.06.2006, 22:21    Titel: Antworten mit Zitat

Wenn ich es richtig verstanden habe sollte bei diesem COde der Fenstername automatisch gefunden werden?
Version ist 0.15b ... ehm der Pfad, C:\programme\freebasic\fbidetemp.exe heiss es (beim Versuch).
Adminrechte, glaube ich schon, es hat nur einen Benutzernamen registriert und mit dem hat man auf alles Zugriff, glaube ich schon Adminrechte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dominik



Anmeldungsdatum: 22.12.2004
Beiträge: 172

BeitragVerfasst am: 19.06.2006, 13:57    Titel: Antworten mit Zitat

@Michael Frey
Ich habe mir erlaubt, die folgende unnötige Zeile aus Wikibooks zu löschen, die garnicht verwendet wird. Stattdessen sollte man besser FensterName$ dimmen, was ich auch geändert habe.

Code:
"Dim TitelDesKonsolenFensters As String"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 19.06.2006, 18:38    Titel: Antworten mit Zitat

@Dominik
Hab mich schon gefragt wer das war zwinkern, danke Daumen rauf!.

Edit:
Zitat:
Wenn ich es richtig verstanden habe sollte bei diesem COde der Fenstername automatisch gefunden werden?

Genau das Versucht der Code von mir und volta, aber scheinbar verhält sich mal wieder jedes Windows anders ...
Zitat:
C:\programme\freebasic\fbidetemp.exe

Da sehe ich jetzt nichts was stören könnte, okey der Pfad ist etwas lang aber das sollte doch bei Windows kein Problem mehr sein?!

Ich Teste es gleich.

Edit 2:
Der Pfad hier C:\Dokumente und Einstellungen\Benutzer\Desktop\gui.exe ist noch länger und es geht noch immer.

Welche Freebasic Version hast du?
Soviel ich weiss gibt es hin- und wieder änderungen bei / und \.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 19.06.2006, 19:21    Titel: Antworten mit Zitat

Ach so.. ich versuchte es auf XP und 98SE.
Die Freebasic-Version ist 0.15b
_________________
...längre blomstre gamle nord...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 19.06.2006, 19:49    Titel: Antworten mit Zitat

Mal folgende Ideen wie man das im Kreis reden durchbrechen kann:

Mach einen Screenshoot, der die Titelzeile des Programmes und die vier Ausgaben umfasst:
Code:
? command$(0)
? exepath
? curdir
? __FB_VERSION__
sleep

Vielleicht kommen wir so dahinter.

Sonst kannst du auch mal FB 0.16 probieren.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz