Also um dir das Prinzip zu verdeutlichen wie es wohl am zweit einfachsten (neben der Fleißarbeit alle Funktionen der entsprechenden DLL zu wrappen und diese DLL dann in das Arbeitsverzeichnis des anderen Programms zu stecken) ist:
Halte den Fremdprozess an (alle Threads)
Lade den String mit dem Dateinamen deiner Library in den Speicher des Fremdprozesses
Führe LoadLibraryA/W mittels CreateRemoteThread_ im Fremdprozess aus
In AttachProcess deiner DLL: Ersetze die Anfänge der Originalfunktionen mit einem Jump in deine Funktionen aus der DLL (Kleiner interner Disassembler wird benötigt)
Lasse alle angehaltenen Threads fortfahren
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Ich will gemalten Text lesen, nicht von irgendeinem Control.
Einfach auf das Fenster gemalt per GDI.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Falko hat geschrieben:Dann hättest du es im Threadtitel mit "Gemalten Text vom Fremdfenster lesen" anstatt
"Text vom Fremdfenster lesen" schreiben können.
ts-soft hat geschrieben:Hört sich erst mal einfach an, aber der Text wird mit TextOut_() auf das Fenster gemalt.
So lautet der erste Satz. Kann man ja wohl erwarten, das soweit gelesen wird.
Ich heisse nicht Xaby und schreibe Romane.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Falko hat geschrieben:Dann hättest du es im Threadtitel mit "Gemalten Text vom Fremdfenster lesen" anstatt
"Text vom Fremdfenster lesen" schreiben können.
ts-soft hat geschrieben:Hört sich erst mal einfach an, aber der Text wird mit TextOut_() auf das Fenster gemalt.
So lautet der erste Satz. Kann man ja wohl erwarten, das soweit gelesen wird.
Ich heisse nicht Xaby und schreibe Romane.
Es gäbe noch eine Möglichkeit: Screenshot vom Fenster und OCR drüber laufen lassen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Vermutlich wird nicht Textout_() sondern DrawTextA_() API verwandt.
Sieht aber wohl leider so aus, das hier nichts mehr kommt
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
wenn Du das für Deinen Editor und den Profan-Compiler benötigsts, dann ist es TextOutA_().
Danke Andreas,
hast Du richtig erkannt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.