国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

gh0st遠(yuǎn)程控制——客戶端界面編寫(二)

這篇具有很好參考價值的文章主要介紹了gh0st遠(yuǎn)程控制——客戶端界面編寫(二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

● 補(bǔ)充小知識:枚舉類型的使用

每個控件(比如列表)都對應(yīng)一個自己的唯一的變量

使用枚舉類型可以將變量名與編號進(jìn)行綁定,以后程序需要擴(kuò)展的時候,只需要在定義枚舉變量的位置重新修改編號就可以了,這樣全局的所有變量的編號就都跟著修改了

由于列表這個數(shù)據(jù)結(jié)構(gòu)在本項(xiàng)目中十分重要,所有需要放在一個每一個文件都能訪問到的文件當(dāng)中,比如"pcb.h"

示例1:默認(rèn)是0 1 2 3 4 5這樣和數(shù)組一樣遞增的

enum Day {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

int main() {
    // 使用枚舉類型
    Day today = Wednesday;

    // 輸出枚舉常量的值
    std::cout << "Today is: " << today << std::endl;

    return 0;
}

示例2:也可以是亂序使用的

enum Color {
    Red = 1,
    Green = 2,
    Blue = 6
};

6、為列表控件添加條目

寫代碼的時候找不到對話框,如何轉(zhuǎn)到資源視圖?

gh0st遠(yuǎn)程控制——客戶端界面編寫(二),網(wǎng)絡(luò)安全,網(wǎng)絡(luò)協(xié)議,windows,c語言,c++

為列表控件添加初始化函數(shù),如果代碼都寫在OnInitDlg()函數(shù)里面,顯得太過于臃腫了,于是我們考慮在CPCRemoteDlg類里面添加一個成員函數(shù)initList()用來初始化列表

gh0st遠(yuǎn)程控制——客戶端界面編寫(二),網(wǎng)絡(luò)安全,網(wǎng)絡(luò)協(xié)議,windows,c語言,c++??

gh0st遠(yuǎn)程控制——客戶端界面編寫(二),網(wǎng)絡(luò)安全,網(wǎng)絡(luò)協(xié)議,windows,c語言,c++

在initList()函數(shù)中實(shí)現(xiàn)為列表添加條目

// 初始化對話框中的列表
int CPCRemoteDlg::initList()
{
	// TODO: 在此處添加實(shí)現(xiàn)代碼.

	//為Online_List添加條目
	for (int i = 0; i < ONLINELIST_LEN; i++) {
		m_CList_Online.InsertColumn(i, g_Column_Data_Onlie[i].title, LVCFMT_CENTER, g_Column_Data_Onlie[i].nWidth);
	}

	//為MessageList添加條目
	for (int i = 0; i < MESSAGELIST_LEN; i++) {
		m_CList_Message.InsertColumn(i, g_Column_Data_Message[i].title, LVCFMT_CENTER, g_Column_Data_Message[i].nWidth);
	}

	return 0;
}

數(shù)據(jù)結(jié)構(gòu)的定義:

2個枚舉類型的列表定義在"pcb.h"文件當(dāng)中:

enum
{
	ONLINELIST_IP = 0,          //IP的列順序
	ONLINELIST_ADDR,            //地址
	ONLINELIST_COMPUTER_NAME,   //計(jì)算機(jī)名/備注
	ONLINELIST_OS,              //操作系統(tǒng)
	ONLINELIST_CPU,             //CPU
	ONLINELIST_VIDEO,           //攝像頭
	ONLINELIST_PING,            //PING
	ONLINELIST_LEN				//OnlineList的總長度
};

enum
{
	MESSAGELIST_TYPE,			//信息類型
	MESSAGELIST_TIME,			//時間
	MESSAGELIST_INFO,			//信息
	MESSAGELIST_LEN				//MessageList的總長度
};

列表項(xiàng)定義在PCRemoteDlg.cpp文件當(dāng)中:

typedef struct
{
	char*   title;    //列表的名稱
	int		nWidth;   //列表的寬度
}COLUMNSTRUCT;

COLUMNSTRUCT g_Column_Data_Onlie[] =
{
	{"IP",				148	},
	{"區(qū)域",			150	},
	{"計(jì)算機(jī)名/備注",	160	},
	{"操作系統(tǒng)",		128	},
	{"CPU",				80	},
	{"攝像頭",			81	},
	{"PING",			81	}
};

COLUMNSTRUCT g_Column_Data_Message[] =
{
	{"信息類型",		148	},
	{"時間",			100	},
	{"信息內(nèi)容",	    660	}
};

此時運(yùn)行項(xiàng)目還是顯示不出來?xiàng)l目,我們需要將2個列表的屬性》視圖:ICon 改為 Report:

gh0st遠(yuǎn)程控制——客戶端界面編寫(二),網(wǎng)絡(luò)安全,網(wǎng)絡(luò)協(xié)議,windows,c語言,c++

然后運(yùn)行起來就OK了:

注意:不要忘記在CPCRemoteDlg的initDlg函數(shù)里面調(diào)用??????

結(jié)果報(bào)C005錯誤

gh0st遠(yuǎn)程控制——客戶端界面編寫(二),網(wǎng)絡(luò)安全,網(wǎng)絡(luò)協(xié)議,windows,c語言,c++

經(jīng)排查是因?yàn)閙_CList_Online錯誤地寫成了m_CList_Message導(dǎo)致數(shù)組越界引發(fā)報(bào)錯

