Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
k1uMp3n
Anmeldungsdatum: 15.10.2004 Beiträge: 15 Wohnort: Fiwa
|
Verfasst am: 18.10.2004, 15:19 Titel: titelleiste |
|
|
ist es möglich einem Programm einen Titel zu geben (wie zB in html
<title>bla</title>) |
|
Nach oben |
|
|
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 18.10.2004, 15:30 Titel: ???????? |
|
|
Hä ? Was hat das mit QB zu tun ?
In welcher Weise sollte/könnte man einem QB-Prog einen Titel geben ?
Wo sollte der dann angezeigt werden ? _________________
|
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 18.10.2004, 15:38 Titel: Genial |
|
|
Du kannst ja die EXE umbenennen _________________
|
|
Nach oben |
|
|
Stefan
Anmeldungsdatum: 17.09.2004 Beiträge: 22
|
Verfasst am: 18.10.2004, 18:39 Titel: |
|
|
Mich würde es sehr wundern, wenn das gehen würde.
Qbasic ist ja bekanntlich ein Dos-Programm. Und bei Dos war es nun halt mal nicht gedacht, das jemand es neben anderen Programmen ablaufen läßt. Deshalb war es nicht nötig den Programmen Namen zu geben.
Auch wenn das heute mit Windows geht, denke ich das diese Option nicht hinzu gefügt worden ist. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2508 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 18.10.2004, 20:30 Titel: |
|
|
Präzise Ausdrucksweise ist eine Gabe, die nicht jeder hat... ;-)
@k1uMp3n: Du hättest Deine Frage als "Ich lasse meine QBasic-Programme unter Windows XP Profession SP2 in einer Eingabeaufforderung im Fenstermodus laufen und möchte dort den Fenstertitel auf etwas eigenes anstelle von "Eingabeaufforderung - qb meinprog" ändern können. Wie mache ich das? Gibt es dafür irgend ein CALL INTERRUPT?"
Übrigens noch meine Antwort dazu: Ich selber kenne keine solche Funktion. Es kann aber gut möglich sein, etwas unter http://msdn.microsoft.com/library/ im Windows 95-SDK finden zu können. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2508 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
|
Thomas Antoni
Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
|
Verfasst am: 27.10.2004, 23:38 Titel: Habs wie folgt in für die QB-MonsterFAQ vorgemerkt ... |
|
|
-------------------------------------------------------------------------------------
Frage deutsch
~~~~~~~~~~~~~~~~
Wie manipuliere ich den Fenstertitel meines QB-Programms?
Ich lasse meine QBasic-Programme unter Windows in einer Eingabeaufforderung im
Fenstermodus laufen und möchte dort den Fenstertitel auf etwas eigenes anstelle
von "Eingabeaufforderung - qb meinprog" ändern können. Wie mache ich das? Gibt
es dafür irgend einen CALL INTERRUPT?
Question English
~~~~~~~~~~~~~~~~
How to ?
Antwort
~~~~~~~~~~~~~~~~
[ von Andreas meile ( ) im QB-Forum, .2004 ]
Ich habe eine Lösung für dieses Problem gefunden und dafür die folgenden
Webseiten zu Rate gezogen:
http://msdn.microsoft.com/library/en-us/win9x/95func_3339.asp
http://msdn.microsoft.com/library/en-us/win9x/95func_1r39.asp
http://msdn.microsoft.com/library/en-us/win9x/95func_0t0l.asp
http://msdn.microsoft.com/library/en-us/win9x/95func_0ycl.asp
http://www.ctyme.com/intr/rb-4627.htm
http://www.ctyme.com/intr/rb-4628.htm
http://www.ctyme.com/intr/rb-4629.htm
http://www.ctyme.com/intr/rb-4630.htm
Und hier das von mir geschriebene Programm:
'********************************************************************
' FENTITEL.BAS - Windows-Fenstertitel auslesen und setzen
' ============
' Dieses QuickBasic-Programm setzt einen beliebigen Text als
' Windows-Fenster-Titel ein.
' Da das Programm den Befehl CALL INTERRUPTX verwendet, ist es nur
' unter QuickBasic und nicht unter QBasic ablauffaehig. QuickBasic
' muss mit QB /L aufgerufen werden. Getestet unter Windows 95; unter
' Windows XP Professional funktionierte es nicht.
'
' (c) Andreas Meile ("Dreael"), 27.10.2004
' qbasic-webmaster@andreas-meile.ch
'*********************************************************************
'
' $INCLUDE: 'qb.bi'
'
DIM dosIntEin AS RegTypeX, dosIntAus AS RegTypeX
DIM titPuf AS STRING * 300
'
' Auslesen (Get Application Title) gemäss
' http://msdn.microsoft.com/library/en-us/win9x/95func_3339.asp
'
dosIntEin.ax = &H168E
dosIntEin.es = VARSEG(titPuf)
dosIntEin.di = VARPTR(titPuf)
dosIntEin.cx = LEN(titPuf)
dosIntEin.dx = 2
CALL INTERRUPTX(&H2F, dosIntEin, dosIntAus)
IF dosIntAus.ax = 1 THEN
PRINT "Fenstertitel (Application Title):"
p% = INSTR(titPuf, CHR$(0))
IF p% > 0 THEN
PRINT LEFT$(titPuf, p% - 1)
ELSE
PRINT titPuf
END IF
ELSE
PRINT "Fehler beim Auslesen:"; dosIntAus.ax
END IF
'
' Auslesen (Get Virtual Machine Title) gemäss
' http://msdn.microsoft.com/library/en-us/win9x/95func_1r39.asp
'
dosIntEin.ax = &H168E
dosIntEin.es = VARSEG(titPuf)
dosIntEin.di = VARPTR(titPuf)
dosIntEin.cx = LEN(titPuf)
dosIntEin.dx = 3
CALL INTERRUPTX(&H2F, dosIntEin, dosIntAus)
IF dosIntAus.ax = 1 THEN
PRINT "Fenstertitel (Virtual Machine Title):"
p% = INSTR(titPuf, CHR$(0))
IF p% > 0 THEN
PRINT LEFT$(titPuf, p% - 1)
ELSE
PRINT titPuf
END IF
ELSE
PRINT "Fehler beim Auslesen:"; dosIntAus.ax
END IF
'
' Setzen (Set Application Title) gemäss
' http://msdn.microsoft.com/library/en-us/win9x/95func_0t0l.asp
'
LINE INPUT "Neuer Application Title:"; t$
titPuf = t$ + CHR$(0)
dosIntEin.ax = &H168E
dosIntEin.es = VARSEG(titPuf)
dosIntEin.di = VARPTR(titPuf)
dosIntEin.dx = 0
CALL INTERRUPTX(&H2F, dosIntEin, dosIntAus)
IF dosIntAus.ax = 1 THEN
PRINT "Application Title erfolgreich gesetzt"
ELSE
PRINT "Fehler beim Setzen:"; dosIntAus.ax
END IF
'
' Setzen (Set Virtual Machine Title) gemäss
' http://msdn.microsoft.com/library/en-us/win9x/95func_0ycl.asp
'
LINE INPUT "Neuer Virtual Machine Title:"; t$
titPuf = t$ + CHR$(0)
dosIntEin.ax = &H168E
dosIntEin.es = VARSEG(titPuf)
dosIntEin.di = VARPTR(titPuf)
dosIntEin.dx = 1
CALL INTERRUPTX(&H2F, dosIntEin, dosIntAus)
IF dosIntAus.ax = 1 THEN
PRINT "Virtual Machine Title erfolgreich gesetzt"
ELSE
PRINT "Fehler beim Setzen:"; dosIntAus.ax
END IF
Hinweise:
Unter Windows 2000 (SP4) und XP Professional (SP2) scheint dieser Interrupt
nicht mehr zu existieren, dagegen auf einem alten Windows 95 (mit VMware
getestet) klappt es dagegen tadellos und man kann die Titel problemlos
setzen:
-------------------------------------------------------------------------------- _________________ +++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++ |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2508 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 28.10.2004, 10:03 Titel: Tests und ein wichtiges "Achtung"! |
|
|
Habe heute Morgen noch kurz mit weiteren virtuellen Maschinen mein Beispiel getestet. Ergebnis: Titel kann unter Windows 95, 98 und Millennium Edition sowohl gelesen als auch gesetzt werden. Dagegen unter Windows NT 4.0, Windows 2000 und XP geht dies nicht.
Nun aber ein sehr wichtiges Achtung, festgestellt beim Testen: Das Setzen des Titels der virtuellen Maschine erfolgt leider nicht temporär nur im RAM, sondern es überschreibt Euch C:\WINDOWS\Startmenü\Programme\MS-DOS-Eingabeaufforderung.lnk dauerhaft! => zukünftige Aufrufe der Eingabeaufforderung werden daher also mit Eurem neuen Titel erscheinen. Quintessenz der Geschichte: Mit Vorteil sollte man nur den Application Titel setzen, nicht aber derjenige der virtuellen Maschine.
@Thomas Antoni: Kannst Du dies in Deinem Monster-FAQ-Artikel noch entsprechend ergänzen? _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|