欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡(jiǎn)單實(shí)現(xiàn).NET?Hook與事件模擬實(shí)例

 更新時(shí)間:2023年10月27日 14:09:04   作者:波多爾斯基  
這篇文章主要為大家介紹了簡(jiǎn)單實(shí)現(xiàn).NET?Hook與事件模擬實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

最近玩《星露谷物語》上癮,本來是看著個(gè)休閑游戲,現(xiàn)在玩成修仙游戲了,上百個(gè)小時(shí)渾身是肝,中午午休習(xí)慣都強(qiáng)行給改了。

雖然挺有意思,但是太肝了,入坑前請(qǐng)謹(jǐn)慎。補(bǔ)充一下,這個(gè)游戲應(yīng)該是基于 XNA/MonoGame 寫的。

這個(gè)游戲在喪失焦點(diǎn)的時(shí)候會(huì)自動(dòng)暫停,無法自動(dòng)推進(jìn),我覺得效率太低了,為了齊先生的場(chǎng)子,我得搞一個(gè)自動(dòng)點(diǎn)擊的東西。

不想下載軟件就自己寫一個(gè)吧,因?yàn)橐WC游戲始終在前面,那肯定開關(guān)需要啟用全局快捷鍵。找了一下,. NET 有一個(gè) SharpHook (tolik.io) 就挺簡(jiǎn)單的,花幾分鐘寫了一個(gè),實(shí)現(xiàn)了功能。

SharpHook 是一個(gè)跨平臺(tái)的 Hook 組件,核心基于 libuiohook

監(jiān)聽事件

官網(wǎng)的文檔非常簡(jiǎn)潔易懂,我設(shè)置快捷鍵監(jiān)聽,監(jiān)聽按鍵按下。

var hook = new TaskPoolGlobalHook();
hook.HookEnabled += OnHookEnabled;     // EventHandler<HookEventArgs>
hook.HookDisabled += OnHookDisabled;   // EventHandler<HookEventArgs>
hook.KeyTyped += OnKeyTyped;           // EventHandler<KeyboardHookEventArgs>
hook.Run();

然后在事件中設(shè)置定時(shí)器啟動(dòng)以及停止,我目標(biāo)是每隔兩秒鐘按鼠標(biāo)左鍵一次。

private static void OnKeyTyped(object? sender, KeyboardHookEventArgs e)
{
    if (e.SuppressEvent) return;
    if (e.Data.KeyCode.HasFlag(KeyCode.VcSemicolon)) // ;鍵
    {
        Console.WriteLine("start timer");
        _timer.Start();
    }
    else if (e.Data.KeyCode.HasFlag(KeyCode.VcL)) //L鍵
    {
        Console.WriteLine("stop timer");
        _timer.Stop();
    }
    e.SuppressEvent = true;
}

模擬事件

這個(gè)庫同樣可以模擬鼠標(biāo)和鍵盤的操作,我這里操作鼠標(biāo),鍵盤也是同理。

static EventSimulator _simulator = new EventSimulator();
private static void _timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
	_simulator.SimulateMousePress(MouseButton.Button1);
	Thread.Sleep(100);
	_simulator.SimulateMouseRelease(MouseButton.Button1);
}

注意,很多游戲是單獨(dú)監(jiān)聽鼠標(biāo)的按下與松開的,這樣算一次完整的點(diǎn)擊,如果中間沒有設(shè)置延時(shí),有可能識(shí)別不鼠標(biāo)的動(dòng)作。這個(gè)游戲就是這樣,沒有延時(shí)就不行。

好了,運(yùn)行之后放在后臺(tái),在游戲獲取焦點(diǎn)的時(shí)候,按";"啟動(dòng),然后鼠標(biāo)懸停在物品上面就能自動(dòng)拿起/放下了,按“L”退出。

鍵位與其他

參考 Key Code Mappings | SharpHook (tolik.io) 看鍵名稱與 Key Code。調(diào)試的時(shí)候,如果在 OnKeyTyped 事件中設(shè)置斷點(diǎn)會(huì)有一下子非???,耐心一點(diǎn)就正常了。

另外,我 Hook 上方 F 功能鍵的時(shí)候一直不成功,但是 ESC 是可以正常被響應(yīng)的,沒有深入去研究為什么,以后真完全有必要了再看看。

