Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 06.04.2005, 11:31 Titel: Adressen der Hardware |
|
|
Also, ich hab bemerkt, dass ziemlich oft sachen wie "&H6l" kommen....
Kann mir mal einer die verschiedenen Adressen so erklären, dass ich sie auch als Laie verstehe?? PLZ
Nochwas:
1. Wie schicke ich einen Buchstaben in den Tastaturpuffer?
(Ich will einen tastaturanschlag simulieren!)
Jaja, das thema gabs schon, aber da hab ich NULL gecheckt...
2. In welchem Format sollten diese "PSEUDO-Tasten" sein? Ascii? char$()? |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 06.04.2005, 11:42 Titel: |
|
|
Hallo.
Das sind hexadezimale Zahlen. &H6l gibt es nicht. Das &H am Anfang oder auch ein h am Ende signalisieren einfach nur, dass es sich um eine Hexadezimalzahl handelt. Was Hexadezimalzahlen genau sind und wie man damit rechnet, kannst du beispielsweise bei Wikipedia nachschlagen.
Bei CHR$(x) gibt man statt des X übrigens einen ASCII Code ein. Eine ASCII-Tabelle findest du auf www.qbasic.de im Downloadbereich.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 06.04.2005, 13:32 Titel: |
|
|
Moin,
für hexadezimale Zahlen gibts verschiedene Schreibweisen, z.B.
&HFF , 0xFF oder auch FFh
QB akzeptiert nur die &H.. schreibweise.
Unser normales Zahlensystem hat die Basis 10, es ist dezimal. Es gibt 10 Ziffern, nämlich 0 .. 9. Das hexadezimale System hat 16 Ziffern nämlich 0 .. 9 und zusätzlich noch die Buchstaben A .. F. _________________
 |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 06.04.2005, 13:56 Titel: |
|
|
Danke, soweit hab ich dsas jetzt kapiert
aber, das mti meinem tastatur simulationsprogramm steht ncoh offen, und woher krieg ich so eine adressliste, welche adresse zu welchem gerät (Tastatur, Maus usw...) gehört?  |
|
Nach oben |
|
 |
Bender

