tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
1461
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    orlando Tutorials.de Gastzugang
    Hallo zusammen ich versuche seit längeren einen Code zu schreiben/finden mitdem ich den inhalt eines Textfeldes einer Anwendung auslesen kann!

    Mir ist klar, das ich dem Programm irgend wie sagen muss welches Textfeld gemeint ist.
    Vieleicht ist es möglich das textfeld zu nehmen aufdas meine Maus zeigt?

    (Noch mal für besonders schlaue: Das Textfeld gehört NICHT zu meiner Anwendung, es befindet sich auf einer 2. externen Anwendung )

    Hoffe auf schnelle und qualitative Hilfe
    Danke im voraus!
     

  2. #2
    orlando Tutorials.de Gastzugang
    ich finde es schade, dass ich umsonst auf eine antwort gewartet habe
    Wenn ihr noch eine Antwort habt dann bitte an orlando100@web.de senden
    Betreff: http://www.tutorials.de/forum/c-c/35...ml#post1815234
    Danke!
     

  3. #3
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Der Grund ist, dass du im falschen Forum bist...
     

  4. #4
    orlando Tutorials.de Gastzugang
    ##################

    sry

    ##################

    Kann mir jemand den link ins richtige Forum geben?
    Danke im voraus!
    und nochmal Entschuldigung!
     

  5. #5
    Maik Tutorials.de Gastzugang
    Hi,

    hab dein Thema mal in unserem ".NET"-Bereich platziert.

    mfg Maik
     

  6. #6
    orlando Tutorials.de Gastzugang
    Danke!

    -------
     

  7. #7
    Erik Erik ist offline Mitglied Gold
    Registriert seit
    Jul 2008
    Beiträge
    171
    Hi,

    Ich glaube nicht das das geht es ist ja ein externes Program. Würde auch ziemlich unsicher sein. (man könnte Passwörter etc. erspähen)

    Gruß
    x y z
     

  8. #8
    orlando Tutorials.de Gastzugang
    Ich bin mir sicher, dass das geht
    Hab bei meiner suche so ein Passwort programm gefunden
    http://www.itlocation.com/de/software/prd62222,,.htm
    Es list den inhalt der textfelder aus.

    Ich bin kein Hacker

    In manchenforen wird man schnell mal beschimpft
     

  9. #9
    engelmarkus engelmarkus ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    473
    Folgendermaßen kommt man über ein paar Umwege an den Text von Controls ran:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    
    class Helper {
      [DllImport("user32.dll")]
      public static extern IntPtr WindowFromPoint(Point lpPoint);
      
      [DllImport("user32.dll")]
      public static extern bool GetCursorPos(out Point lpPoint);
      
      [DllImport("user32.dll", CharSet = CharSet.Auto)]
      public static extern int GetClassName(IntPtr hWnd,
        StringBuilder lpClassName, int nMaxCount);
      
      [DllImport("user32.dll")]
      public static extern int SendMessage(IntPtr hWnd, uint Msg,
        int wParam, StringBuilder lParam);
      
      [DllImport("user32.dll")]
      public static extern int SendMessage(IntPtr hWnd, uint Msg,
        int wParam, int lParam);
      
      const uint WM_GETTEXT = 0x0D;
      const uint WM_GETTEXTLENGTH = 0x0E;
      
      public static string GetControlText(IntPtr hWnd) {
        int length = SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0);
        
        StringBuilder buffer = new StringBuilder(length+1);
        
        SendMessage(hWnd, 0x0d, buffer.Capacity, buffer);
        
        return buffer.ToString();
      }
      
      public static IntPtr GetWindowUnderCursor() {
        Point ptCursor = new Point();
        
        if (!GetCursorPos(out ptCursor))
          return IntPtr.Zero;
        else
          return WindowFromPoint(ptCursor);
      }
      
      public static string GetWindowClassName(IntPtr hWnd) {
        StringBuilder buffer = new StringBuilder(128);
        
        GetClassName(hWnd, buffer, buffer.Capacity);
        
        return buffer.ToString();
      }
    }

    Im Endeffekt lässt du dir das Handle vom Control unter dem Mauszeiger ermitteln, schaust, ob die Klasse des Controls "Edit" ist, und wenn ja, dann fragst du den Text ab...
    Geändert von engelmarkus (17.11.09 um 21:55 Uhr)
     

  10. #10
    orlando Tutorials.de Gastzugang
    Vielen dank probiere ihn gleich mal aus

    Ich finde es sehr gut, dass man hir so schnell hilfe findet

    (Wenn man gleich ins richtige forum schreibt, nicht wie ichg ins falsche )

    Ich habe noch ne frage: Wie benütze ich deinen code?



    private void timer1_Tick(object sender, EventArgs e)
    {
    label1.Text = Was_muss_hir_rein?
    }

    oder ganz anders?
     

  11. #11
    engelmarkus engelmarkus ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    473
    So zum Beispiel:
    Code csharp:
    1
    2
    3
    4
    5
    
    IntPtr windowHandle = Helper.GetWindowUnderCursor();
     
    label1.Text = windowHandle.ToString();
    label2.Text = Helper.GetWindowClassName(windowHandle);
    label3.Text = Helper.GetControlText(windowHandle);
     

  12. #12
    orlando Tutorials.de Gastzugang
    Danke!


    -------

    Ich bekome bei

    [DllImport("user32.dll")]

    2 Fehler Ich habe die zeile erstmal gelöscht
    Es entschtanden keine neuen fehler

    alerdings ist da noch das:

    Error 1 The type or namespace name 'Point' could not be found (are you missing a using directive or an assembly reference?) C:\Dokumente und Einstellungen\orlando\Eigene Dateien\Visual Studio 2008\Projects\test2\test2\Class1.cs 12 53 test2
     

  13. #13
    engelmarkus engelmarkus ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    473
    Folgendes muss ganz oben in die Codedatei:
    Code csharp:
    1
    2
    3
    4
    
    using System;
    using System.Text;
    using System.Drawing;
    using System.Runtime.InteropServices;
     

  14. #14
    orlando Tutorials.de Gastzugang
    Danke was für ein dummer Fehler
    Bin von der schenellen und guten hilfe beeindruckt
    War mein erstes mal auf tutorials.de

    Werde warscheinlich stamm User
     

  15. #15
    blacki3011 blacki3011 ist offline Grünschnabel
    Registriert seit
    Apr 2007
    Beiträge
    1
    Erst mal ein dickes DANKE an engelmarkus für die Hilfe.
    Ich bin an dem selben Thema dran deshalb hänge ich mich mal hier mit rein.

    Dein Code funktioniert wunder bar. Aber ich bekomme als WindowsClassName z.B. nicht EDIT angezeigt sondern -> WindowsForms10.EDIT.app.0.33c0d9d ok da steht das edit mit drin. Kann man das auch isolieren ohne den String zu bearbeiten?

    Zweite sache wie kann ich ein Feld in der externen Anwendung füllen?
     

Ähnliche Themen

  1. [C++] Inhalt eines Textfeldes umleiten
    Von Sircoly im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 20.09.06, 09:38
  2. Antworten: 7
    Letzter Beitrag: 26.04.06, 17:45
  3. Inhalt eines Textfeldes eines externen iFrames beeinflussen
    Von Delmar im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 24.08.04, 09:01
  4. Zugriff auf den Inhalt eines Textfeldes einer OCX
    Von Smuddle im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 11.09.03, 18:46
  5. Stück vom Inhalt eines Textfeldes löschen
    Von Parasite im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 02.06.03, 19:11