真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

c語言獲取窗口句柄函數 c語言獲取窗口位置

c語言怎么控制輸出窗口大小

在Windows操作系統(tǒng)下用C語言控制輸出窗口大小首先需要調用GetStdHandle函數獲得窗口句柄,然后再調用相關函數修改窗口大小,如下所示:

站在用戶的角度思考問題,與客戶深入溝通,找到自貢網站設計與自貢網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、做網站、成都外貿網站建設公司、企業(yè)官網、英文網站、手機端網站、網站推廣、國際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋自貢地區(qū)。

#include stdio.h

#include windows.h

#include conio.h

...

HANDLE hOut; /*標準輸出句柄*/

COORD size = {44, 7}; /*窗口大小*/

SMALL_RECT rc = {0, 0, 44-1, 7-1}; //要設置的窗口顯示的大小和位置

CONSOLE_CURSOR_INFO cursor = {1, FALSE}; /*光標信息,用于隱藏光標*/

hOut = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleWindowInfo(hOut, TRUE, rc);

SetConsoleScreenBufferSize(hOut, size);

SetConsoleCursorInfo(hOut, cursor);

CloseHandle(hOut);

...

函數GetStdHandle可以獲取當前標準輸入以及輸出設備的句柄。函數原型為:

HANDLE GetStdHandle(DWORD nStdHandle);

/*

其中,nStdHandle可以是

STD_INPUT_HANDLE 標準輸入設備句柄

STD_OUTPUT_HANDLE 標準輸出設備句柄

STD_ERROR_HANDLE 標準錯誤設備句柄

*/

需要說明的是,“句柄”是Windows最常用的一個概念。它通常用來標識Windows資源(如菜單、 圖標、窗口等)和設備等對象。雖然可以把句柄理解為是一個指針變量類型,但它不是對象所在的地址指針,而是作為Windows系統(tǒng)內部表的索引值來使用的。調用結束后,需要通過調用CloseHandle函數來關閉輸入輸出句柄。

C語言問題?

你這個程序是捕捉0到9的按鍵狀態(tài),按下再松開時才會記錄,想要識別所有按鍵,把for循環(huán)范圍擴大。

比如for(charch=32;ch=127;ch++)這樣就包含了特殊符號及大小寫字母還有數字。

但是,這個代碼是有問題的!

一、你這個代碼需在鍵位已經按下后啟動才能識別,否則啟動時沒有按下對應鍵位,程序就結束了。要嵌套死循環(huán),讓其一直檢測。

二、直接擴大ASCII區(qū)間,像上面的那樣32~127,識別字母區(qū)間會被防毒軟件直接判斷為病毒??!。

三、GetAsyncKeyState不是C語言庫函數,是window的函數,換其它操作系統(tǒng)就失效。

GetAsyncKeyState返回值最高位為1則說明對應ch的鍵被按下,所以這里用0x8000來判斷最高位。

四、想要捕獲其它軟件界面內容還有很多方法,比如:

1、通過windowAPI函數FindWindow來獲取窗口句柄。

2、遍歷窗口下控件句柄,找到輸入框句柄。

3、通過窗口句柄找到進程id(GetWindowThreadProcessId函數),再通過id獲取進程句柄(OpenProcess函數)。

4、向目標進程申請內存(VirtualAllocEx),再通過PostMessage函數異步發(fā)送消息獲取目標控件內的內容(具體消息要結合控件類型,另外注意PostMessage是異步執(zhí)行)。

具體自行查閱資料,一言兩語說不清,上面步驟需先搞懂window消息機制。

注意:以上方法依然只限window系統(tǒng),且有數據保護的控件無法獲取。

五、或簡單暴力的方法,直接寫個定時截圖,只要硬盤夠不停桌面截圖。

但不論寫什么程序,和裝攝像頭一樣,終究都會被發(fā)現。?。。。。。。。。。。。?!

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;

}

別忘了添加對應頭文件。

c語言中的俄羅斯方塊游戲里的一段,HWND wnd = GetHWnd();是什么意思?

c語言中的俄羅斯方塊游戲里的一段,HWND wnd = GetHWnd();獲取窗口的句柄


分享題目:c語言獲取窗口句柄函數 c語言獲取窗口位置
網址分享:http://weahome.cn/article/dohgsjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部