Einzelnen Beitrag anzeigen

gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#1

Probleme mit Adobe Reader

  Alt 15. Nov 2009, 14:32
hey,
ich möchte mit einem Programm die seitenzahl von dem Reader ändern.
Ja klingt irg. sinnlos ist aber nur ein teil eines PRogrammes...

so ich hab mir gedacht:
-ich such das Handle des Feldes wo man die Seitenzahl eingibt
-ich lösch die Zahl aus diesem Editfeld
-Ich schreib eine neue Zahl hinein
-Ich schreib ein "enter" hinein.

umgesetzt hab ichdas so :

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Handle : THandle;

function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var
  i: Word;
  hChild: HWND;
begin
  hChild := 0;
  Result := 0;
  Dec(ChildNr);
  for i := 0 to ChildNr do
  begin
    hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil);
    if hChild = 0 then
      Break;
    Result := hChild;
  end;
end;
function Handle_suchen_Edit : THandle ;
var
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('AcrobatSDIWindow',nil);
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'AVL_AVView', nil);
    wndChild := FindWindowEx2(wndChild,'AVL_AVView', 10);
    wndChild := FindWindowEx2(wndChild,'Edit', 3);
    if wndChild <> 0 then
    begin
      Result := wndChild ;
    end
    else
      Result := 0;
  end
  else
    Result := 0;
end;

begin
  Handle := Handle_suchen_Edit ;
  if Handle <> 0 then
  SendMEssage(Handle, VK_Clear,0,0);
  SendMessage(Handle, WM_CHAR, Ord(55), 0);
  SendMEssage(Handle, VK_Return,0,0);
end;
soo es funktioniert auch alles bis auf die letzte Zeile ...
wisst ihr wieso ich da kein Return rein senden kann ?!
also er trägt in das edit-feld die Seitenzahl ein, die Ich will aber er ghet nicht zu dieser hin...
aber wenn ich von hand in das Feld klick und "enter" drück geht der dahin ...

wisst ihr woran das liegen könnte ?!

lg
  Mit Zitat antworten Zitat