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:

: unter QB

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 10.05.2005, 16:41    Titel: : unter QB Antworten mit Zitat

Hallo
Um einen Doppelpunkt unter QB zu bekommen (auch in den kompilierten progs) muss man ja shift+: machen. Jetzt würde ich gerne in einer Schleife das so machen, dass wenn Capslog an ist ein Doppelpunkt kommt und wenn nicht dann nur ein Punkt. Also ganz normal wie unter WIndows.
Wie kann ich das machen?
Ich weiß nicht wie ich Capslog abfragen soll und schon gar nicht ob es an ist oder nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 10.05.2005, 18:05    Titel: Antworten mit Zitat

Was meinst du mit Capslog?

Vielleicht NumLock?!?

Naja, es gab mal son Prog von East-Power-Soft, das den Status con NumLock abfragt und ändert,
hier der Code:

Code:

'05/01/2000 by East-Power-Soft, produced by us - for free use by U.   º

'Tip 7: Abfrage und Ändern des Tastaturstatus.                           

'Bitverteilung im Tastaturstatusbyte:

'---> Bit0 = Rechte Shift (1)

'---> Bit1 = Linke Shift  (2)

'---> Bit2 = Strg         (4)

'---> Bit3 = Alt          (8)

'---> Bit4 = Rollen       (16)

'---> Bit5 = Num-Lock     (32)

'---> Bit6 = Caps-Lock    (64)

'---> Bit7 = Einfügen     (128)

   DEF SEG = &H40

   ORG = PEEK(&H17): '---> Anfangswert merken

   DEF SEG

   

' Beispiel     
   
 CLS

PRINT "Manchmal ist es notwendig, oder wünschenswert, den Status der Tastatur zu"
PRINT "erfahren oder zu ändern. Um dies zu erreichen muss man lediglich das"
PRINT "Tastaturstatusregister, PEEK(&H17) im Segment &H40 abfragen bzw. neu"
PRINT "beschreiben. Wenn Du jetzt auf Deine Tastatur siehst, sollten die LED's"
PRINT "für Num-Lock, Caps-Lock und Rollen blinken. So wie die Lampen blinken, ändert"
PRINT "sich auch deren Status. Anderst lässt sich dieses Beispiel leider nicht erklären."

PRINT "Hier hilft nur ausprobieren. ";

COLOR 14: PRINT "Ende mit RETURN."



DEF SEG = &H40

DO

   FOR P = 0 TO 80000: NEXT

   POKE &H17, 16 + 32 + 64   '---> Hier wird der neue Status gesetzt

   A$ = INKEY$               '---> damit er wirksam wird, muá die Tastatur

   IF A$ = "" THEN           '---> einmal abgefragt werden.

     FOR P = 0 TO 80000: NEXT

     POKE &H17, 0

     A$ = INKEY$

    ELSE

      EXIT DO

    END IF

LOOP

 POKE &H17, ORG AND NOT (15)  '---> Anfangswert wiederherstellen

  DEF SEG                      '---> aber die Bit's 0-3 ausschalten

  A$ = INKEY$



Wenn's dir hilft...

EDIT: Autsch! Capslog ist die Taste über Shift Autsch!

Naja, irren ist menschlich...

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



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

BeitragVerfasst am: 10.05.2005, 19:44    Titel: Antworten mit Zitat

Das heißt Iren sind menschlich!
_________________
"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
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 11.05.2005, 16:16    Titel: Antworten mit Zitat

Mit diesem Code kannst du feststellen, ob die Taste gedrückt ist, oder nicht.

Hat allerdings den Nachteil, dass es nur erkennt, ob sie im Moment
gedrückt wird, oder nicht...

Code:

CLS
DO

 k = INP(96)

 LOCATE 10, 10
 PRINT "                "
 LOCATE 10, 10
 PRINT " Status : ";
 IF Status% THEN A$ = "AN" ELSE A$ = "AUS"
 PRINT A$

 IF k = 58 THEN Status% = -1
 IF k = 186 THEN Status% = 0

LOOP UNTIL k = 1


jb
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: 11.05.2005, 16:48    Titel: Antworten mit Zitat

Zitat:
Original von jb
EDIT: Autsch! Capslog ist die Taste über Shift Autsch!

Naja, irren ist menschlich...


Bevor das jeder so schreibt: Heißt das nicht capslock??? durchgeknallt[/i]
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

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

Ja.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 11.05.2005, 19:56    Titel: Antworten mit Zitat

Jo wird ann wohl Capslock heißen. DAnke erstmal für den Code.
Werd ihn baldmöglichst ausprobieren.
Da steht aber leider noch ne Englischarbeit im Weg weinen weinen
Da muss der PC halt was warten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 11.05.2005, 22:40    Titel: INT 16h, AH=02h Antworten mit Zitat

Tasten wie <Alt>, <Umschalt>, <Strg> usw. kann man über den im Titel genannten CALL INTERRUPT aufrufen. Details siehe

http://www.ctyme.com/intr/rb-1756.htm

Ein praktisches Anwendungsbeispiel findet man in

http://www.dreael.ch/QB/mini_des.zip

vor.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
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 QBasic. 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