Wie kann ich einen Text entfernen und neu setzen?

Anfängerfragen zum Programmieren mit PureBasic.
Dr.Pixel
Beiträge: 90
Registriert: 12.08.2005 12:38

Wie kann ich einen Text entfernen und neu setzen?

Beitrag von Dr.Pixel »

Hallo.
Ich habe ein Programm mit Textfeldern, die man über die WinAPI
nicht finden und ansprechen kann.
Daher bewege ich die Maus mit SetcursorPos_ an die Position des Text-Gadgets. Dann führe ich mit

Code: Alles auswählen

#MOUSEEVENTF_LEFTDOWN = $2 
#MOUSEEVENTF_LEFTUP = $4

Procedure MouseEvent(Ereignis.l) 
  Mem.l=GlobalAlloc_(0,8) 
  GetCursorPos_(Mem) 
  mouse_event_(Ereignis|#MOUSEEVENTF_ABSOLUTE,PeekL(Mem)*($FFFF/GetSystemMetrics_(0)),PeekL(Mem+4)*($FFFF/GetSystemMetrics_(1)),0,GetMessageExtraInfo_()) 
  GlobalFree_(Mem) 
EndProcedure 

SetCursorPos_(100,100)
MouseEvent(#MOUSEEVENTF_LEFTDOWN) 
MouseEvent(#MOUSEEVENTF_LEFTUP) 
...einen doppelklick aus. Textcursor ist jetzt in diesem Textfeld aktiviert.
Nun möchte ich die Taste [Entf] bzw. deren Funktion ausführen lassen. (Möchte den Inhalt des Textfeldes löschen)
Blos wie kann ich dies bewerkstelligen?

Andere Möglichkeit: Wenn ich mit dem oben beschriebenen Code
den Textcursor in das Textfeld gesetzt habe, wird durch das Programm
ein neues handle erstellt. Damit könnte ich jetzt endlich das Textfeld
ansprechen!
Blos wie kann ich nun den Text aus diesem Textfeld auslesen bzw. ändern?
Hat jemand ein Codebeispiel in PB oder WinAPI ?

Danke.
Dr. Pixel
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Wenn ich mir so Deine ganzen Fragen ansehe, denke ich, Du könntest Dir ne menge Arbeit durch meine AutoItX3 Lib ersparen, die Du auf PureArea.net findest.
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.
Bild
Dr.Pixel
Beiträge: 90
Registriert: 12.08.2005 12:38

Beitrag von Dr.Pixel »

OK, werde ich einmal testen.

Gibt es auch eine Anleitung, wie ich diese DLL einbinde und deren Befehle nutze?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Die DLL ist in der Lib includiert, das heißt die PBOSL Libraries sollten auch installiert sein. Eine Hilfe in deutsch liegt dem Paket bei. Die Sourcen einschl. Hilfe sind auch dabei. Per Compilerdirektive läßt sich das Paket auch so Compilieren, das die DLL benötigt wird. Hierzu benötigste aber Tailbite.

Einfaches Example ist auch beigefügt. Ich hoffe das die Lib Einsteigergerecht gemacht wurde.

Sehr Empfehlenswert wäre es, wenn Du Dir zusätzlich AutoIt3 installierst, dann kannst Du die dort enthaltenen Tools (sowas ähnliches wie WinSpy ist dabei) auch nutzen.

Ich denke, Du wirst schon klarkommen, ansonsten einfach Fragen :allright:

//Nachtrag: Ich meine die Lib im ShowCase, da gibts nämlich noch eine, die ist nicht von mir und enthält auch keine dt. Hilfe
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.
Bild
Antworten