我刚开始学习C#和WPF。有没有办法获得窗口类型?例如,我正在使用它来获取Window上的文本:
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
返回:“提问 - Stack Overflow - Google Chrome”
我想只获得“Google Chrome”。我试过了
[DllImport("User32.Dll")]
public static extern int GetClassName (IntPtr hwnd, StringBuilder lpClassName, int nMaxCount);
返回“Chrome_WidgetWin_1”。我缺少一种更好的方法吗?
答案 0 :(得分:1)
没有像您描述的那样分配给窗口的“类型”。最接近的是你已经检索过的类名。
如果所有窗口都遵循“some text” - “whatever” - “Google Chrome”的相同标题文本模式,您可以解析标题文本,只提取最后一个值。只要在“Google Chrome”之前有破折号,破折号或其他无关紧要的内容就可以将其提取出来
string windowTypeName = string.Split('-').LastOrDefault();
如果标题文字中没有标题文字或短划线,则会返回“Google Chrome”或null。
修改
您还可以获取与窗口关联的进程名称,如果它是chrome.exe,那么您可以假设窗口类型为“Google Chrome”