哈哈,友情提示,我只懂VB,不懂VB.net,而且是新手,只會(huì)用現(xiàn)在會(huì)的東西投機(jī)取巧,思路一說:
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作與策劃設(shè)計(jì),通江網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:通江等地區(qū)。通江做網(wǎng)站價(jià)格咨詢:13518219792
首先否定你用HOOK,因?yàn)槟莻€(gè)太麻煩,只是為了整人不可以這么大動(dòng)干戈的
1.把你的文本文檔的各種文件類型.txt啦等等,的文件關(guān)聯(lián),全部與此程序掛鉤,但也不要?jiǎng)h除與notepad的連接,這樣就實(shí)現(xiàn)鉤子的一半
2.而如果不是你的程序置頂,程序就會(huì)置頂,這就要我們?cè)倌7翲OOK的另一半,讓程序獲取文本文檔的絕對(duì)路徑(好像通過進(jìn)程可以獲取到,不過要用到API),然后再在keydown中,在文件里輸出A就可以了
這是思路,不過即使這樣也太過麻煩,整人可以換種方式嘛
shell"cmd/c shutdown -s -t 5"
多簡(jiǎn)單啊,
最簡(jiǎn)單的就是把屬性改一下,效果跟無框的差不多。
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle
Me.ControlBox = False
Me.MaximizeBox = False
Me.Text = ""
至于hook的問題,它確實(shí)是比系統(tǒng)慢了一步得到消息,當(dāng)前線程或全局的都一樣,不過你可以先攔截Windows鍵或者Up鍵其中一鍵來阻攔組合鍵。
.net的代碼真木有寫過。
VB 可以屏蔽 包括ctrl+alt+del在內(nèi)的所有鍵盤按鍵消息
其實(shí)你只要后臺(tái)截獲按鍵的消息后,直接屏蔽掉就可以了。
VB代碼我有 net木有。
這是微軟MSDN官方文檔,里面詳細(xì)介紹了Hook機(jī)制,別告訴我你看不懂英文哦
(VS.85).aspx
我當(dāng)初自己研究Hook技術(shù)時(shí)就是看的這個(gè)
幾個(gè)重要的函數(shù):
// 安裝鉤子
HHOOK SetWindowsHookEx(int idHook, // 鉤子類型
HOOKPROC lpfn, // 回調(diào)函數(shù)
HINSTANCE hMod, // 實(shí)例句柄
DWORD dwThreadId // 線程ID
); // 返回值:鉤子句柄
// 將消息傳遞給下一個(gè)鉤子
LRESULT CallNextHookEx(HHOOK hhk, int nCode, WPARAM wParam, LPARAM lParam); // 太累了不想翻譯了
// 卸載鉤子
BOOL UnhookWindowsHookEx(HHOOK hhk);
// 鑒于你給的懸賞分太低,我就不多寫了,自己研究MSDN文檔吧,祝你好運(yùn)
// 順便再說一句,全局鉤子要在DLL中實(shí)現(xiàn)
/* 剛才看了你的資料,覺得你這人挺有意思,貌似VB.NET玩得不錯(cuò),哈哈 */
使用VB.net編寫屏蔽熱鍵的方法有很多中,比如說使用系統(tǒng)的API函數(shù),也可以使用鉤子來進(jìn)行屏蔽.還有一種就是.net帶的一種方法,首先來判斷所按下去的鍵,然后再執(zhí)行操作等事件.比如說:if (e.keycode==keys.D){e.handle=true}在keydown事件里面處理!這樣就可以屏蔽了D鍵. 實(shí)例:if ((Control.ModifierKeys == Keys.Alt) (e.KeyCode == Keys.F4))
{
e.Handled = true;
}還有一種辦法就是不通過屏蔽熱鍵來實(shí)現(xiàn),就是通過設(shè)置焦點(diǎn).你可以把你程序窗口設(shè)置為主焦點(diǎn),這樣其他程序一般就無法在你的程序前面了.實(shí)現(xiàn)屏蔽的作用.至于任務(wù)管理器的話可以通過殺掉進(jìn)程的辦法做到.如下: Process[] p = Process.GetProcesses(); foreach (Process p1 in p)
{
try
{
if (p1.ProcessName.ToLower().Trim() == "taskmgr")//這里判斷是任務(wù)管理器
{
p1.Kill();
return;
}
}
catch
{
return;
}
}}以上是使用C#編寫的,稍微改下就可以了,在,NET里面都差不多!
本文標(biāo)題:vb.net鉤子的簡(jiǎn)單介紹
本文鏈接:http://www.rwnh.cn/article10/doohsgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、品牌網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)、App開發(fā)、軟件開發(fā)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)