[C#] Inhalt eines Textfeldes auslesen

O

orlando

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!
 
##################

sry

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

Kann mir jemand den link ins richtige Forum geben?
Danke im voraus!
und nochmal Entschuldigung!
 
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
 
Folgendermaßen kommt man über ein paar Umwege an den Text von Controls ran:
C#:
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...
 
Zuletzt bearbeitet:
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?
 

Neue Beiträge

Zurück