Seite 3 von 4

Re: AutoWin UserLibrary

Verfasst: 19.05.2012 21:31
von ts-soft
Abraham0607 hat geschrieben:Das einzige was mir noch fehlt ist so was wie "AW_GetMousePos()" oder so.
Dafür kannst Du doch einfach DesktopMouseX() und DesktopMouseY() nutzen :wink:

Re: AutoWin UserLibrary

Verfasst: 19.05.2012 21:52
von Falko
oder meint er vielleicht so was wie:
GetCursorPos()

Re: AutoWin UserLibrary

Verfasst: 19.05.2012 21:58
von ts-soft
Falko hat geschrieben:oder meint er vielleicht so was wie:
GetCursorPos()
Ist doch im Grunde dasselbe:

Code: Alles auswählen

Delay(1000)
Define cur.POINT
GetCursorPos_(@cur)
Debug cur\x
Debug cur\y
Debug DesktopMouseX()
Debug DesktopMouseY()

Re: AutoWin UserLibrary

Verfasst: 20.05.2012 00:01
von Falko
sry, hast Recht, ist das Selbe wie der PB-Befehl. :allright:

Ich hatte an was anderes gedacht.
Die Cursorposition innerhalb eines Windows, z.B. mit FindWindow_(...)
gefundenen Windows und dort blinkenden Cursor.
Also Cursorposition nicht bezogen auf dem Desktop, sondern auf dieses Windows.
Nur bietet die API dazu keine spezielle Funktion, sondern man muss diese selbst errechnen.
Wozu man GetWindowRect_() usw. benötigt.


Gruß,
Falko

Re: AutoWin UserLibrary

Verfasst: 20.05.2012 00:29
von NicknameFJ
Hallo Falko,

ist denn Clienttoscreen_()

was Du suchst?

http://msdn.microsoft.com/en-us/library ... 85%29.aspx

NicknameFJ

Re: AutoWin UserLibrary

Verfasst: 20.05.2012 01:05
von Falko
Nicht ganz. Wenn ich den Code so ausführe, wird so die Position des
Fensters ermittelt, aber nicht des Cursors in diesem Windows.
Es sei denn, ich muss das anders schreiben.

Code: Alles auswählen

cur.Point
RunProgram("notepad.exe"); nur zum Test den internen Cursor entern und Mouse wo anders hinbewegen
Delay(4000)
hwnd=FindWindow_(0,"Unbenannt - Editor")
Debug ClientToScreen_(hwnd,@cur)
Debug cur\x
Debug cur\y
Gruß,
Falko

Re: AutoWin UserLibrary

Verfasst: 20.05.2012 01:12
von ts-soft
Ihr sucht nicht den Cursor, sondern die Caretposition, also dort wo der Schreibcursor blinkt. Dazu muss das handle des
Textcontrols bekannt sein, sowie die Message um diese Position zu ermitteln, dies hängt wiederum vom Control
ab (RichText, Scintilla, RAEdit, HumpfelGrumpfel usw.)

Solch eine Funktion in zuverlässiger Version ist wohl eher nicht von mir zu erwarten :mrgreen:
zumal der Nutzen auch nicht so groß sein dürfte.

Re: AutoWin UserLibrary

Verfasst: 20.05.2012 14:00
von Falko
Schade.
Das wäre praktisch beim automatischen ausfüllen von Überweisungen oder
Formularen etc.

Sicher ist es nicht einfach, aber eine Funktion zum ermitteln oder schreiben
dieser Felder wäre doch praktisch, oder?

Passt doch hierzu:
ts-soft hat geschrieben:AutoWin ...dient dem automatisieren von Abläufen unter Windows...
:allright:

Vielleicht gibt es ja noch einfachere Möglichkeiten. Ich erinnere mich, das Danilo damals sowas
in der Art als Beispiel geschrieben hatte, finde es aber nicht wieder.

Gruß,
Falko

Re: AutoWin UserLibrary

Verfasst: 20.05.2012 14:10
von ts-soft
Formulare, deren Aufbau ich nicht kenne, kann ich schlecht ausfüllen, andere Formulare gibts es keine
Probleme und man benötigt nicht die Caretposition, sehe ich den Sinn nicht.
Webformulare kann man allerdings nicht ausfüllen, dafür ist die Lib nicht konzipiert und wird sie nie sein.

Re: AutoWin UserLibrary

Verfasst: 20.05.2012 14:44
von NicTheQuick
Mal so ins Blaue geraten:
Man könnte ja den Nutzer fragen, ob er mit der Maus auf das erste Formularfeld klickt und dann kann man einfach Eingabe simulieren. Und um zum nächsten Feld zu springen, wird einfach 'Tab' simuliert. Natürlich muss der Formularaufbau und die Tab-Reigenfolge dafür bekannt sein.