Announcement

Collapse
No announcement yet.

Text in eine Editbox eines fremdes Fenster eintragen...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Text in eine Editbox eines fremdes Fenster eintragen...

    Hallo,

    wie kann ich einen Text an ein anderes Fenster schicken, dass zwei Editfelder beinhaltet?<br>
    Das heißt in das obere soll z.b. "Hallo" stehen und in dem unteren "Welt!".

    Tschüss Tim

  • #2
    Indem Du einfach sagst Deinform.DeinEdit.Text:= 'Hallo';
    Oder entsprchend auf das Steuerelemen verweisen, von dem aus Du den Text verschicken willst.
    Also Deinform.DeinEdit.Text:= DeinanderesForm.DeinanderesEdit.Text;
    Du musst natürlich sicherstellen, das das andere Fenster auch existiert

    Comment


    • #3
      Hallo Andreas,

      nein danke, das wusste ich schon ;-).<br>
      Ich meinte wenn eine Anwendung, wie der Windows-Logindialog läuft, diesem einen Usernamen und ein Passwort in die entsprchenden Felder einzutragen und anschließend den OK-Button drücken zu lassen.

      Tschüss Ti

      Comment


      • #4
        Hallo,

        wenn <b>nicht</b> der Login-Dialog von Windows ausgefüllt werden soll, kann man bei normalen Anwendungen folgenmassen vorgehen:
        <pre>
        procedure TForm1.Button1Click(Sender: TObject);
        var
        hAOLWnd,
        hMDIWnd,
        hDlgWnd,
        hPwdWnd : hWnd;
        begin
        hAOLWnd := FindWindow('AOL Frame25', nil);
        if hAOLWnd <> 0 then
        begin
        hMDIWnd := GetWindow(hAOLWnd, GW_CHILD);
        if hMDIWnd <> 0 then
        begin
        hDlgWnd := GetWindow(hMDIWnd, GW_CHILD);
        if hDlgWnd <> 0 then
        begin
        hPwdWnd := FindWindowEx(hDlgWnd, 0, PChar('_AOL_Edit'), nil);
        MessageBeep(0);
        SendMessage(hPwdWnd, WM_SetText, 0, LongInt(PChar('Test')));
        end;
        end
        end;
        end;
        </pre>
        Das Beispiel füllt den Paßwort-Dialog von AOL aus, indem über die mit WinSight ermittelten Namen der Fensterklassen nach dem zuständigen EDIT-Feld gesucht wird. Den Rest erledigt WM_SETTEXT

        Comment


        • #5
          Hallo Andreas,

          danke, auf dieses Beispiel bin ich hier im Forum schon kurz nach meiner Frage gestoßen.<br>
          Mein Problem ist, wie ich den Namen der beiden Edit-Felder herausbekomme, denn du hast ja mit "FindWindowEx(hDlgWnd, 0, PChar('<b>_AOL_Edit</b>'), nil);" einfach den Wert _AOL_Edit.<br>
          Den habe ich aber noch nicht. - Gut mit WinSight kann dieser ermittelt werden, aber ginge das nicht auch in Delphi?

          Tschüss Ti

          Comment


          • #6
            Hi Tim,<br>
            <br>
            hier www.entwickler-forum.de<a href="/webx?13@@.ee86474/2">Christian Proft "Fenster finden und String übergeben" 07.08.2001 16:25</a><br>
            hab ich mal den Source für ein Minmaltool gepostet, mit dem Du so etwas ermitteln kannst.<br>
            (Ist auch leicht um weitere Informaitionen erweiterbar)
            Das Problem ist nur, dass du bei mehreren Edit Feldern mit der Class nicht weiterkommst.<br>
            Diese musst Du dann mit der ID unterscheiden. Warum auch immer aber bislang ist es mir nicht gelungen<br>
            über die ID mit GetDlgItem ein Handle auf ein Edit Feld zu bekommen.<br>
            So wie ich das sehe bleibt nur mit GetWindow die Controls durchzugehen und die ID zu vergleichen<br>
            bis das gewünschte Feld erreicht ist.<br>
            <br>
            Ciao<br>
            Chri

            Comment


            • #7
              Hi Tim,<br>
              <br>
              hier http:\\www.entwickler-forum.de<a href="/webx?13@@.ee86474/2">Christian Proft "Fenster finden und String übergeben" 07.08.2001 16:25</a><br>
              hab ich mal den Source für ein Minmaltool gepostet, mit dem Du so etwas ermitteln kannst.<br>
              (Ist auch leicht um weitere Informaitionen erweiterbar)
              Das Problem ist nur, dass du bei mehreren Edit Feldern mit der Class nicht weiterkommst.<br>
              Diese musst Du dann mit der ID unterscheiden. Warum auch immer aber bislang ist es mir nicht gelungen<br>
              über die ID mit GetDlgItem ein Handle auf ein Edit Feld zu bekommen.<br>
              So wie ich das sehe bleibt nur mit GetWindow die Controls durchzugehen und die ID zu vergleichen<br>
              bis das gewünschte Feld erreicht ist.<br>
              <br>
              Ciao<br>
              Chri

              Comment


              • #8
                Hi Tim,<br>
                <br>
                hier <pre><a href="/webx?13@@.ee86474/2">Christian Proft "Fenster finden und String übergeben" 07.08.2001 16:25</a></pre><br>
                hab ich mal den Source für ein Minmaltool gepostet, mit dem Du so etwas ermitteln kannst.<br>
                (Ist auch leicht um weitere Informaitionen erweiterbar)
                Das Problem ist nur, dass du bei mehreren Edit Feldern mit der Class nicht weiterkommst.<br>
                Diese musst Du dann mit der ID unterscheiden. Warum auch immer aber bislang ist es mir nicht gelungen<br>
                über die ID mit GetDlgItem ein Handle auf ein Edit Feld zu bekommen.<br>
                So wie ich das sehe bleibt nur mit GetWindow die Controls durchzugehen und die ID zu vergleichen<br>
                bis das gewünschte Feld erreicht ist.<br>
                <br>
                Ciao<br>
                Chri

                Comment


                • #9
                  Hi Tim,<br>
                  <br>
                  hierunter<br>
                  <a href="/webx?14@@.ee86474">Martin Moscow "Fenster finden und String übergeben" 07.08.2001 20:05</a><br>
                  habe ich mal den Source für ein Minimaltool gepostet, mit dem Du solche Informationen auch ermitteln kannst.<br>
                  (Ist auch leicht erweiterbar)<br>
                  Das könnte Dir als Basis für ein solches Auslesen dienen.<br>
                  Nur dürftest Du dabei eventuell auf ein kleines Problem stossen:<br>
                  Wenn ein Fenster mehrere gleiche Controls hat, so ist deren Klassenname üblicherweise gleich,<br>
                  so dass Du sie nur an ihrer ID unterscheiden kannst.<br>
                  So gesehen, brauchst Du eh' ein Tool, mit dem Du diese Info im Vorab auslesen kannst.<br>
                  Nach allem, was ich bislang gesehen habe, ändern sich diese ID's auch bei unterschiedlichen Sprachversionen des Programmes nicht.<br>
                  (Besonders bei Button interessant).<br>
                  Um über die ID dann auf das Handle des Controls zu kommen sollte sich dann GetDlgItem nutzen lassen.<br>
                  Bei ersten Versuchen ist es mir allerdings (unter W2k) nicht gelungen hiermit ein Handle auf ein Edit Control zu bekommen.<br>
                  Bei Button hat es geklappt.<br>
                  Bleibt also vorerst wohl nur der Weg über sich über GetWindow Aufrufe die Handles zu ermitteln, bis<br>
                  ein Control mit der entsprechenden ID erreicht ist.<br>
                  Theoretisch ginge es zwar auch mit FindWindow(ex), das setzt dann aber einen eindeutigen Text im Edit voraus,<br>
                  und das dürfte in aller nicht gegeben sein.<br>
                  <br>
                  Ciao<br>
                  Chris<br>
                  <br>
                  PS: Kann mir mal jemand verraten, wie ich einen Link des Forums posten kann,<br>
                  ohne dass er zum Titel aufgelöst wird?<br&gt

                  Comment


                  • #10
                    PPS: der oben genannte Link steht unter Delhi\Allgemeines.<br>
                    Ciao<br>
                    Chri

                    Comment


                    • #11
                      @Christian: indem du aus <pre>
                      <a href="/webx?13@@.ee87cc8/7">Christian Proft 09.10.2001 12:53</a>
                      http://212.20.164.99\webx?13@@.ee87cc8/7</pre>
                      machst.
                      z.B.: http://212.20.164.99\webx?13@@.ee87cc8/
                      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                      Comment


                      • #12
                        @Christian: indem du aus <pre><code>
                        <a href="/webx?13@@.ee87cc8/7">Christian Proft 09.10.2001 12:53</a>
                        http://212.20.164.99\webx?13@@.ee87cc8/7</code></pre>
                        machst.
                        z.B.: http://212.20.164.99\webx?13@@.ee87cc8/
                        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                        Comment


                        • #13
                          @Christian: indem du einfach einen / als \ schreibst.

                          Gruß Fal
                          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                          Comment


                          • #14
                            Hallo Chris,

                            ja, diesen Beitrag meinte ich. Das Programm habe ich getestet und muss sagen es funktioniert wirklich ganz gut, aber dass Problem mit "mehrere[n] gleiche[n] Controls" hat sich eingeschlichen.<br>
                            Wie bekommt man nun diese ID heraus, um dann mit <i>GetDlgItem</i>
                            weiterarbeiten zu können?

                            (Win9x reicht auch ;-))

                            Tschüss Ti

                            Comment


                            • #15
                              @Falk: Danke für die Info.<br>
                              <br>
                              @Tim: Die ID wird bei dem Tool auch mit angegeben (Edit3), ermittelt mit GetWindowLong.<br>
                              <br>
                              Ciao<br>
                              Chri

                              Comment

                              Working...
                              X