以上就是簡(jiǎn)單實(shí)現(xiàn).NET Hook與事件模擬實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于.NET Hook事件模擬的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 設(shè)計(jì)windows phone頁面主題

    設(shè)計(jì)windows phone頁面主題

    這篇文章主要介紹了設(shè)計(jì)windows phone頁面主題,需要的朋友可以參考下
    2015-07-07
  • ASP.NET?Core使用功能開關(guān)控制路由訪問操作(續(xù))

    ASP.NET?Core使用功能開關(guān)控制路由訪問操作(續(xù))

    這篇文章主要介紹了ASP.NET?Core使用功能開關(guān)控制路由訪問操作的(續(xù)),上一篇文章我們已經(jīng)介紹過一部份該相關(guān)內(nèi)容,??在本文,我們可以判斷當(dāng)前路由地址是否為調(diào)試地址,讓評(píng)估返回真,需要的小伙伴可以參考一下
    2022-02-02
  • .net程序開發(fā)IOC控制反轉(zhuǎn)和DI依賴注入詳解

    .net程序開發(fā)IOC控制反轉(zhuǎn)和DI依賴注入詳解

    這篇文章主要為大家介紹了.net程序開發(fā)IOC控制反轉(zhuǎn)和DI依賴注入示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • ASP.NET Core 依賴注入詳細(xì)

    ASP.NET Core 依賴注入詳細(xì)

    這篇文章主要介紹ASP.NET Core 依賴注入,ASP.NET Core 應(yīng)用在啟動(dòng)過程中會(huì)依賴各種組件提供服務(wù),這些組件會(huì)以接口的形式標(biāo)準(zhǔn)化,這些組件就是我們所說的服務(wù),ASP.NET Core框架建立在一個(gè)底層的依賴注入框架之上,它使用容器提供所需的服務(wù),下面我們就來詳細(xì)了解一下
    2021-10-10
  • ASP.NET Web API教程 創(chuàng)建Admin視圖詳細(xì)介紹

    ASP.NET Web API教程 創(chuàng)建Admin視圖詳細(xì)介紹

    現(xiàn)在我們轉(zhuǎn)入客戶端,并添加一個(gè)能夠使用從Admin控制器而來的數(shù)據(jù)的頁面。通過給控制器發(fā)送AJAX請(qǐng)求的方式,該頁面將允許用戶創(chuàng)建、編輯,或刪除產(chǎn)品
    2012-11-11
  • .NET新能源汽車鋰電池檢測(cè)程序UI掛死問題分析

    .NET新能源汽車鋰電池檢測(cè)程序UI掛死問題分析

    這篇文章主要為大家介紹了.NET新能源汽車鋰電池檢測(cè)程序UI掛死問題分析?,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 利用.NET 開發(fā)服務(wù)器 應(yīng)用管理工具

    利用.NET 開發(fā)服務(wù)器 應(yīng)用管理工具

    這篇文章主要介紹如何利用.NET 開發(fā)一個(gè)應(yīng)用管理工具的服務(wù)器,文章回先聊背景接著其是喲美好方法,需要的的小伙伴可以參考一下小面文章的具體內(nèi)容
    2021-10-10
  • ASP.NET通過Web.config實(shí)現(xiàn)驗(yàn)證賬號(hào)密碼是否正確進(jìn)行登錄

    ASP.NET通過Web.config實(shí)現(xiàn)驗(yàn)證賬號(hào)密碼是否正確進(jìn)行登錄

    本文是通過authentication(認(rèn)證訪問者) 和 authorization( 訪問權(quán)限),來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的判斷用戶賬號(hào)密碼是否正確,需要的朋友可以參考下
    2021-09-09
  • ASP.NET Core 中間件的使用之全局異常處理機(jī)制

    ASP.NET Core 中間件的使用之全局異常處理機(jī)制

    我們今天這篇文章就來說說代碼異常問題怎么快速定位,減少不必要的時(shí)間浪費(fèi)。異常是一種運(yùn)行時(shí)錯(cuò)誤,當(dāng)異常沒有得到適當(dāng)?shù)奶幚?,很可能?huì)導(dǎo)致你的程序意外終止。下面雄安邊將詳細(xì)介紹,需要的朋友可以參考下
    2021-09-09
  • asp.net core使用DevExtreme20將int列轉(zhuǎn)為checkbox方法示例

    asp.net core使用DevExtreme20將int列轉(zhuǎn)為checkbox方法示例

    這篇文章主要為大家介紹了asp.net core使用DevExtreme20將int列轉(zhuǎn)為checkbox方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評(píng)論