Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Exp-Soft
Anmeldungsdatum: 10.09.2004 Beiträge: 79
|
Verfasst am: 29.09.2004, 20:41 Titel: Tastatur Ansteuern Led's Num, Scroll, Caps Lock. |
|
|
Die Frage ist schon oft gestellt worden, ich hab auch lösungen gelesen, allerdings, nur welche die unter DOS - ME laufen sollen und net auf NT Systemen.
gibt es garkeine möglichkeit per QB auf jedem Win system die LED's an zu sprechen?! bzw, das mein prg die an und ausschallten kann?!
Thx 4 Help schonmal. |
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 29.09.2004, 23:13 Titel: |
|
|
Also ich hatte dazu mal ein Beispiel geproggt (ist auch auf meiner Seite)...ob es unter NT auch geht weis ich nicht...mußt du mal testen...hier der Code:
Code: | '============================================================================
' 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): '---> Anfangsstatus 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 muß 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äßt 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$ |
_________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
Exp-Soft
Anmeldungsdatum: 10.09.2004 Beiträge: 79
|
Verfasst am: 30.09.2004, 04:18 Titel: |
|
|
Ne unter Xp funzt das nicht, schade. |
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 30.09.2004, 09:44 Titel: |
|
|
tja, ein anderer Weg ist mir leider nicht bekannt. _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 30.09.2004, 11:42 Titel: |
|
|
In der FutureLibrary sind dafür funktionen drin. _________________ "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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 30.09.2004, 16:01 Titel: FutLib |
|
|
Hallo.
Bei mir geht die FutureLIB nicht mal unter XP, geschweige denn von irgendwelchen Hardware-Routinen bzw. SVGA-Routinen.
Du solltest dich mal in einem Forum für Win32 ASM oder C(++) (z.B. www.programmierer-board.de ) informieren, ob vielleicht mit einer "Windows-Programmiersprache" (ja, den Begriff hatten wir neulich schon mal, helium... ) geht. Ein richtiges Win32-Programm kann nämlich meistens selbst unter NT/2000/XP auf die Hardware zugreifen.
Dieses Windows-Programm könntest du dann einfach aus QB starten.
SHELL "TASTLED.EXE /AN"
SHELL "TASTLED.EXE /AUS" 'oder so...
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2514 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 30.09.2004, 19:44 Titel: |
|
|
Ein Auslesen klappt ansonsten mit INT 16h, Funktion AH=02h ohne Probleme, habe dies beispielsweise in
http://www.dreael.ch/QB/mini_des.zip
verwendet. So kann man dort bei "Wählen" Objekte dazu- und wegwählen sowie ferner mit <Strg> eine Kopie anstelle Verschiebung erstellen (Bedienung an den Zeichnen-Modus von Microsoft Word angelehnt). Gerade vorhin getestet: Funktioniert auch unter voll laufendem Windows XP Professional ohne Fehler.
Leider kann ich jedoch kein CALL INTERRUPT finden, mit welchem man umgekehrt den Status dieser Tasten setzen könnte. Allerdings erlaube ich mir an dieser Stelle doch die Frage in den Raum zu stellen, ob man dies wirklich braucht und nicht der Ansatz schon falsch ist. z.B. auf einem VT220-Terminal, welches an einem UNIX-Rechner hängt, kann ich normalerweise auch nicht die LEDs vom Telnet-Daemon aus ansteuern... _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|