Autor Beitrag
monsoon
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 04.12.02 17:20 
hallo, habe eine frage an die experten.

ich möchte unter delphi etwas realisieren. ich möchte bestimmte strings die ich erzeuge oder aus einer datenbank hole in einem anderen programm, das in einem eigenen fenster läuft eingeben. auf deutsch, ich habe zwei programme aktiv, mein delphi programm, das ich hoffentlich noch schreiben werde und ein anderes programm, z.b. eine datenbank oder ein sportprogramm, das die mitgliederverwaltet, ihre leistungen und und und. aber ich will das nicht alles immer mit der hand eingeben müssen. das ist zu lang auf die dauer. fiele sachen sind einfach nur standart... jetzt würde ich mir gerne ein delphi prog. schreiben, das die bestimmten standarts automatisch (immer wenn ich mein ok in delphi gebe) diese sachen in einem anderen fenster, in der datenbank für mich eingibt, also die strings von delphi in dem anderen fenster übergeben. dabei müssen auch steuerzeichen, wie tabulator und enter möglich sein, dann könnte ich die eingabe masken schnell abhandeln. wenn ich das am ende des tages für 50- 60 leute mache dauert das ewig.

ghet das? wenn ja wie und was muss ich machen.
grundlagen von pascal und delphi sind vorhanden. kleiner programme wurden schon geschrieben, aber noch nix, was in dieser art ist.

bitte mir helfen, wenn es geht...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.12.02 20:27 
Kuck mal in der WinAPI-Sparte, da müßtest du fündig werden. Und da gehört dein Post eigentlich auch hin.

Stichwörter: FindWindow, FindWindowEx, GetDlgItem, WM_SETTEXT, SendMessage.
monsoon Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 05.12.02 09:57 
sorry, wollte mich nicht verirren. scheine jetzt aber in der richtigen rubrik gelandet zu sein. ich habe hier schon mal ein bischen gestöbert.
im grunde sind hier schon einige beiträge, die mir weiterhelfen.
aber ich bin nur ein mini programmierer. mein verständniß reicht nicht um alles zu verstehen, oder zum funktionieren zu bringen...
ich schreibe es noch mal:

problem1: ich möchte ein editfeld von meinem delphiprog. in das editfeld eines anderen window übertragen, und auch steuerzeichen, wie enter und tab senden können.

problem2: bitte erklärt es mir gaaanz langsam und leicht, ich bin dumm und mache nur jeden erdenklichen fehler.

würde mich aber dennoch freuen, wenn sich jemand traut es mir zu erklären. aber nicht von wegen benutze es so und so. ein listimng zum aptippen die routinen mit exakter beschreibung... bitte, bitte...
look2k
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Fr 06.12.02 17:48 
ich möchte derzeit das gleiche realisieren und habe folgendes gefunden.

1. lade dir mal das tool X-Spy um die handel id des edit feldes auszulesen
www.auq.de/viewtopic...8&highlight=xspy

2. nun habe ich die handle id des tedit feldes und verwende folgenden code

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  hWnd, hEdit: Cardinal;
  buffer: array[0..255] of Char;
begin
  hWnd := FindWindow(nil, 'FENSTERNAME');
  hEdit := GetDlgItem(hWnd, HANDELID);
  lstrcpy(buffer, 'DEINTEXT');
  SendMessage(hEdit, WM_SETTEXT, 0, Integer(@buffer));

end;


bei mir hat er dann das eine feld ausgefüllt.

jetzt habe ich jedoch noch ne frage.

wenn das sys jetzt neu gestartet wird verliert er die handle id und kriegt ne neue. wie kann ich es realisieren das ich nicht vor jedem start des progs mittels x-spy die handelID's raussuchen muss.

cu look2k
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.12.02 18:16 
Was ist denn HNADLEID? Du mußt da die ID des Edits angeben, die ändert sich nämlich nicht. Und Wenn HANDLEID das Handle des Edit ist, dürfte GetDlgItem nicht funktionieren, da als zweiter Parameter die ID des Edits benötigt wird.
look2k
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Fr 06.12.02 18:24 
also die Handle ID aus dem x-spy ändert sich nach jedem neustart, so ist es bei mir zumindest.

und der code funkt, aber wie gesagt nur bis zum nächsten reboot.

im x-spy steht ja in der linken spalte die handle ID des jeweiligen elements auf der form

aber wenn es ne fixe id gibt währe das natürlich am besten(das element liegt auf einer childform )

wenn du da nen code hättest währe das spitze.

cu look2k
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.12.02 18:33 
X-Spy kenne ich jetzt nicht. Aber wenn sich die HandleID jedes mal ändert, dann ist es das Handle und nicht die ID des Steuerelementes.

Hol dir am besten die ID des Childfensters und dann mit GetDlgItem das Handle des Childfensters und dann noch mal mit GetDlgItem das Handle des Edits. Hier gibts du dann las Handle für GetDlgItem das gefundene Handle des Childfensters an.

Und noch mal, ich kann es nicht glauben, dass GetDlgItem dir einen brauchbaren Wert liefert, wenn du als zweiten Parameter ein Handle angibst.

Siehe hier: msdn.microsoft.com/l.../cerefGetDlgItem.asp