国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

如何控制其他程序窗體上的窗口控件

如何控制其他程序窗體上的窗口控件

更新時間:2022-05-16 文章作者:未知 信息來源:網絡 閱讀次數:

首先申明:我是菜鳥,我只不過想把困繞了我很長時間的問題的解決方案發表出來,免得以后我又忘記,同時給還不知道這些小知識的同僚一些幫助。各位不要笑我的淺薄。同時為了表示我的低級,我會很羅嗦的講一些基本的東西,這些都是我的理解,很不準確。

用我的方法來控制其他程序窗體上的窗口控件,必須先了解什么是回調函數。我的理解是這樣的:

回調函數寫出來不是自己的程序去調用的,反而是讓其他的東西去調用,比如windows操作系統,比如其他的程序等等之類的。但是什么時候被調用卻不知道了;卣{函數一般是按照調用者的要求定義好參數和返回值的類型,你向調用者提供你的回調函數的入口地址,然后調用者有什么事件發生的時候就可以隨時按照你提供的地址調用這個函數通知你,并按照預先規定好的形式傳遞參數。所以很多人打比方,說回調函數還真有點像您隨身帶的BP機:告訴別人號碼,在它有事情時Call您!

所以一個回調函數寫出來之后,一定有個注冊的動作,就是告訴調用者,你怎么樣找到我寫的函數。某些Windows API 函數會要求以回調函數地址作為其參數之一,例如SetTimer 、LineDDA 、EnumObjects,以及我們下面要用到的EnumWindows。

在Delphi里聲明一個回調函數的格式很簡單,例如:

function EnumWindowsProc(AhWnd:LongInt;lParam:LongInt):boolean;stdcall;


首先是函數名稱可以隨便亂取,但函數參數的類型一般不得亂來,其順序,數據類型等都有規定的,因為這些都是讓其他程序調用的,他們已經規定好了的,但參數名稱可以隨便亂叫。注意后面一定要帶上“stdcall”,

stdcall是標準調用,也就是說采用標準windows參數傳遞方式來調用函數。

編寫函數體就很簡單了,利用傳遞過來的參數就可以了,只要記住,這些參數是別人送給你的,你只要知道這些參數代表了什么意思。

再看個向調用者注冊回調函數入口地址的函數。
function EnumWindows(lpEnumFunc: TFNWndEnumProc; lParam: LPARAM): BOOL; stdcall;


TFNWndEnumProc其實就是指針類型。其中的lpEnumFunc就是回調函數的入口地址了。

下面是調用EnumWindows的格式:
EnumWindows(@EnumWindowsProc,0);


通過向系統注冊回調函數的入口地址,系統就能在需要的時候,調用回調函數,傳遞參數給它,也許這些參數就是我們想要的。

EnumWindows函數的功能是:枚舉屏幕上所有程序中的頂層窗口,將窗口句柄以參數的形式傳遞給回調函數。找到一個窗口,就調用一次回調函數。枚舉結束的條件是:要么枚舉完所有的窗口,要么回調函數返回False。

lParam: LPARAM參數是程序定義的值,這個值被傳遞到回調函數。

回過頭來再看一下EnumWindowsProc:

function EnumWindowsProc(AhWnd:LongInt;lParam:LongInt):boolean;stdcall;

當系統找到了一個窗口后,就開始調用這個回調函數,將窗口的句柄作為第一個參數傳遞過來,將在EnumWindows中lParam: LPARAM這個程序定義的值作為第二個參數傳遞過來。

所以我們可以在EnumWindowsProc函數中利用傳遞過來的兩個參數來做某些處理了。

下面我們新建一個程序列舉系統中所有程序的頂層窗口,我們要得到窗口的標題,要得到窗口類名稱。

得到窗口標題用:

function GetWindowText(hWnd: HWND; lpString: PChar; nMaxCount: Integer): Integer; stdcall;


該函數功能是將窗口句柄為hWnd的窗口的標題拷入到一個緩沖區lpString。nMaxCount是拷入緩沖區內的最大的字符數。

要得到窗口標題還可以發送消息:WM_GETTEXT,其實GetWindowText就是發送WM_GETTEXT消息的。

要得到窗口類名稱用:

function GetClassName(hWnd: HWND; lpClassName: PChar; nMaxCount: Integer): Integer; stdcall;


其參數意義和上面的函數差不多。不詳細解釋了。

我們先編寫回調函數:EnumWindowsProc,F在告訴自己,我們已經有了兩個參數的值了。這兩個參數是系統給我們的.

為了顯示窗口標題和類名,我們用一個TMemo控件。

先在interface部分聲明函數。

function EnumWindowsProc(AhWnd:LongInt;AForm:TForm1):boolean;stdcall;


注意我將第二個參數改了,不要緊,到時候調用的時候注意看。

然后在implementation部分定義函數:

function EnumWindowsProc(AhWnd:LongInt;AForm:TForm1):boolean;
var
lpszClassName,lpszWindowText:array[0..254] of char; //定義兩個緩沖區。
begin
GetWindowText(AhWnd,lpszWindowText,254); //得到窗口標題
GetClassName(AhWnd,lpszClassName,254); //得到窗口類名。
Aform.memo1.lines.add(StrPas(lpszWindowText));
Aform.memo1.lines.add(StrPas(lpszClassName));
Aform.memo1.lines.add('--------------------');
Result:=True;
end;


接著需要做的就是調用EnumWindows函數,注冊回調函數入口地址,讓系統調用回調函數,列舉窗口了。所以再添加一個TButton: btn_listwindow

procedure TForm1.btn_listwindowClick(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,LongInt(self));
end;


程序清單如下:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
btn_listwindow: TButton;
procedure btn_listwindowClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

function EnumWindowsProc(AhWnd:LongInt;AForm:TForm1):boolean;stdcall;

implementation
{$R *.dfm}
function EnumWindowsProc(AhWnd:LongInt;AForm:TForm1):boolean;
var
lpszClassName,lpszWindowText:array[0..254] of char;
begin
GetWindowText(AhWnd,lpszWindowText,254);
GetClassName(AhWnd,lpszClassName,254);
Aform.memo1.lines.add(StrPas(lpszWindowText));
Aform.memo1.lines.add(StrPas(lpszClassName));
Aform.memo1.lines.add('--------------------');
Result:=True;
end;

procedure TForm1.btn_listwindowClick(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,LongInt(self));
end;

end.


F9,運行,看看結果。最好是F7單步跟蹤調試一下,看看回調函數是怎么被調用的。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        国产精品夜夜爽| 亚洲尤物在线视频观看| 欧美激情一区二区三区不卡| 国产乱码字幕精品高清av | 中文幕一区二区三区久久蜜桃| 黄网站免费久久| 国产清纯美女被跳蛋高潮一区二区久久w| 韩国欧美国产一区| 欧美激情一区二区三区四区| 91网站在线观看视频| 亚洲综合色自拍一区| 在线成人免费观看| 久久99国产精品久久99| 国产精品超碰97尤物18| 欧美日韩国产小视频| 九九**精品视频免费播放| 中文字幕一区二区三区不卡 | 日韩视频123| 岛国精品在线观看| 首页国产丝袜综合| 国产精品久久久久久久岛一牛影视 | 欧美一级一级性生活免费录像| 国产精品一区二区免费不卡 | 久久久久88色偷偷免费 | 99视频一区二区| 日韩精品乱码免费| 亚洲精品少妇30p| 久久精品男人的天堂| 欧美性猛片aaaaaaa做受| 懂色av中文字幕一区二区三区 | 亚洲成av人片| 国产精品久久精品日日| 日韩欧美一卡二卡| 欧美性受xxxx黑人xyx| 99久久久国产精品免费蜜臀| 狠狠色综合播放一区二区| 一二三区精品福利视频| 国产精品不卡一区二区三区| 91精品国产免费| 日本乱人伦一区| 99视频有精品| 成人免费观看视频| 国产成人亚洲综合a∨婷婷图片| 日韩精品一区第一页| 亚洲激情图片小说视频| 国产精品国产三级国产有无不卡| 久久精品一区二区三区不卡| 日韩欧美国产三级电影视频| 欧美日本在线看| 欧美日韩午夜影院| 欧美三级电影在线看| 欧美三级电影网站| 6080日韩午夜伦伦午夜伦| 欧美日韩国产综合草草| 欧美撒尿777hd撒尿| 欧美日韩在线一区二区| 欧美日韩高清影院| 欧美一区二区在线播放| 欧美一区二区三区免费| 欧美一区三区二区| 欧美大片一区二区| 国产亚洲精品7777| 中文字幕成人在线观看| 中文字幕成人在线观看| 中文在线资源观看网站视频免费不卡| 国产精品私人自拍| 亚洲免费伊人电影| 日日骚欧美日韩| 国内精品免费在线观看| 国产精品18久久久| 91蝌蚪porny| 69久久夜色精品国产69蝌蚪网| 欧美一区二区三区免费观看视频| 精品久久久久久最新网址| 中文字幕不卡在线播放| 亚洲香蕉伊在人在线观| 久久精品国产精品亚洲红杏 | 国产风韵犹存在线视精品| 99久久久久久| 正在播放一区二区| 国产精品毛片久久久久久久| 亚洲另类一区二区| 美日韩一区二区三区| 国产大片一区二区| 欧美亚洲国产一卡| 精品久久久久一区| 亚洲人成影院在线观看| 美女在线视频一区| 99国产精品视频免费观看| 在线91免费看| 国产精品国产自产拍高清av王其| 日日摸夜夜添夜夜添国产精品| 国产成人综合在线观看| 欧美在线你懂的| 国产校园另类小说区| 亚洲精品高清在线| 国产精品白丝jk白祙喷水网站| 欧美日韩在线精品一区二区三区激情 | 亚洲精品菠萝久久久久久久| 久久国产福利国产秒拍| 99精品久久免费看蜜臀剧情介绍| 欧美一级高清大全免费观看| 亚洲欧美经典视频| 国产一区二区美女| 日韩免费电影一区| 亚洲第一主播视频| 99久免费精品视频在线观看| 欧美成人精品福利| 亚洲www啪成人一区二区麻豆| 国产传媒欧美日韩成人| 日韩免费高清av| 天天av天天翘天天综合网| 成人精品国产免费网站| 日韩精品一区二区三区三区免费| 亚洲午夜在线观看视频在线| 成人性生交大合| 久久精品一区二区三区不卡 | 日韩电影免费在线观看网站| 色综合天天综合网天天狠天天| 国产亲近乱来精品视频| 狠狠色丁香久久婷婷综合_中| 欧美精品一卡二卡| 亚洲va欧美va人人爽午夜| 91亚洲精品久久久蜜桃| 欧美国产一区二区在线观看| 国内精品伊人久久久久av一坑| 宅男在线国产精品| 日韩国产欧美在线视频| 欧美男生操女生| 视频一区中文字幕| 欧美在线不卡一区| 亚洲国产va精品久久久不卡综合 | 欧美日免费三级在线| 一区二区三区精品视频在线| 日本乱人伦一区| 午夜精品久久久久| 欧美一区二区三区公司| 麻豆精品国产传媒mv男同| 欧美一级在线免费| 国产一区日韩二区欧美三区| 久久久99久久精品欧美| 国产成人午夜视频| 中文字幕第一区| 国产视频一区在线观看| 久久久久久久综合色一本| 中文字幕一区二区三区在线观看 | 日韩成人dvd| 日本道在线观看一区二区| 国产精品免费aⅴ片在线观看| 国产精品69毛片高清亚洲| 国产一区二区在线观看免费 | 在线精品视频一区二区三四 | 日韩免费视频一区| 国产专区综合网| 亚洲国产成人自拍| 一本到不卡免费一区二区| 亚洲免费成人av| 欧美日韩国产成人在线91| 久久99国产精品免费| 中文在线一区二区| 在线亚洲精品福利网址导航| 偷拍自拍另类欧美| 精品国产成人在线影院| 粉嫩aⅴ一区二区三区四区五区| 国产精品视频观看| 欧美色综合影院| 久久99精品网久久| 亚洲免费观看在线视频| 欧美成人精品高清在线播放| 99久久久精品免费观看国产蜜| 香蕉久久夜色精品国产使用方法| www久久久久| 色噜噜夜夜夜综合网| 久久国产精品99久久久久久老狼| 中文字幕巨乱亚洲| 欧美大尺度电影在线| 91论坛在线播放| 国内外精品视频| 亚洲一区二区三区四区在线免费观看 | 亚洲成人在线免费| 国产亚洲精品7777| 久久九九全国免费| 色婷婷久久综合| 国产乱码精品一区二区三| 亚洲人一二三区| 久久精品人人做人人爽人人| 欧美精品日韩精品| 国产精品1024| 日韩欧美国产高清| 在线观看一区日韩| 国内精品嫩模私拍在线| 亚洲高清不卡在线观看| 粉嫩绯色av一区二区在线观看| 日韩毛片高清在线播放| 欧美大片拔萝卜| 91麻豆精品91久久久久同性| 91国偷自产一区二区三区观看 | 国产成人精品一区二| 男女男精品网站| 亚洲亚洲精品在线观看|