如何得到目前在最上面的form无论是什么程序不一定是自己的程序的再开始一个过程
解决方案 »
- 类型转换的问题
- 控件问题
- 用DBGrid显示数据的时候,怎么才能固定列宽?
- 求算法(老菜鸟都可以进)
- EXE文件能用socket来传送吗?100分奉上
- 如何在运行期控制字段的小数位数?
- 急,类型不一致,怎么办?解决马上出分
- 请教TeeChart pro 8.01 Full Source的安装详细过程!
- 小弟刚刚学习编成,碰到了listview控件,想往里面加一些图表和文字,只知道用一个imagelist控件来保存图标,用listview.items.add.caption:='fff',可是文字加进去了,图标却没有,不知道各位老师能不能教一下。
- 如何使弹出的 PopupMenu 消失?
- 公司要解体,郁闷ing!散分.....
- 高手!!快来呀!!!!!!在线等待!!!!!
我以前是用GetActiveWindows(0)他们有什么区别呢?
我以前是用GetActiveWindows(0)和应用程序事件组件的不激活事件结合
他们有什么区别呢?
Declare Function GetTopWindow Lib "user32" Alias "GetTopWindow" (ByVal hwnd As Long) As Long
说明
搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
返回值
Long,位于指定窗口内部的顶级子窗口的句柄
参数表
参数 类型及说明
ByVal Long,想在其中搜寻顶级子的窗口。零表示寻找位于桌面的顶级窗口
注解
Z序列中的顶级窗口也是内部窗口列表的第一个窗口
GetActiveWindow VB声明
Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
说明
获得活动窗口的句柄
返回值
Long,活动窗口的句柄,如没有窗口处于活动状态,则返回零值 没有delphi的可惜,谁可以翻译
function GetActiveWindow:HWND;假设你开了ACDSee,并且选择了窗体永远处于最前面,然后你打开了IE浏览器,正在浏览CSDN。那么你用GetTopWindow(0)得到的是ACDSee的主窗口,而GetActiveWindow是IE的窗口。你的焦点在哪个窗口上,那么GetActiveWindow得到的就是那个窗口的顶级Pareng窗口句柄
function GetActiveWindow:HWND;
可以把他们这两句直接加入begin 和end语句里了吗?在这后面直接加入任意我要执行的代码就可以了吧
function GetActiveWindow:HWND;
”
添加到你的begin...end里面
是在var里吗,那type还要吗,语法有区别,所以不容易分清
var
hCurWindow:HWnd;//窗口句柄
WinText:array[0..255] of char;
begin
hCurWindow:=GetWindow(Handle,GW_HWNDFIRST);
//获取第一个窗口的句柄
while hCurWindow<>0 do
begin
if GetWindowText(hCurWindow,@WinText,255)>0then
//获取窗口的名称
Memo1.Lines.Add(StrPas(@WinText));
hCurWindow:=GetWindow(hCurWindow,GW_HWNDNEXT);
//获取下一个窗口的句柄
end;
end;
如果用这个例子替换比较合适,只是没有function的使用例子 begin
hCurWindow:=GetWindow(Handle,GW_HWNDFIRST);(这里应该修改成为这个function GetActiveWindow:HWND;)
while hCurWindow<>0 do
begin
if GetWindowText(hCurWindow,@WinText,255)>0 then
(应该修改成为这个GetActiveWindow:HWND;还是SetWindowLong(handle, GWL_EXSTYLE,)//)
function SetLayeredWindowAttributes(hwnd:HWND;crKey:integer;bAlpha:byte;dwFlags:integer):integer;stdcall;external user32;
GetActiveWindows(0)
SetWindowLong(handle, GWL_EXSTYLE,)//加入其他事件就可以把当前的其他窗体捕获吗,如果不可以上面的语句就有必要加入吗
GetWindowLong(handle, GWL_EXSTYLE); 把新的样式赋给窗体
SetLayeredWindowAttributes(handle, 0, 192, LWA_ALPHA);