Hi,
probiere doch einfach mal aus, ob du damit wenigstens die Button eines selbst geschriebenen Test-Programms clicken kannst, und ob es (wenn ja) dann eben doch irgendwie an MS-Word liegt.
Weil's mich ebenfalls kurz interessierte, habe ich das auch mal schnell so gemacht. Ergebnis: FindWindowEx gab leider immer eine 0 zurück. Erst als ich es durch EnumChildWindows ersetzte, funktionierte es ...und zwar auch mit deiner originalen SendMessage-Zeile.
Code:
...
// statt: << hButton := FindWindowEx(hApp, 0, nil, 'NO'); >>
// eventuell mal dieses:
EnumChildWindows(hApp, @EnumChildProc, 0);
...
// füge diese Proc irgendwo über deinen geposteten Zeilen ein
function EnumChildProc(hWindow: HWND; lParameter: LPARAM): Bool; stdcall;
var CtrlNameStr : string[255];
CtrlNameStrLen : integer;
begin
CtrlNameStrLen := GetWindowText(hWindow,@CtrlNameStr[1],255);
SetLength(CtrlNameStr,CtrlNameStrLen);
if CtrlNameStr <> 'No' then Result := true
else begin
Form1.hButton := hWindow;
Result := false;
end;
end;