Anmeldungsdatum: 30.12.2004 Beiträge: 18
|
Verfasst am: 06.04.2005, 14:10 Titel: |
|
|
Hallo...
die Adressen stehen bei dir für jedes Gerät (also Tastatur, Maus, COM, LPT, etc.) im Gerätemanager unter Resourcen...
Gruss,
Bender |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 06.04.2005, 14:23 Titel: |
|
|
*schäm für die Blödheit*
Gut, danke, aber wie schick ich jetzt was in deren "PUFFER"? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 06.04.2005, 20:45 Titel: |
|
|
Damals haben wirs Leader4 erklärt, der hat sich schon einigermaßen mit direktem Speicherzugriff ausgekannt.
Also, mal von ganz von vorne...
Wie du aus der QB-Monster FAQ schon wissen solltest, hast du unter QB nur 1MB RAM, ziemlich wenig, aber für die meisten Programme voll ausreichend. Damit der Prozessor weiß, woher er seine Daten nemen soll, ist dieser Speicher Adressiert, d.h. Jede Stelle im Speicher hat eine Nummer, über die man darauf zugreifen kann. Aus technischen Gründen ist es nur möglich, dem Prozessor (unter QB) Zahlen zwischen 0 und 65535 zu übergeben. Damit ließen sich aber grade mal 64KB adressieren.
Deswegen werden Adressen in Segment und Offset unterteilt, jedes im Bereich zw. 0 und 65535
Wenn man so will, ist das Segment die "grobe Adresse", während das Offset die genaue Adresse ist.
(Genauere Details entnimst du bitte der MonFAQ)
Jetzt können wir weitermachen, und zwar mit dem wissen, dass der Tastaturpuffer im Segment &H0000 liegt, am Offset &H0040, und 16 Bytes groß ist.
Jetzt werden aber die Tastatursignale nicht einfach nur so in den Puffer geklatscht. Denn sonst würde QB ja gar nicht wissen, welches Zeichen jetzt vom Puffer gelesen werden soll.
Deswegen gibt es im Speicher auch noch eine Adresse, in der eine andere Adresse gespeichert wird (man nennt das Pointer). Dieser Pointer zeigt auf den Den Tastaturpuffer, genauer auf das letzte eingelesene Zeichen.
Beispiel:
Im Puffer sind gerade 3 Zeichen.
Das erste Zeichen beginnt bei 0040h, das zweite bei 0042h und das dritte bei 0044h. Der Pointer zeigt also auf 0044h.
Dieser Pointer liegt an der Adresse 001Ch.
So, jetzt solltest du wirklich genug verstehen, um
http://www.antonis.de/faq/qbmonfaq-dateien/191542768.html
zu verstehen.... _________________ 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 |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 08.04.2005, 19:12 Titel: |
|
|
kann ja ned war sein.... Wntweder cih bin zu dof, oder es heaut nicht hin. Der CODE, der in dem Topic angegeben ist, geht nciht
PS: Wie mach ich das, dass diese Simulierte taste dann auch in windows akitv wird, also im word lauter "a" erscheinen? |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 08.04.2005, 20:30 Titel: |
|
|
Zugegeben, ich hab den Code selbst grade Getestet, und bei mir gehts auch nicht...
Möglich wäre....
Dass der Pointer auf &H001C verschoben werden muss...
Dass QB noch andere Dinge macht, wenn eine Taste gedrückt wird.
Und WIN ist da noch ne ganz andere Sache....
Abgesehen davon, dass ich gar ned weiß, ob da überhaupt noch der Tastaturpuffer hergenommen wird (der aus dem BIOS-Seg, einen Puffer wirds schon irgendwo geben), gibts noch ganz andere Dinge zu wissen...
Prozessnummern, bla bla bla... n haufen Zeug....
Unter VB is es (angeblich) recht einfach, da es da nen Befehl "Sendkeys" gibt, der dir genau diese Aufgabe abnimmt. (Hab ich noch nicht getestet, deswegen das angeblich)
Zum Verständnis:
WAS genau verstehst du denn nicht?
Und wie viel Zeit hast du dir für die QBMonFAQ genommen?
Es IST kein wirklich einfaches Thema, in 5 Minuten ist das nicht gelernt, also nimm dir am besten mal Zeit, den Eintrag der FAQ mehrmals zu lesen... _________________ 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 |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 09.04.2005, 13:07 Titel: |
|
|
Genügen keine 3 Stunden?
Den Code versteh ich allmählich, aber immer ncoh cniht, wie man peek und poke und inp und out WIRKLICH verwendet! |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 09.04.2005, 14:16 Titel: |
|
|
Hallo
Was genau willst du denn mit diesem simulierten Tastendruck machen? Vielleicht lässt sich dein Problem ja auch ganz anders lösen.
Zu den Hexadezimalen Zahlen. Wenn du den Windows-Taschenrechner (Programme -> Zubehör -> Rechner) auf wissenschaftliche Darstellung schaltest, kannst du nicht nur die Zahlenformate hexadezimal, dezimal, oktal und binär ineinander umwandeln sondern auch z.B. Hex-Zahlen eingeben. Dazu sind neben den dem Zahlenblock noch die Tasten A-F da.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 09.04.2005, 17:13 Titel: |
|
|
Ich will, dass das prog im hintergrund läuft, und wenn ich etwas im editor schreibe, dass es ab und zu eine taste erscheinen lässt, also sowas wie ein minifunvirus.
Es soll ca. jeder 2te sekunde eine Tastesimulieren, damit dann der entsprechende buchstabe im word usws erschein!  |
|
Nach oben |
|
 |
Charly2
Anmeldungsdatum: 28.11.2004 Beiträge: 29 Wohnort: Mittelfranken
|
Verfasst am: 09.04.2005, 18:25 Titel: |
|
|
Das kannst du mit QBasic nicht machen.
Da hast du keinen Zugriff auf den Windows-Tastaturpuffer. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 13.04.2005, 19:25 Titel: tastatur lahmlegen??? |
|
|
Da wir gerde bei Tastatur-Puffer sind:
Wie kann ich eine Tastatur lahmlegen???
Ich mach gerade ein Programm, bei dem man auch durch alt-tab oder der windows taste dieses Prog nicht beenden soll. Das Programm soll sich nach einer kurzen Zeit selbst beenden. Kann man den Tstaturpuffer nicht leeren oder so voll schreiben, das der Puffer überläuft und alle Tasten lahmgelegt sind???
Please Help. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 13.04.2005, 19:54 Titel: |
|
|
oh, danke. Hab das MosterFAQ auf meinem PC. HAb vergessen nachzugucken. Sorry. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
|