AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Andere Anwendugn steuen

Ein Thema von Dumpfbacke · begonnen am 22. Jan 2014
Antwort Antwort
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Andere Anwendugn steuen

  Alt 22. Jan 2014, 06:45
Hallo Leute,
ich möchte genre einen andere Anwendung aus Delphi heraus steuern. Bei einem Programm funktioniert es ganz gut. Ich besorge mir die Daten mittels WinSpy und schreibe dann Werte in ein Textfeld.

Beispiel hier hat jedes Feld seine eigene Nummer. Hier ist es z.B. das 9. Edit Feld.

Delphi-Quellcode:
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;

var
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('IEFWINDOW','Stuecklisten bearbeiten');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'IEFWINDOW', nil);
    wndChild := FindWindowEx2(wndChild,'Edit', 9);
    if wndChild <> 0 then
    begin
      ShowMessage('Window Handle: ' + IntToStr(wndChild));
      FlashControl(wndChild); // internal function
    end;
  end;
end.
Das ganze wollte ich nun bei einen anderenProgramm machen nur da funktioniert es beim besten willen nicht da die einzelnen Edit Felder kein "eigenen Zahl" haben,

Es handel sich beim Programm um BMC Remedy. Dort kann man zwar vieles mittels Macros machenm jedoch nicht alles. Zur not muss ich hat die Maus steuern und in das Feld klicken, was ich auch schon gemacht habe, jedoch wäre der andere Weg mir lieber uns sicherer.

Kann mir jemand hier helpgen ?

Tanja

Delphi-Quellcode:
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;

var
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('ArFrame',******');
if wndMain <> 0 then
begin
wndChild := FindWindowEx(wndMain, 0,
'MDIClient', nil);
wndChild := FindWindowEx(wndChild, 0,
'Afx:00400000:b:00000000:00000006:1E4209F1', nil);
wndChild := FindWindowEx(wndChild, 0,
'AfxMDIFrame70', nil);
wndChild := FindWindowEx(wndChild, 0,
'AfxFrameOrView70', nil);
wndChild := FindWindowEx2(wndChild,
'SysTabControl32', 3);
wndChild := FindWindowEx2(wndChild,
'AfxWnd70', 12);
wndChild := FindWindowEx(wndChild, 0,
'RichEdit20A', nil);
if wndChild <> 0 then
begin
ShowMessage(
'Window Handle: ' + IntToStr(wndChild));
SetWinText(wndChild,
'Ja');
FlashControl(wndChild); // internal function
end;
end;
end.
Tanja
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz