Hi,
The title is partially static with an variable suffix. For example *"Window Title {- user_id}"*.
How can I get the handle without knowing the exact title?
Hi,
The title is partially static with an variable suffix. For example *"Window Title {- user_id}"*.
How can I get the handle without knowing the exact title?
This CodeProject article describes how to enumerate Top level windows (Based on Win32 API EnumWindows). You can easily modify it to filter on a partial window title: Modify EnumWindowsCallBack.
HTH.
Look through all the Processes and check the MainWindowTitle. (You can use regexps, or StartsWith
, etc)
foreach(Process proc in Process.GetProcesses())
{
if(proc.MainWindowTitle.StartsWith("Some String"))
{
IntPtr handle = proc.MainWindowHandle;
// ...
}
}
Get by class name and parent window handle. For example: get start button handle using win32api. First you know parent window class name using spyxx tool.
[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr handleParent, IntPtr handleChild, string className, string WindowName);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string className, string windowTitle);
Usage:
IntPtr handle = FindWindowEx(FindWindow("Shell_TrayWnd",null), new IntPtr(0), "Button", null);
Hi,
how to get the handle in case there is no title for the window? is there a way to use other attributes, like window contains a specific button/Text Box etc.. Also this is not the mainwindow for a process..
Any help would greatly help..