修改為:

//為Online_List添加條目
	for (int i = 0; i < ONLINELIST_LEN; i++) {
		m_CList_Online.InsertColumn(i, g_Column_Data_Message[i].title, LVCFMT_CENTER, g_Column_Data_Message[i].nWidth);
	}

最終運(yùn)行結(jié)果截圖:

gh0st遠(yuǎn)程控制——客戶端界面編寫(二),網(wǎng)絡(luò)安全,網(wǎng)絡(luò)協(xié)議,windows,c語言,c++

但是對窗口進(jìn)行放大縮小,列表的條目大小不隨著變化,如何解決?

想不到使用什么函數(shù),首先要知道這個函數(shù)一定是CList的成員函數(shù),然后去查MSDN,或者可以再具體到你想改變列的大小,就在CList里面再查和Column相關(guān)的內(nèi)容/SetXXX之類的

只有當(dāng)前列表?xiàng)l目寬度需要設(shè)置為double類型,這個自行體會

1)定義兩個列表初始寬度為全局變量

int g_Online_List_InitWidth = 0;
int g_Message_List_InitWidth = 0;

2)在initList當(dāng)中分別計(jì)算出兩個列表的初始寬度

// 初始化對話框中的列表
int CPCRemoteDlg::initList()
{
	// TODO: 在此處添加實(shí)現(xiàn)代碼.

	//為Online_List添加條目
	for (int i = 0; i < ONLINELIST_LEN; i++) {
		m_CList_Online.InsertColumn(i, g_Column_Data_Onlie[i].title, LVCFMT_CENTER, g_Column_Data_Onlie[i].nWidth);
		g_Online_List_InitWidth += g_Column_Data_Onlie[i].nWidth;
	}

	//為MessageList添加條目
	for (int i = 0; i < MESSAGELIST_LEN; i++) {
		m_CList_Message.InsertColumn(i, g_Column_Data_Message[i].title, LVCFMT_CENTER, g_Column_Data_Message[i].nWidth);
		g_Message_List_InitWidth += g_Column_Data_Message[i].nWidth;
	}

	return 0;
}

3)在OnSize函數(shù)當(dāng)中實(shí)現(xiàn)列表的條目隨著窗體的大小自由伸縮?

void CPCRemoteDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialogEx::OnSize(nType, cx, cy);

	// TODO: 在此處添加消息處理程序代碼
	
	//使列表的位置隨窗口自動變化
	double wndCurWidth = cx;	//使用double類型來重新表示當(dāng)前窗口大小
	double dTmp = 0;
	if (m_CList_Online.m_hWnd != NULL)
	{
		CRect rc;
		rc.left = 1;       //列表的左坐標(biāo)
		rc.top = 80;       //列表的上坐標(biāo)
		rc.right = cx - 1;  //列表的右坐標(biāo)
		rc.bottom = cy - 160;  //列表的下坐標(biāo)
		m_CList_Online.MoveWindow(rc);

		//使列表?xiàng)l目的大小也適應(yīng)窗口的變化
		for (int i = 0; i < ONLINELIST_LEN; i++) {
			dTmp = g_Column_Data_Onlie[i].nWidth * wndCurWidth;
			dTmp /= g_Online_List_InitWidth;
			int nCurWidth = (int)dTmp;
			m_CList_Online.SetColumnWidth(i, nCurWidth);
		}	
	}

	//使列表的位置隨窗口自動變化
	if (m_CList_Message.m_hWnd != NULL)
	{
		CRect rc;
		rc.left = 1;        //列表的左坐標(biāo)
		rc.top = cy - 156;    //列表的上坐標(biāo)
		rc.right = cx - 1;    //列表的右坐標(biāo)
		rc.bottom = cy - 6;  //列表的下坐標(biāo)
		m_CList_Message.MoveWindow(rc);

		//使列表?xiàng)l目的大小也適應(yīng)窗口的變化
		for (int i = 0; i < MESSAGELIST_LEN; i++) {
			dTmp = g_Column_Data_Message[i].nWidth * wndCurWidth;
			dTmp /= g_Message_List_InitWidth;
			int nCurWidth = (int)dTmp;
			m_CList_Message.SetColumnWidth(i, nCurWidth);
		}
	}

}

