Windows.h是計算機中的一個頭文件。Windows.h是一個最重要的頭文件,它包含了其他Windows頭文件,這些頭文件的某些也包含了其他頭文件。這些頭文件定義了Windows的所有資料型態、函數調用、資料結構和常數識別字,它們是Windows文件中的一個重要部分。C/C++ 程序在源文件前面寫 #include <windows.h>即可。
FindWindow函數
該函數可以通過窗口類名或者窗口標題名來查找特定窗口句柄,返回值是窗口的句柄(在Windows中,句柄是一個系統內部數據結構的引用。例如當你操作一個窗口,或說是一個Delphi窗體時,系統會給你一個該窗口的句柄,系統會通知你:你正在操作142號窗口,就此你的應用程序就能要求系統對142號窗口進行操作——移動窗口、改變窗口大小、把窗口最小化等等。實際上許多Windows API函數把句柄作為它的第一個參數,如GDI(圖形設備接口)句柄、菜單句柄、實例句柄、位圖句柄等,不僅僅局限於窗口函數。換句話說,句柄是一種內部代碼,通過它能引用受系統控制的特殊元素,如窗口、位圖、圖標、內存塊、光標、字體、菜單等。)函數用法:
#include "stdafx.h" #include <windows.h> int main() { HWND window; //定義一個窗口句柄變量,用來儲存窗口句柄 /*FindWindow("這里填窗口類名","這里填窗口標題名") 窗口類名和窗口標題名可以只填一個,不填的用NULL填充*/ window = FindWindow(NULL,"文本.txt - 記事本"); //查找標題為"文本.txt - 記事本"的窗口 SendMessage(window,WM_CLOSE,0,0); //向窗口發送關閉指令 return 0; }
SendMessage函數
剛剛在第一個例子里面已經用到了SendMessage函數,這個函數的功能是向句柄對應窗口發送指令。函數用法:
#include "stdafx.h" #include<windows.h> int main() { POINT mouse; HWND window; while (1) { GetCursorPos(&mouse); window = WindowFromPoint(mouse); /*SendMessage(窗口句柄,消息類型,消息附帶內容,消息附帶內容) 比如我這里選定的消息類型是WM_CHAR 消息附帶內容為WPARAM('a') 所以消息附帶內容就是模擬鍵盤向窗口輸入a*/ SendMessage(window,WM_CHAR,WPARAM('a'),0); Sleep(100); } return 0; }
WindowFromPoint函數
在第二個例子中我們使用了一個叫做WindowFromPoint的函數,這個函數的功能是通過鼠標點擊獲得被點擊窗口的句柄。函數用法:
#include "stdafx.h" #include<windows.h> int main() { POINT mouse; //定義一個結構體變量儲存鼠標位置 HWND window; while (1) { GetCursorPos(&mouse); //獲取到當前鼠標位置 /*WindowFromPoint(鼠標位置變量名)*/ window = WindowFromPoint(mouse); SendMessage(window,WM_CLOSE,0,0); Sleep(100); } return 0; }