mouse-doppelclick by code

23/02/2011 - 10:32 von Thomas Hoffmann | Report spam
Tag,
habe unlàngst schonmal auf m.p.d.word.vba gepostet. Hatte dann eigentlich einen
funtionierenden code. Nun gehts plötzlich wieder nicht und ich versteh das nicht!
(ist hoffentlich nicht OT hier)

Also: ich möchte einen doppelclick aus vba-code auf den 'Format-übertragen'-Button von word.
Der Button (commandbarbutton cbb) hat keine hwnd-eigenschaft sondern liegt auf einer
msoCommandbar (cb)
Ich habe nun erfolgreich das handle dieser cb (mCbhwnd), habe die Koordinaten des cbb auf
dieser commandbar, kann sogar den mousecursor zentriert draufsetzen mit
SetCursorPosition mCBhwnd, xx, yy
aber was neulich noch ging geht nun plötzlich nicht mehr, hier den doppelclick zu setzen mit
SendMouseEvent = SendMessage(hwnd, lMsg, ByVal 0&, ByVal lp)
die Api gibt 0 zurück (ich gehe davon aus dass das noSuccess ist, da in anderen Programmen
hier 1 zurückgegeben wird) err.lastdllerror ist allerdings 0, hwnd ist korrekt, als lMsg
habe ich entsprechend Stoil Marinov auf
http://www.vbmonster.com/Uwe/Forum....ouse-click
SendMouseEvent hwnd, WM_LBUTTONDOWN, lX, lY
SendMouseEvent hwnd, WM_LBUTTONUP, lX, lY
SendMouseEvent hwnd, WM_LBUTTONDBLCLK, lX, lY
SendMouseEvent hwnd, WM_LBUTTONUP, lX, lY
gesendet, lX und lY sind long, werden so

lp=makeDWord(lx,ly)

Function MakeDWord(LoWord As Integer, HiWord As Integer) As Long
MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&)
End Function

korrekt umgesetzt.

Da in anderer Umgebung das ganze mit dem doppelclick funktioniert uns insbesondere auch in
word schon funktioniert hat neulich, verstehe ich nicht wo ich hier einen fehler suchen kann.

Hat einer eine Idee? Bin für alles dankbar!
Thomas Hoffmann
 

Lesen sie die antworten

#1 Hartwig Constien
23/02/2011 - 15:25 | Warnen spam
"Thomas Hoffmann" schrieb im Newsbeitrag
news:ik2k36$d4r$02$
Tag,
habe unlàngst schonmal auf m.p.d.word.vba gepostet. Hatte dann eigentlich
einen funtionierenden code. Nun gehts plötzlich wieder nicht und ich
versteh das nicht!
(ist hoffentlich nicht OT hier)

Also: ich möchte einen doppelclick aus vba-code auf den
'Format-übertragen'-Button von word.
...
Hat einer eine Idee? Bin für alles dankbar!



Hallo Thomas,

warum sprichst Du das Word-Objekt nicht direkt an und bedienst Dich seiner
Methoden statt Sendkeys(igitt) zu schicken? Die Doppelklick-Geschichte ist
doch nur vorhanden, um es dem User einfacher zu machen. Der VBA-Entwickler
ist darauf nicht angewiesen! Du kannst im Code das einmal gewàhlte Format so
oft übertragen wie Du willst.

' Einfach Word-VBA
Dim i As Integer
ActiveDocument.Paragraphs(1).Range.Select
Selection.CopyFormat
For i = 2 To ActiveDocument.Paragraphs.Count
ActiveDocument.Paragraphs(i).Range.Select
Selection.PasteFormat
Next i

Hang loose, Hartwig

Ähnliche fragen