Visual Studio

在实际的应用程序开发中,我们可能会在程序里查找另一个程序是否已打开,如果查找的程序已打开就把它激活成当前的窗口。这里分别用C#.NET和VB.NET两种程序来实现了这个功能,这两个程序里都可以打开一个标题是"我的电脑"的窗口:

-------------------C#.NET的实现---------------
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool OpenIcon(IntPtr hWnd);
private static extern bool OpenIcon(IntPtr hWnd);
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool IsIconic(IntPtr hWnd);
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int SetForegroundWindow(IntPtr hWnd);[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr FindWindow(string strclassName, string strWindowName);
void FindAndOpenWindow(string Title)
{
IntPtr hWnd = FindWindow(null, Title);
if (hWnd != IntPtr.Zero)
{
bool isIcon = IsIconic(hWnd);
if ( !isIcon )
{
SetForegroundWindow(hWnd);
}
else
{
OpenIcon(hWnd);
}
}
}
private void button1_Click(object sender, System.EventArgs e)
{
FindAndOpenWindow("我的电脑");
}
-------------------VB.NET的实现---------------
Private Declare Function OpenIcon Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean
Private Declare Function IsIconic Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean
Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As IntPtr) As Integer
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal strclassName As String, ByVal strWindowName As String) As IntPtr
Sub FindAndOpenWindow(ByVal Title As String)
Dim hWnd As IntPtr = FindWindow(Nothing, Title)
If Not hWnd.Equals(IntPtr.Zero) Then
Dim isIcon As Boolean = IsIconic(hWnd)
If Not isIcon Then
SetForegroundWindow(hWnd)
Else
OpenIcon(hWnd)
End If
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FindAndOpenWindow("我的电脑")
End Sub



上一篇: 使用PHP+Sphinx建立高效的站内搜索引擎
下一篇: 用命令实现Win7远程桌面关机和重启
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 1946
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