Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: sendmessage funktioniert nicht :(

  Alt 29. Apr 2004, 03:35
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;
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat