Hallo Leute, ich hoffe es geht euch gut, denn ich habe wieder eine simple Frage für euch.
Ich programmiere gerade sone Console und möchte den Inhalt, was da mit Print[N]() wiedergegeben wurde, lesen und in einer Datei abspeichern.
Mein Problem ist aber, dass ich nicht umsetzen kann und außerdem habe ich in der PB-Hilfe, CAV, Google und im PB-Board nachgeschaut, aber leider nix gefunden.
Bitte helft mir, thx.
Console-Inhalt lesen und speichern
Re: Console-Inhalt lesen und speichern
Hi,
dieses Thema ist zwar ein wenig alt, hab aber nichts anderes passendes gefunden. Ich möchte ebenfalls bereits in der Console ausgegebenen Text lesen. Das habe ich mir in etwa so vorgestellt:
Leider bekomme ich aber anscheinend keinen Zugriff auf den Console Screen Buffer? Nach meiner Recherche in der MSDN fehlt mir wohl das "GENERIC_READ access right". Oder mache ich etwas anderes falsch und baue ich hier einfach totalen Mist? OS ist übrigens WinXP.
dieses Thema ist zwar ein wenig alt, hab aber nichts anderes passendes gefunden. Ich möchte ebenfalls bereits in der Console ausgegebenen Text lesen. Das habe ich mir in etwa so vorgestellt:
Code: Alles auswählen
Procedure.s __GetConsoleCharacter( x.l, y.l, length.l = 1 )
If length > 0
ret$ = Space( length )
readCoord.COORD
readCoord\x = x
readCoord\y = y
numberOfCharsRead.l
If ReadConsoleOutputCharacter_( GetStdHandle_( #STD_OUTPUT_HANDLE ), @ret$, length, readCoord, @numberOfCharsRead )
Debug numberOfCharsRead
ProcedureReturn ret$
EndIf
EndIf
ProcedureReturn #NULL$
EndProcedure
OpenConsole()
EnableGraphicalConsole( #True )
For i = 0 To 20
ConsoleLocate( 0, i ) : Print( "BlaBliBlub1234567890abcdefghijklmnopqrstuvwxyz" )
Next i
Debug __GetConsoleCharacter( 0, 10, 5 )
Debug GetLastError_() ;<- ERROR_ACCESS_DENIED (0x5) !!!!!!!!!!!!!!!!
Input()
CloseConsole()
End
Re: Console-Inhalt lesen und speichern
Vielleicht hilft das ein bisschen weiter?
ist allerdings auch nicht das gelbe vom ei
ist allerdings auch nicht das gelbe vom ei
Code: Alles auswählen
Buffer.s=Space(10000)
OpenConsole()
size=ReadConsoleData(@Buffer,10000)
PrintN("Du hast folgendes geschrieben:")
PrintN(Left(Buffer,size))
Input()
CloseConsole()
End



Re: Console-Inhalt lesen und speichern
Das hilft mir auch nicht wirklich weiter. ReadConsoleData() liest ja nur etwas aus dem Input-Buffer, so wie z.B. PeekConsoleInput (http://msdn.microsoft.com/en-us/library ... 85%29.aspx). Ich möchte ja etwas auslesen, was bereits ausgegeben wurde. In einer anderen Funktion möchte ich Eigenschaften wie Text- und Hintergrundfarbe an einer bestimmten Position der Console ermitteln. Aber bei ReadConsoleOutputAttribute_() bekomme ich ebenfalls den Fehler 5.
Re: Console-Inhalt lesen und speichern
bin gerade über was gestolpert, vieleicht hilft es dir weiter. schau mal hier auf seite 250.
Ein Vorteil von CScript ist, dass es mit der Methode WScript.StdIn.ReadLine() das Einlesen von Eingaben des Benutzer im DOS-Fenster unterstützt. Ausgaben können mit dem DOS-Befehl für Umleitungen (>) in eine Textdatei oder an einen Drucker umgeleitet werden.