首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么根据句柄获得窗口,并使其获得焦点

2012-02-03 
如何根据句柄获得窗口,并使其获得焦点?此窗口是另外一个app中的可否实现?先谢了[解决办法]可以,用SendMess

如何根据句柄获得窗口,并使其获得焦点?
此窗口是另外一个app中的
可否实现?
先谢了

[解决办法]
可以,用SendMessage和ActivateWindow这两个API函数可以实现!
[解决办法]
先使用FindWindow找到窗口,然后PostMessage给窗口即可。
[解决办法]
API 函数


FindWindow //查找特定窗口句柄
SetActiveWindow // 激活句柄为 hwnd 的窗体
ShowWindow// 显示某窗体
SetFocus //设置焦点

具体网上搜下这些函数的参数及使用(不同开发语言,申明不一样).
[解决办法]
using System.Runtime.InteropServices;

[DllImport( "user32.dll ")]
public static extern bool SetWindowPos(IntPtr hWnd,
IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
public IntPtr HWND_TOP = IntPtr.Zero;
public uint SWP_NOMOVE = 2;
public uint SWP_NOSIZE = 1;
public uint SWP_NOACTIVATE = 0x10;
public uint SWP_SHOWWINDOW = 0x40;
private void button1_Click(object sender, EventArgs e)
{
Process[] vProcesses = Process.GetProcessesByName( "notepad ");
if (vProcesses.Length <= 0) return;
SetWindowPos(vProcesses[0].MainWindowHandle, HWND_TOP, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
}

热点排行