
首先引用命名空间:
using SystemRuntimeInteropServices; [DllImport("user32dll", EntryPoint = "FindWindow")]public static extern IntPtr FindWindow(
string lpClassName,
string lpWindowName
);
利用FindWindow获得目标窗口句柄
第一个参数是类名,第二个参数是窗口原来的标题
以下代码则是获得目标窗口代码:
IntPtr window = FindWindow(null,"Microsoft SQL Server Management Studio");//我这里是以SQL为例第二步:改变窗口标题
[DllImport("user32dll", EntryPoint = "SetWindowText")]public static extern int SetWindowText(
IntPtr hwnd,
string lpString
);
以下代码则是改变目标句柄的窗口标题:
SetWindowText(window,"你好啊");Ok,窗口标题成功修改了!!!!
附加根据进程名称修改标题:
Process [] ps= ProcessGetProcessesByName("Ssms");//根据进程名称获得进程数组foreach(Process p in ps)//遍历进程
{
SetWindowText(pMainWindowHandle, "Microsoft SQL Server Management Studio免费共享版");
}
DLL命令 _取窗口进程ID, 整数型, , "GetWindowThreadProcessId", , user32dll获取与指定窗口关联在一起的一个线程和进程标识符
参数 窗口句柄, 整数型, , hwnd,指定窗口句柄
参数 进程标识符, 整数型, 传址, lpdwProcessId,指定一个变量,用于装载拥有那个窗口的一个进程的标识符
方法如下:
先知到要取窗口的程序在进程中的名字,比如记事本的进程就是notepadexe。(这里使用记事本程序来制作例子。)
先新建一个程序,在程序里面画一个“按钮”、两个编辑框、两个标签。然后改成相应的名字好辨认,如下图:
依次左键点击下图的:
一、个作夹
二、程序
三、模块应用
在浏览窗口找到下载存放的超级模块位置。点击打开“超级模块”
在模块下面便会多出一个“超级模块”。
双击按钮1,在子程序“_按钮1_被单击”下面新建一个名为“i”的整数型变量,然后编写代码如下:
i = 取句柄2 (“notepadexe”)编辑框1内容 = 到文本 (i)
编写以上代码后,就能取到“notepadexe”的窗口句柄了,然后,再来取窗口标题。继续编写代码如下:
编辑框2内容 = 取窗口标题 (取句柄2 (“notepadexe”))
最后调试运行一下该程序。
以上就是关于c# 获得一个程序的窗口句柄,并且修改它的标题全部的内容,包括:c# 获得一个程序的窗口句柄,并且修改它的标题、[易语言]如何通过进程名取窗口句柄、用易语言取窗口句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)