 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Xolios aka Ray

Anmeldungsdatum: 07.12.2004 Beiträge: 589 Wohnort: Wildeshausen
|
Verfasst am: 26.01.2005, 10:25 Titel: Auslesen des Aktuellen Bildschirms |
|
|
Moin!
Also mal ein kompliziert zu stellende Frage.
Ich möchte z.B.
ein zeichen auslesen...
CLS
?"Hallo"
?"Du da"
Es wird ja angezeigt:
Hallo
Du da
Jetzt möchte ich z.B. das H auslesen oder das a
und in eine Variable speichern.
Boah is das schwer zu erklären...
Oder als zweite Beispiel:
cls
shell "cd"
zeigt den aktuellen Pfad an
und wie kann ich den Pfad auslesen??
Hoffe ich hab nicht so wirr geschrieben.
Danke im Voraus!y
Gruß
Ray _________________ www.ray-earth.de
Anm.: Neue ICQ |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 26.01.2005, 12:55 Titel: |
|
|
schau ma in der QB-Onlinehilfe, da gabs ne Screen-funktion (nicht befehl!) ich glaub die hatte damit was zu tun. _________________ "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 |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 26.01.2005, 14:05 Titel: |
|
|
Also das mit der SCREEN-Funktion stimmt. Damit habe ich mal einen (leicht zu umgehenden) Kopierschutz gemacht. (Seriennummer eingelesen und so ein Schwachsinn..)
Wenn im Bild das zu sehen ist.
++++++++++++++++++++++++
+Dieses ist die erste Zeile +
+ +
dann kannst du mit SCREEN(zeile, spalte) den Ascii-Wert an der jeweiligen Stelle im Schirm ermitteln.
wert% = SCREEN(1, 4)
würde in unserem Beispiel: 115 ergeben, da dies der ASCII-Wert für ein kleines 's' ist. Alles klar. In der QuickBasic Hilfe kannst du auch noch nachlesen, was man sonst noch damit machen kann (Farberkennung!). |
|
Nach oben |
|
 |
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 26.01.2005, 14:16 Titel: |
|
|
Moin !
Du brauchst es dir garnicht so schwer machen, den Bildschirm nach SHELL "cd" auszulesen.
Schreib einfach
Code: |
SHELL cd > C:\pfad.txt
|
Das > bewirkt, dass DOS die Bildschirmausgabe in die angegebene Datei umleitet. Kannste dann einfach mit OPEN usw. auslesen.  _________________
 |
|
Nach oben |
|
 |
code
Anmeldungsdatum: 19.01.2005 Beiträge: 154
|
Verfasst am: 26.01.2005, 14:18 Titel: |
|
|
um den pfad mit cd auszulesen einfach die dateiumleitung mit dos benutzen:
nach dem ">" komm der dateiname, in den der bildschirm inhalt geschrieben wird. danach musst du die datei einfach öffnen und kannst den pfad in einer variablen speichern |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 26.01.2005, 18:57 Titel: |
|
|
Genau das hab ich mir beim letzten QB-Wettbewerb zunutze gemacht *g*
Da gings darum, ein Prog mit höchstens 5 KB zu schreiben.
Ich hab eine Ordnerwahlroutine gemacht.
Du kannst sie dir auf www.qbasic.de/wettbewerb bzw. http://ssteiner.ss.funpic.de/qbwettbewerb/downloads.html runterladen.
Weil ich ziemlich nah an die 5KB rangekommen bin, sind leider keine Kommentare drin, aber ich denke, es ist einigermaßen verständlich. Und spätestens, wenn du dir zusätzlich die Readme anschaust, sollten dir die Codes klar werden.
Vllt sollte ich das zum Tutorial ausarbeiten?
Zur erklärung:
Die Zeile "SHELL DIR >FILE.TXT"
leitet die Ausgabe von DIR in FILE.TXT um, anstatt es auf dem Bildschirm auszudrucken.
Du bekommst also eine Datei, die so aussieht:
Code: |
Volume in Laufwerk D: hat keine Bezeichnung.
Volumeseriennummer: 4C64-C55F
Verzeichnis von D:\Dokumente und Einstellungen\Hartinger
08.12.2004 19:15 <DIR> .
08.12.2004 19:15 <DIR> ..
07.07.2004 17:12 <DIR> .jpi_cache
16.11.2004 16:36 2.609 .plugin141_02.trace
29.07.2002 23:14 1.686.944 anno1602_windows2000_xp.exe
03.01.2003 15:33 <DIR> Application Data
25.01.2005 20:18 <DIR> Desktop
10.12.2004 16:18 <DIR> Eigene Dateien
25.01.2005 20:00 <DIR> Favoriten
06.12.2004 19:34 <DIR> Startmen?
30.07.2002 20:35 <DIR> WINDOWS
2 Datei(en) 1.689.553 Bytes
9 Verzeichnis(se), 843.440.128 Bytes frei
|
Das ist zwar schon einigermaßen verwertbar, besser aber, du verwendest:
SHELL "DIR /B"
Das lässt alle unnötigen Angaben weg.
In der Datei steht dann z.B. nur:
QBX.EXE
BC.EXE
TEST.BAS
QBX.QLB
QBX.LIB
Vergiss aber nicht, die Datei dann wieder zu löschen, wenn du sie nicht mehr brauchst! Auch sollte der Pfad der Datei immer gleich bleiben, z.B. C:\
Zur SCREEN-Funktion:
zeichen$ = CHR$(SCREEN(zeile, spalte, 0))
farbe = SCREEN(zeile, spalte, 1)
Ich muss aber sagen, dass ich die Funktion noch nie benutzt habe, weil man meistens weiß, was auf dem bildschirm ausgegeben wird *g*
Wenn du aber immer noch ganze Zeilen vom Bildschirm einlesen willst:
Code: |
rows = 50
cols = 80
'Bildschirmgröße.
'Kann variieren, je nach eingestelltem SCREEN, WIDTH u.Ä.
DIM Bildschirm (1 TO rows) AS STRING * cols
FOR zeile = 1 TO rows
FOR spalte = 1 TO cols
MID$(Bildschirm, spalte, 1) = CHR$(SCREEN(zeile, spalte, 0))
NEXT
NEXT
|
Sinnvoll, wenn man z.B. einen Screenshot von SCREEN 0 machen möchte, aber wie gesagt, ich war noch nie in der "Verlegenheit" *g*
Ich hoffe, das alles hilft dir! _________________ 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 |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 26.01.2005, 21:57 Titel: |
|
|
Das Thema Bildschirminhalt auslesen wurde bereits diskutiert. Zum Thema Pfad auslesen zwei Varianten:
1.) mit SHELL "dir":
http://beilagen.dreael.ch/QB/AKT_PFAD.BAS
2.) direkt die dafür zuständigen Betriebssystemroutinen aufrufen, einmal in der klassischen MS-DOS 6.22-Form und einmal für heutige lange Dateinamen:
http://beilagen.dreael.ch/QB/AKTPFAD2.BAS
Bildschirmausgabe hat Folgendes geschrieben: | E:\Dokumente und Einstellungen\andreas>qb /l qb c:aktpfad2
Pfad kurz: E:\DOKUME~1\ANDREAS
Pfad lang: E:\Dokumente und Einstellungen\andreas
E:\DOKUME~1\andreas>_ |
_________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|
|
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.
|
|