foreach (Process vProcess in vProcesses)
if (vProcess.MainWindowHandle != IntPtr.Zero &&!string.IsNullOrEmpty(vProcess.MainWindowTitle))
Console.WriteLine(vProcess.MainWindowTitle)
解题思路(API):
(1)通过枚举句柄把所有窗口都瞎扮唤列出来缺改,EnumWindows或者FindWindow都可以。
(枚举出来窗体的磨凯是所有的进程的,任务栏中不一定可视。)
(2)查找符合下面条件的窗口句柄
a.是窗口,IsWindow(hWnd)
b.窗口是可见 IsWindowVisible(hWnd)
c.有任务栏标题GetWindowLong(hWnd, GWL_EXSTYLE) 和 WS_EX_TOOLWINDOW)!=WS_EX_TOOLWINDOW
d.不存在父窗口GetWindowLong(hWnd, GWL_HWNDPARENT)==0
var a = 10var b = 5
for (int i = 0i <ai++)
{
Button btn = new Button()
btn.Text = "Button" + i.ToString()
btn.Left = 680
btn.Top = 10 + i * (btn.Height + 10)
// 添加到窗体(容宴戚器.Controls.add)
this.Controls.Add(btn)
}
for (int i = 0i <bi++)
{
TabPage tab = new TabPage()
tab.Text = "谨祥兄Page" + i.ToString()
// 添加控件祥袭到 tabControl1
this.tabControl1.Controls.Add(tab)
// 添加到tab页面
this.tabControl1.TabPages.Add(tab)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)