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:

Bildschirmauflösung ermitteln

 
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
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 07.09.2005, 21:56    Titel: Bildschirmauflösung ermitteln Antworten mit Zitat

Hallo
Wie kann ich in FB die Bildschirmauflösung unter WIndows des Benutzers ermitteln?
Geht das leicht oder ist das mal wieder was kompliziertes über die WIn-API?
mfg noop
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helpy



Anmeldungsdatum: 22.03.2005
Beiträge: 17

BeitragVerfasst am: 07.09.2005, 22:41    Titel: Antworten mit Zitat

SCREENINFO
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ts-soft



Anmeldungsdatum: 13.02.2005
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: 08.09.2005, 01:23    Titel: Antworten mit Zitat

helpy hat Folgendes geschrieben:
SCREENINFO

Wie ermittelt man damit welcher Screen und wieviele Sceens vorhanden sind. Inzwischen haben wohl ca. 15% aller User DualScreen. verlegen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 08.09.2005, 09:16    Titel: Antworten mit Zitat

und screeninfo zeigt auch nur die Info über den screen an, der in FB aufgerufen wurde, oder funktioniert das auch wenn kein screen aufgerufen wurde? Normalerweise bei nem Konsolenprogramm was ja ohne screenabgabe und ohne gui-option zwangsläufig entsteht müsste er doch dann die daten für screen 0 ausgeben, oder?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helpy



Anmeldungsdatum: 22.03.2005
Beiträge: 17

BeitragVerfasst am: 08.09.2005, 10:22    Titel: Antworten mit Zitat

Ich hab' leider keinen Dual Screen.

Mit...
Code:
SCREENINFO w, h, depth
PRINT "Bildschirmauflösung: " + STR$(w) + " x " + STR$(h) + " x " + STR$(depth);
sleep
... (compiliert mit "-s console") wird bei mir die aktuelle Auflösung angezeigt!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helpy



Anmeldungsdatum: 22.03.2005
Beiträge: 17

BeitragVerfasst am: 08.09.2005, 10:29    Titel: Antworten mit Zitat

Interessant ist sicher noch die Funktion SCREENLIST, mit der man herausfinden kann, welche Auflösungen für eine bestimmte Farbtiefe erlaubt/möglich sind:

siehe im engl: Forum: http://www.freebasic.net/forum/viewtopic.php?p=282#282
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 08.09.2005, 21:58    Titel: Antworten mit Zitat

THX
Werds mir mal angucken.
Gleich mal 2 neue Fragen:
Wenn ich MULTIKEY mit SELECT CASE benutzen will funzt dat net.
Code:

DO
SELECT CASE MULTIKEY(&H)
CASE &H1:END
END SELECT
LOOP

Da kommt du die Meldung ob ich Microsoft die Fehlermeldung schicken will.
Wie kann ich das mit SELECT CASE machen?
Oda muss ich IF THEN benutzen(ist halt ein bisschen mehr arbeit-select case mag ich irgendwie mehr;))
2.
Wenn ich mit POKE BYTE, zahl, -1 z.b auf &H54(war doch Num...) schreibe müsste doch eigentlich das Lämpchen neben Num ausgehen.
Auch wenn ich dieses wieder mit PEEK auslese steht dort -1.
Warum klappt es aba doch nicht?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 08.09.2005, 23:28    Titel: Antworten mit Zitat

SELECT CASE -1
CASE MULTIKEY(scancode)
tuwas
CASE MULTIKEY(andererscancode)
tuwasanderes
END SELECT

multikey(&H) is schwachsinn, &H{hexzahl} gibt es, &H ist ein ungültiger ausdruck oihne hexzahl dahinter..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d.j.peters
Gast





BeitragVerfasst am: 09.09.2005, 06:15    Titel: Antworten mit Zitat

ts-soft hat Folgendes geschrieben:
helpy hat Folgendes geschrieben:
SCREENINFO

Wie ermittelt man damit welcher Screen und wieviele Sceens vorhanden sind. Inzwischen haben wohl ca. 15% aller User DualScreen. verlegen


Hi Thomas das geht mit dem WIN API (GDI) und auch mit dem X11 API.
Mit EnumDisplayDevices kriegst Du den DEVICENAMEN per index 0=1 1=2 ...
wenn Du den Namen vom zweiten Dualdisplay hast kommt EnumDisplaySettings zum Einsats.
Die füllt dann folgene Struktur.
Code:
Public Const CCHDEVICENAME = 32
Public Const CCHFORMNAME = 32
Public Type DEVMODE
  dmDeviceName        As String * CCHDEVICENAME
  dmSpecVersion       As Integer
  dmDriverVersion     As Integer
  dmSize              As Integer
  dmDriverExtra       As Integer
  dmFields            As Long
  dmOrientation       As Integer
  dmPaperSize         As Integer
  dmPaperLength       As Integer
  dmPaperWidth        As Integer
  dmScale             As Integer
  dmCopies            As Integer
  dmDefaultSource     As Integer
  dmPrintQuality      As Integer
  dmColor             As Integer
  dmDuplex            As Integer
  dmYResolution       As Integer
  dmTTOption          As Integer
  dmCollate           As Integer
  dmFormName          As String * CCHFORMNAME
  dmUnusedPadding     As Integer
  dmBitsPerPel        As Long
  dmPelsWidth         As Long
  dmPelsHeight        As Long
  dmDisplayFlags      As Long
  dmDisplayFrequency  As Long
End Type


Grüsse Joshy
Nach oben
ts-soft



Anmeldungsdatum: 13.02.2005
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: 09.09.2005, 21:11    Titel: Antworten mit Zitat

thx, Joshy
Ich dachte aber das sowas in einer neuen Programmiersprache gleich mit eingebracht wird, da diese Desktop-Enumeration ja inzwischen zur Pflichtübung gehört, wenn man seine Fensterkoordinaten sichert. Kenne viele, die immer schimpfen weil die Fenster sich immer nur auf Desktop 0 öffnen und extra verschoben werden müssen. Vielleicht wird SCREENINFO ja noch irgendwann erweitert zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 10.09.2005, 14:06    Titel: Antworten mit Zitat

@helpy: Ja funzt bei mir auch. thx
@MisterD: Das klappt nicht:
Code:

DO
SELECT CASE -1
CASE MULTIKEY(&H1):PRINT "ESC"
CASE MULTIKEY(&H1C):PRINT "ENTER"
END SELECT
SLEEP 10
LOOP

Gibts auch was für meine 2. Frage?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 10.09.2005, 16:26    Titel: Antworten mit Zitat

Sieh dir doch bitte mal den Eintrag hier an:

http://www.freebasic.de/r.php?s=MULTIKEY

Generell:

Code:
DO
 IF MULTIKEY(&H1) THEN PRINT "ESC"
 IF MULTIKEY(&H1C) THEN PRINT "ENTER"

 WHILE LEN(INKEY$): WEND   ' Tastaturpuffer leeren
LOOP

_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 10.09.2005, 20:37    Titel: Antworten mit Zitat

Moin,

man sollte sich doch überlegen, ob man die Inkey$-Variante vorzieht - die funktioniert hervorragend mit case.

BTW: die Keyborad scancodes passen nicht immer: Thema QWERTZ und QWERTY - Tastatur - man sollte das im Tutorial erwähnen!!! (Scancodetabelle)

CU2
Tilli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 11.09.2005, 16:20    Titel: Antworten mit Zitat

Danke für den Hinweis!

Generell kannst du das aber auch selbst ändern!
Geh einfach auf www.freebasic.net
in der rechten unteren Ecke, ziemlich versteckt ist ein pi-Symbol. Klick darauf. Dann kannst du dich anmelden bzw. ein Benutzerkonto erstellen. Sobald du das getan hast, erscheint bei jedem Tutorial (außer den Referenz-Einträgen) ein Bearbeiten-Symbol (oder war es ein "Klick hier zum Bearbeiten"-Text?). Und schon kannst du das Tutorial nach belieben verändern.

Falls du dich mit WIKI-Code nicht auskennst: Das ist wie hier im Forum. Wenn Text fett gedruckt werden soll, musst du ihn zwischen
Code:
[b]  [/b]

setzen.
das selbe mit i statt b macht den Text kursiv.
dann gibts auch noch den sog. code-Tag, also eben code statt b einsetzen. Dann wird der Text so formatiert wie oben die Code-Box.

Ach, und falls das grade ein großer Witzbold lesen sollte: Mecki hat sich ein tolles Backup-System ausgedacht. Wenn also jemand einfach den gesamten Text löschen sollte, wird er einfach wieder hergestellt.

Und jetzt an die Arbeit zwinkern
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 11.09.2005, 17:18    Titel: Antworten mit Zitat

Moin nochmal,

Das Backupsystem ist wirklich toll: Ich komme gar nicht erst dazu etwas zu ändern lächeln
Wenn ich auf den Button - I-Hier klicken um etwas zu bearbeiten - klicke, dann kommt ein Verweis auf das Forum ... ist bestimmt 'ne ganz tolle Sache mit den Augen rollen scheint aber bei mir wieder nicht zu funken traurig

oder muss Mecki mich erst freischalten (persönlich)?

Ich poste da am besten einfach mal rein - mal sehen ob er sich da heute rumiegelt happy

CU2
Tilli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 11.09.2005, 18:12    Titel: Antworten mit Zitat

Also muss ich es mit IF THEN machen?
@tillt: Ich muss MULTIKEY benutzen, weil ich mehrere TAsten gleichzeitig abfragen will.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 11.09.2005, 18:25    Titel: Antworten mit Zitat

@tilli also du hast Rechte zum Hochladen. Um die Tut-Datenbank editieren zu können brauchst du von mir persönlich erteilte Sonderrechte - es ist mir sonst einfach zu gefährlich. zwinkern
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 11.09.2005, 19:50    Titel: Antworten mit Zitat

Also zu deinem Problem, noop:
Speichere zu erst alle Scancodes in einem Feld, z.B. mit Read & Data.
Dann kannst du bequem mit Select Case arbeiten, so wie du es vorhattest:
Code:

restore codes

' Das Feld dimensionieren
read anzahl
dim scancodes(100)

for i = 1 to anzahl step 1
 read scancodes(i)
next i

' Jetzt geht's los:
do

 for i = 1 to anzahl step 1
  if multikey(scancodes(i)) then
 
   select case scancodes(i)
   
     case &H1
      [...]

     case &H2
      [...] 

   end select

  end if
 next i

codes:

' Die Anzahl an Scancodes:
data 2

' Jetzt kommen die Codes:
data &H1, &H2


Nicht getestet, sollte aber klappen.

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 11.09.2005, 20:46    Titel: Antworten mit Zitat

danke
ic probiers mal aus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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
Seite 1 von 1

 
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