| |
|
|
Heinz Bernhard | Hallo Zusammen, ich benötige Eure Hilfe ! Für meinen sehbehinderten Nachbarn, 19"-Bildschirm, Bildschirmauflösung 800x600 und Software-Lupe, habe ich eine spezielle Bildschirm-Tastatur programmiert.
Alle gewünschten Tasteneingaben funktionieren prima. Problem : In fremden Fenstern braucht man zum Schreiben dessen Handle. Die folgenden Befehle funktionieren einwandfrei : Win$ = "Dokument" (z.B. für Word) Win% = FindWindow(Win$)
Statt der programmierten Festlegung mit "Dokument" für Word, es soll ja auch in anderen Programmen (E-Mails) geschrieben werden, habe ich ein Eingabeedit mit Bestätigung erstellt. Hier kann die Titelzeile des jeweiligen Programms mit 3-4 Buchstaben eingegeben und bestätigt werden - klappt auch alles super. Dies möchte ich ihm aber nicht zumuten.
Ich kann aber auch z.B. Word nicht aufrufen um das Handle zu erhalten, da auch in fertigen Word-Dokumenten oder aber auch anderen Programmen geschrieben werden soll.
Die systeminterne Microsoft-Bildschirmtastatur erkennt automatisch alle Fenster, dass möchte ich auch erreichen.
Daher meine Frage an Euch : Wer kann meine obigen Befehlszeilen editieren ? Versucht habe ich es mit "GetActivateWindow" und "%Desktop" - kein Erfolg. Vielleicht habe ich mich ja auch in was falsches verrannt ? Ich bedanke mich im Voraus - es ist ja alles für einen guten Zweck.
Dankbare Grüße von Heinz Bernhard |
|
|
| |
|
|
|
| Schicke mal einfach an 0 -
das könnte durchaus funktionieren.
Quasi SendKey(0,... |
|
|
| |
|
|
|
E.T. | In Dietmar's XProfanmanager findet sich ein Programm namens "Fensterfänger" von Uwe "Pascal" Niemeier. Ich weis jetzt nicht, ob da der Quellcode dabei ist, aber dieses Dinges findet wirklich alles. Wäre vlt. mal ein Ansatz, nach dem Code zu schauen und sich evtl. was daraus abzuleiten. |
|
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 30.11.2011 ▲ |
|
|
|
|
| Der Fensterfänger ( [...] ) nutzt imho [Child]WindowFromPoint-API(s) -
ich glaube aber die braucht er garnicht. |
|
|
| |
|
|
|
| Der Fensterfänger ( [...] ) gibts natürlich auch bei SDK ( [...] ) oben angepinnt -
nutzt imho [Child]WindowFromPoint-API(s) -
ich glaube aber die APIs braucht er garnicht. |
|
|
| |
|
|
|
Heinz Bernhard | Hallo, bis jetzt schon mal herzlichsten Dank dafür, dass Ihr Euch mein Problem angeschaut habt !!! Werde Beides jetzt testen und poste morgen Erfolg oder Pech. Gruß Heinz |
|
|
| |
|
|
|
E.T. | Das mit dem Fensterfänger war nur so ein Gedanke: Mit der Maus das Fenster "suchen" und (ohne zu klicken) irgendwo den Fenstertitel schön vergrößert anzeigen. Und bei klick auf den angezeigten Titel das entsprechende Fenster aktivieren (das handle hat man dann ja, dann ists zum Bsp. auch egal ob das Word-Fenster "Dokument" oder "Ich schreibe grade was" heist). |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 01.12.2011 ▲ |
|
|
|
|
E.T. | Hm, grad gesehen: Fensterfänger ohne Quelltext, also alles neu bauen |
|
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 01.12.2011 ▲ |
|
|
|
|
| Von Frank gibt's hier ja noch [...] , jedoch :
' (W) 2003 Frank Abbing
'
Declare sx&,sy&,bereich#,be#,erg&,erg2&,x&,y&,text$,handl&
Dim be#,8
Dim bereich#,1024
DEF GetCursorPos(1) !"USER32","GetCursorPos"
DEF WindowFromPoint(2) !"USER32","WindowFromPoint"
DEF ChildWindowFromPoint(3) !"USER32","ChildWindowFromPoint"
Def GetSysColor(1) !"USER32","GetSysColor"
Def ScreenToClient(2) !"USER32","ScreenToClient"
Def GetClassName(3) !"USER32","GetClassNameA"
Def GetWindowText(3) !"USER32","GetWindowTextA"
DEF NewWindowPos(7) !"USER32","SetWindowPos"
DEF AllocConsole(0) !"KERNEL32","AllocConsole"
Proc DText
Parameters xx&,yy&,ttext$
Drawtext xx&,yy&,ttext$
EndProc
Windowtitle "Fensterhandles..."
windowstyle 26
window (%maxx/2-112),(%maxy/2-80)-444,164
settruecolor 1
cls GetSysColor(15)
NewWindowPos(%hwnd,-1,0,0,0,0,$13)
Usefont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
whilenot %mousepressed=2
Sleep 10
GetCursorPos(be#)
x&=Long(be#,0)
y&=Long(be#,4)
erg&=@WindowFromPoint(x&,y&)
If erg&<>0
ScreenToClient(erg&,be#)
x&=Long(be#,0)
y&=Long(be#,4)
erg2&=@ChildWindowFromPoint(erg&,x&,y&)
EndIf
TextColor 0,GetSysColor(15)
handl&=@GetActiveWindow()
DText 8,8, "Maus Position X = "+Str$(x&)+" "
DText 8,21,"Maus Position Y = "+Str$(y&)+" "
DText 8,38,"Handle eigenes Fenster = $"+@Hex$(%hwnd)+" "
DText 8,55,"Handle unter Mauszeiger = $"+@Hex$(erg&)+" "
DText 8,68,"Handle unter Mauszeiger (Child) = $"+@Hex$(erg2&)+" "
GetClassname(erg&,bereich#,128)Declare sx&,sy&,text$,x&,y&,bereich#
text$=String$(bereich#,0)
DText 8,85,handl&'"Klassenname = "+text$+" "
GetWindowText(erg&,bereich#,128)
text$=String$(bereich#,0)
DText 8,98,"Fenstername = "+text$+" "
@SendMessage(erg&,13,128,bereich#)
text$=String$(bereich#,0)
DText 8,111,"Fenstertext = "+text$+" "
wend
Dispose be#
Dispose bereich#
end
kann ich nicht finden. Ich hoffe er nichts dagegen, dass ich ihn hier einstelle. |
|
|
| |
|
|
|
E.T. | Naja, wird schon nicht so schlimm sein: Frank hat ja kein (C) reingeschrieben sondern ein (W), was ja wohl für "Wer auch immer es benutzen und weiterverarbeiten und veröffentlichen will" steht ... oder "Woppel-Right"... |
|
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 01.12.2011 ▲ |
|
|
|
|
| Schaut mal ob das hier bei Euch läuft... (bei mir tuts so... ^^)
Wenn die App läuft sendet sie alle 2,5 Sekunden an das aktuell-aktive Fenster den Tastendruck A.
Download externer Download
|
|
|
| |
|
|
|
Dieter Zornow | Bei mir läuft es auch. Das Problem dürfte wohl sein, wenn ich auf der virtuellen Tastatur was eingebe ist das Tastaturfenster aktuell. |
|
|
| XProfan X2Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 01.12.2011 ▲ |
|
|
|