我想知道如何获取在 C# 中打开的当前窗口的名称。我看了又看,到目前为止还没有找到我的问题的解决方案,我希望stackoverflow可以提供帮助。
一个我会想的例子
String currentWindow = Window.Current.toString();
谢谢。
我想知道如何获取在 C# 中打开的当前窗口的名称。我看了又看,到目前为止还没有找到我的问题的解决方案,我希望stackoverflow可以提供帮助。
一个我会想的例子
String currentWindow = Window.Current.toString();
谢谢。
这是一个实现预期效果的片段,我很可能在不久前从 SO 的作者那里获得,所以这很可能是重复的。但是,这里的片段并非如此:
private static string GetActiveWindowTitle()
{
const int nChars = 256;
StringBuilder buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
return GetWindowText(handle, buff, nChars) > 0 ? buff.ToString() : null;
}
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
示例用法:
string activeWindowTitle = GetActiveWindowTitle() ?? "Unknown Window";
用于platform invoke
调用GetForegroundWindow
将句柄返回到当前前台窗口的调用。然后,您可以将句柄传递给GetWindowText
函数,该函数将返回窗口标题。
[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);
导入它,然后像这样使用;
int CharacterMap = 256;
StringBuilder StringInput = new StringBuilder(CharacterMap);
IntPtr Window = GetForegroundWindow();
String WindowTitle = GetWindowText(CharactrMap,StringInput,Window) > 0 ? StringInput.ToString() null;
没有注意到上面的帖子。哎呀!丁: