當前位置:首頁 » 編程語言 » 句柄c語言

句柄c語言

發布時間: 2024-06-01 02:10:23

『壹』 c語言中如何獲得當前進程句柄,謝謝!

DWORD PID;
PID = GetProcessPID(L"test.exe");
//獲取進程pid函數
DWORD GetProcessPID(LPCTSTR pName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
BOOL fOk;
for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)){
if (!_tcsicmp(pe.szExeFile, pName)) {
CloseHandle(hSnapshot);
return pe.th32ProcessID;
}
}
return NULL;
}
//由進程pid獲取進程句柄,置頂
HWND hh = GetProcessTopWindows(PID);
HWND GetProcessTopWindows(DWORD dwPID){
count = 0;
EnumWindows((WNDENUMPROC)EnumWndProc, (LPARAM)dwPID);
if(count > 0) {
//cout << "窗口句柄是:" << nhWnd[count -1] << endl;//輸出句柄,可用spy++工具核對
return (nhWnd[count -1]);
}
return NULL;
}
別忘了添加對應頭文件。

『貳』 HandleType;在c語言里是什麼意思

這個是Windows API庫裡面的東西

『叄』 誰能解釋一下 HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE))在C語言中是什麼意思

上句執行後,定義了一個句柄變數hConsole,將其賦值為GetStdHandle((STD_OUTPUT_HANDLE)),即標准輸出的句柄。

例如:

#include <stdio.h>

#include <windows.h>

int main(void)

{

HANDLE consolehwnd; //創建句柄,詳細句柄知識,請網路一下或查MSDN

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE); //實例化句柄

SetConsoleTextAttribute(consolehwnd, FOREGROUND_RED);//設置字體顏色

printf("hello ");

SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY | FOREGROUND_GREEN);
printf("world! ");

getchar();

SetConsoleTextAttribute(consolehwnd,BACKGROUND_INTENSITY |BACKGROUND_BLUE);
printf("It is really beautiful! ");

return 0;

}

(3)句柄c語言擴展閱讀:

注意事項

SetConsoleTextAttribute()函數是一個API設置字體顏色和背景色的函數。參數表中使用兩個屬性(屬性之間用,隔開)。GetStdHandle()和FOREGROUND_*或BACKGROUND_*。*值為INTENSITY或RED或GREEN或BLUE。第一個屬性獲得句柄(即要設置顏色的地方),第二個屬性設置顏色。屬性相加是在屬性值中間加「|」隔開即可。

GetStdHandle(STD_OUTPUT_HANDLE)獲得句柄。

FOREGROUND_INTENSITY表示設置前景色為高亮顯示。

FOREGROUND_RED表示設置前景色為紅色,即字體顏色為紅色。

FOREGROUND_GREEN表示設置前景色為綠色,即字體顏色為綠色。

FOREGROUND_BLUE表示設置前景色為藍色,即字體顏色為藍色。

BACKGROUND_INTENSITY表示設置背景色為高亮顯示。

BACKGROUND_RED 表示設置背景色為紅色。

BACKGROUND_GREEN表示設置背景色為綠色。

BACKGROUND_BLUE表示設置背景色為藍色。

說明:在使用時要在預處理中包含window.h頭文件。

『肆』 求助:C語言如何輸出句柄

句柄就是一種資源的序號,一般是個無符號整數而已,比如文件句柄,就是系統提供一組可以打開文件的數據結構(實際上是結構數組),句柄就是數組下標。
所謂輸出句柄,你可以將句柄當作函數調用的返回值,或者列印出來看也不是不可以。

『伍』 對於一個只懂C語言得人來說,怎麼理解句柄

句柄是一個序號, 它不是一個內存地址。


它用於管理Windows內核對象,比如用戶打開一個文件,Windows即會建立一個文件內核對象,所謂內核對象就是一塊內存結構,裡面有文件路徑,文件大小,當前文件指針等等信息。Windows系統會打開很多的文件,因此就有很多的文件內核對象,同樣Windows系統還會建立其它的類型的很多很多的內核對象。如何管理這么多的內核對象 呢?Windows通過建立一個叫做句柄表的東西,用於記錄內核對象的地址。表中每一個元素,都是一個內核對象的起始地址,然後給每一個對象對應一個序號,此序號即為句柄。


//句柄表類似於下面的結構,像0、1、2這樣的序號即為句柄
----------------------------------------------------
0第一個內核對象的地址
1第二個內核對象的地址
2第三個內核對象的地址
----------------------------------------------------
熱點內容
怎麼建java基岩互通伺服器 發布:2024-11-27 06:37:28 瀏覽:958
aspcms圖片上傳 發布:2024-11-27 06:32:20 瀏覽:415
qq空間本地上傳的音樂 發布:2024-11-27 06:14:50 瀏覽:920
辦公室雲電腦伺服器 發布:2024-11-27 06:11:45 瀏覽:26
有趣的php 發布:2024-11-27 05:58:13 瀏覽:960
php網頁開發 發布:2024-11-27 05:56:09 瀏覽:956
手機密碼鎖忘記怎麼辦 發布:2024-11-27 05:54:35 瀏覽:153
安卓怎麼獲取聯系人位置 發布:2024-11-27 05:53:58 瀏覽:49
最新雲呼伺服器地址 發布:2024-11-27 05:49:35 瀏覽:944
我的世界伺服器玩家 發布:2024-11-27 05:49:20 瀏覽:320