運(yùn)行效果截圖:?

?gh0st遠(yuǎn)程控制——客戶端界面編寫(二),網(wǎng)絡(luò)安全,網(wǎng)絡(luò)協(xié)議,windows,c語言,c++

補(bǔ)充編程小技巧:

在類視圖下無法直接刪除成員函數(shù),想要刪除成員函數(shù)需要手動轉(zhuǎn)到它的定義和引用處刪除

運(yùn)行程序發(fā)現(xiàn)功能沒有體現(xiàn),程序沒有什么變化,需要考慮是否調(diào)用了該函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-807851.html

到了這里,關(guān)于gh0st遠(yuǎn)程控制——客戶端界面編寫(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • TeamViewer遠(yuǎn)程值守(免密碼直接遠(yuǎn)程控制)

    TeamViewer遠(yuǎn)程值守(免密碼直接遠(yuǎn)程控制)

    賬戶分配 選擇 完全訪問 并設(shè)置 個人密碼 (注意:此密碼用于遠(yuǎn)程被連接的計(jì)算機(jī),牢記,遠(yuǎn)程發(fā)起連接的計(jì)算機(jī)填寫此密碼) 設(shè)置 完全訪問 (需要注冊賬密,并登錄) ID:被連接的電腦啟動時界面上顯示的ID 密碼:之前設(shè)置的個人密碼 別名:用于備注遠(yuǎn)程計(jì)算機(jī) 點(diǎn)擊遠(yuǎn)

    2024年02月13日
    瀏覽(22)
  • 電腦自帶遠(yuǎn)程桌面和遠(yuǎn)程控制軟件哪個好?

    電腦自帶遠(yuǎn)程桌面和遠(yuǎn)程控制軟件哪個好?

    隨著科技的不斷發(fā)展和普及,越來越多的公司和個人開始關(guān)注 遠(yuǎn)程控制軟件 的使用。我們常常需要在不同的地方工作,但工作需要的文件和軟件卻只能在一個地方使用,這時候遠(yuǎn)程控制電腦軟件就變得尤為重要咯。但是,許多人分不清楚:到底是電腦自帶的遠(yuǎn)程桌面好用,

    2023年04月14日
    瀏覽(26)
  • 一文詳解遠(yuǎn)程控制安全與遠(yuǎn)程控制軟件(橫測ToDesk\AnyDesk\向日葵)

    一文詳解遠(yuǎn)程控制安全與遠(yuǎn)程控制軟件(橫測ToDesk\AnyDesk\向日葵)

    遠(yuǎn)程控制的安全性已經(jīng)算半個老生常談的問題了,作為常年遠(yuǎn)程辦公的人,這里我只想說一句,無論你用什么軟件都會有安全上的隱患,做不到百分百的安全,但相對安全,咱們還是可以自主把控的。 第一,我們要弄清楚遠(yuǎn)程控制是什么? 遠(yuǎn)程控制是指管理人員在異地通過

    2024年02月08日
    瀏覽(24)
  • 思科ASA防火墻:內(nèi)網(wǎng)telnet遠(yuǎn)程控制防火墻 && 外網(wǎng)ssh遠(yuǎn)程控制防火墻

    思科ASA防火墻:內(nèi)網(wǎng)telnet遠(yuǎn)程控制防火墻 && 外網(wǎng)ssh遠(yuǎn)程控制防火墻

    現(xiàn)在他們相互都可以通信 全局通信 1.內(nèi)網(wǎng)telnet連接ASA 進(jìn)入asa防火墻全局模式 telnet 192.168.1.1 255.255.255.0 in telnet + 指定遠(yuǎn)程ip + 子網(wǎng)掩碼 +接口名稱in=e0/1 如果想讓全部都可以連接 telnet 0.0.0.0 0.0.0.0 in passwd 123 ?設(shè)置連接密碼 pass + 自定義密碼 ? ? 2.外網(wǎng)ssh遠(yuǎn)程連接asa防火墻 進(jìn)入

    2023年04月11日
    瀏覽(17)
  • iPad遠(yuǎn)程控制Windows PC - Microsoft遠(yuǎn)程桌面

    iPad遠(yuǎn)程控制Windows PC - Microsoft遠(yuǎn)程桌面

    有時我們坐在客廳里,想來一局游戲,怎奈何主機(jī)太遠(yuǎn),接不上電視,這個時候我們就可以利用iPad當(dāng)作中繼器,插上電視,享受大屏帶來的震撼...... 有時我們躺在床上,不想到電腦上玩游戲,我們就可以用iPad遠(yuǎn)程游戲,低延遲也可以讓我們大展拳腳...... Microsoft遠(yuǎn)程桌面詳細(xì)

    2024年02月06日
    瀏覽(23)
  • 遠(yuǎn)程桌面連接(遠(yuǎn)程控制另一電腦)的詳細(xì)步驟

    遠(yuǎn)程桌面連接(遠(yuǎn)程控制另一電腦)的詳細(xì)步驟

    目錄 1、打開電腦B的允許遠(yuǎn)程連接 2、找到需要控制的電腦B的IP地址 ?3、在電腦A打開遠(yuǎn)程桌面連接 通過電腦A遠(yuǎn)程控制電腦B: 電腦B必須要設(shè)置用戶名和密碼,否則連接不成功。 1.1、首先打開電腦B的遠(yuǎn)程控制:桌面找到我的電腦,右鍵選擇“屬性” ; 1.2、點(diǎn)擊“遠(yuǎn)程設(shè)置”

    2024年02月01日
    瀏覽(47)
  • 如何進(jìn)行遠(yuǎn)程控制電腦

    如何進(jìn)行遠(yuǎn)程控制電腦

    電腦在我們?nèi)粘I钪械淖饔檬欠浅4蟮?,尤其是在信息時代地位非常高。 其中,最常見、最具代表性的功能是實(shí)現(xiàn)遠(yuǎn)程控制功能。它可以直接解決一些問題,而不需要去現(xiàn)場,在一定程度上提高了工作效率。但是有很多朋友不知道如何實(shí)現(xiàn)遠(yuǎn)程控制。那么小編就和大家分享

    2024年02月05日
    瀏覽(18)
  • 手機(jī)木馬遠(yuǎn)程控制復(fù)現(xiàn)

    手機(jī)木馬遠(yuǎn)程控制復(fù)現(xiàn)

    目錄 前言 系列文章列表 滲透測試基礎(chǔ)之永恒之藍(lán)漏洞復(fù)現(xiàn)http://t.csdn.cn/EsMu2 思維導(dǎo)圖 1,實(shí)驗(yàn)涉及復(fù)現(xiàn)環(huán)境??? 2,Android模擬器環(huán)境配置 2.1,首先從官網(wǎng)上下載雷電模擬器 2.2,安裝雷電模擬器? 2.3,?對模擬器網(wǎng)絡(luò)進(jìn)行配置 2.3.1,為什么要進(jìn)行配置 2.3.2,進(jìn)行配置? 2.3.3,安裝成功后

    2024年02月09日
    瀏覽(28)
  • anydesk遠(yuǎn)程控制,主動連接。

    遠(yuǎn)程控制目標(biāo)電腦,且無需對方同意,并且可以控制目標(biāo)電腦開關(guān)機(jī)。 目標(biāo)電腦和己方電腦均安裝anydesk。 目標(biāo)電腦取消開機(jī)密碼。 打開目標(biāo)電腦的anydesk在設(shè)置安全設(shè)置中打開為自主訪問設(shè)置密碼。 為了讓筆記本電腦合蓋后仍能被控制 (1)點(diǎn)擊開始/設(shè)置/系統(tǒng)/電源與休眠

    2024年02月15日
    瀏覽(15)
  • websocket實(shí)現(xiàn)遠(yuǎn)程控制桌面

    websocket實(shí)現(xiàn)遠(yuǎn)程控制桌面

    WebSocket 是一種在單個 TCP 連接上進(jìn)行全雙工通信的協(xié)議,它允許在客戶端和服務(wù)器之間建立持久性的連接。相比傳統(tǒng)的 HTTP 請求-響應(yīng)模型,WebSocket 提供了更低的延遲和更高的效率 是一組用于在 Web 瀏覽器和服務(wù)器之間進(jìn)行實(shí)時全雙工通信的 標(biāo)準(zhǔn)化接口 。該 API 允許開發(fā)者創(chuàng)

    2024年02月02日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包