다른 응용 프로그램의 텍스트 상자에서 텍스트를 검색하고 싶습니다. 두 번째 응용 프로그램의 ProcessName은 'TestTextBox'이고 TextBox의 이름은 'textBox1'입니다. 빈 문자열을 반환다른 응용 프로그램에서 텍스트 가져 오기
내 코드 :
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, long wParam, [MarshalAs(UnmanagedType.LPStr)] StringBuilder lParam);
Process[] processes = Process.GetProcessesByName("TestTextBox");
foreach (Process p in processes)
{
IntPtr pFoundWindow = p.MainWindowHandle;
const int WM_GETTEXT = 0x0D;
StringBuilder sb = new StringBuilder();
IntPtr retVal = SendMessage(pFoundWindow, WM_GETTEXT, 100, sb);
MessageBox.Show(sb.ToString());
}
LINQ는 여전히 내 할 일 목록에 있습니다 ... 또한 LINQ는 .NET 3.5 이상에서만 작동합니다. 그러나이 코드는 .NET 2.0 사용자를 포함하여 모든 종류의 Windows에서 작동해야합니다. – sventevit
LINQ를 사용하여 어떻게 최적화 하시겠습니까? – Grzenio
'Process.GetProcesses(). Any (p => p.ProcessName.Contains (processName)); 또는 그 행에있는 어떤 것. 그리고 아, .NET 2를 사용하고 있다는 것을 깨닫지 못했습니다! –