操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    ardio 小、輕、快,專注于 Windows 桌面軟件快速開發(fā)。在 aardio 中可以調(diào)用很多編程語言,例如 C語言、C++、C#、Java、Python、R、Javascript、Node.Js、Fortran、VB、Flash ActionScript、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 語言、批處理 ...... 請參考《 aardio 調(diào)用第三方編程語言示例》。

    本文我們主要介紹 aardio + AutoHotkey 混合編程。

    1、雙擊打開:aardio 工具 / 擴展庫
    2、擴展庫名字輸入 ahk,搜索結(jié)果中雙擊 ahk 擴展庫 —— 打開最新范例。

    aardio 提供了 ahk 擴展庫可用于嵌入 AutoHotkey 并與 AutoHotkey 交互調(diào)用,支持 AutoHotkey v1 以及 AutoHotkey v2 版本。

    先看 aardio 調(diào)用 AutoHotkey v1 的簡單例子,aardio 可以直接調(diào)用 AutoHotkey 函數(shù),AutoHotkey 也可以調(diào)用 aardio 函數(shù),非常簡單:

    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="嵌入 AutoHotkey v1 演示")
    winform.add(
    edit={cls="edit";left=17;top=18;right=741;bottom=445;edge=1;multiline=1;z=1}
    )
    /*}}*/
    
    //導(dǎo)入 AutoHotkey v1 擴展庫
    import ahk; 
    
    /*
    導(dǎo)出允許AutoHotkey 調(diào)用的 aardio 函數(shù)(函數(shù)名必須以 on 開頭)。
    */
    ahk.onTest = function(param){
        winform.edit.print( "winform.onTest被ahk調(diào)用",param ); 
        winform.show();
    }
    
    //運行ahk代碼
    ahk.run( `
    #Persistent ;保持 AHK 線程不退出
    #NoTrayIcon ;不顯示托盤圖標(biāo)
    #include <aardio>  ;啟動 AHK 代碼中必須加入這句才能與 aardio 交互
    
    ; 定義函數(shù)與 aardio 有點像,aardio 一般會寫為 GetPoint = function(hwnd){ return value;}
    GetPoint(){    
    	
        ; 直接調(diào)用aardio函數(shù),支持任意類型、不定個數(shù)的調(diào)用參數(shù)
        aardio.onTest({ x : 2, y : 3 })
    	
        return { x : 2, y : 3 }
    }`);
    
    
    /*
    直接調(diào)用ahk里定義的全局函數(shù),
    參數(shù)和返回值自動支持各種數(shù)據(jù)類型,就像調(diào)用普通aardio函數(shù)。
    是不是很神奇?!
    */
    var point = ahk.GetPoint();
    
    winform.edit.print("調(diào)用ahk函數(shù)的返回值:",point);
    win.loopMessage(); 

    請注意 aardio 中文件路徑以斜桿(或反斜桿)開始表示應(yīng)用程序根目錄,應(yīng)用程序根目錄在開發(fā)時指工程目錄或工程外獨立啟動的文件所在目錄,發(fā)布后指 EXE 所在目錄。應(yīng)用程序根目錄已設(shè)為 AHK 工作目錄 %A_WorkingDir% 。

    導(dǎo)出 aardio 函數(shù)給 ahk 時也可以返回一個異步執(zhí)行的函數(shù)對象,調(diào)用虛擬桌面示例:

    import ahk; 
    import dotNet.desktop;
    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="虛擬桌面切換";right=599;bottom=399)
    winform.add(
    edit={cls="edit";left=17;top=18;right=565;bottom=374;edge=1;multiline=1;z=1}
    )
    /*}}*/
    
    //導(dǎo)出 AutoHotkey 函數(shù)
    ahk.onSwitch = function(index){ 
    	winform.edit.print("已切換桌面到:",index);
    	
    	//虛擬桌面在鍵盤鉤子中需要通過返回異步函數(shù)異步調(diào)用。
    	return function() {
    		dotNet.desktop.get(index).MakeVisible()
    	}
    }
     
    //運行 AutoHotkey 代碼注冊熱鍵
    ahk.run( `
    #Persistent
    #NoTrayIcon 
    #include <aardio> 
    
    ^j:: aardio.onSwitch(1)
    ^k:: aardio.onSwitch(2)
    `);
    
    winform.show();
    win.loopMessage();

    如果在 aardio 中執(zhí)行以下代碼:

    ahk.import("path/libName"); 

    則由 aardio 導(dǎo)入

    \AutoHotkey\Lib\path\libName.ahk 

    可以在 aardio 工程中添加上面的 ahk 文件 到內(nèi)嵌資源目錄,這樣該 ahk 文件會被編譯到 exe 資源內(nèi),運行時自動轉(zhuǎn)存為以下文件:

    %A_MyDocuments%\AutoHotkey\Lib\path\libName.ahk 

    在 AHK 中可以使用以下代碼引用該模塊:

    #include <path/libName> 

    在 aardio 中可使用 ahk.setGlobal() 函數(shù)修改 AHK 全局變量:

    //直接修改 AHK 全局變量的值
    ahk.setGlobal("gVar","測試一下")

    在 aardio 中執(zhí)行 AHK 代碼時還可以支持 aardio 模板語法,也就是在 AHK 代碼中可以直接寫 aardio 代碼,只要將 aardio 代碼包含在 <? ?> 標(biāo)記中就可以了(類似 PHP 模板語法),例如:

    //運行 AHK 代碼
    ahk.run( `
    #Persistent ;
    #NoTrayIcon ;
    #include <aardio>  ;
    
    global gVar := "<?="允許嵌入 aardio 代碼"?>"  ; 
    `);
    
    //直接修改 AHK 全局變量的值
    ahk.setGlobal("gVar","測試一下")

    關(guān)于 aardio 模板語法請參考 aardio 文檔。

    在 aardio 使用 ahk.thread 擴展庫可以調(diào)用 AutoHotkey v2,ahk.thread 不再需要在 AHK 啟動代碼中包含 #include <aardio>,其他用法與調(diào)用 ahk 擴展庫類似。下面看例子:

    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="嵌入 AutoHotkey v2 演示")
    winform.add(
    edit={cls="edit";left=8;top=10;right=749;bottom=452;edge=1;multiline=1;z=1}
    )
    /*}}*/
    
    winform.show();
    
    import ahk.thread;
    var ahk2 = ahk.thread();
    
    //直接定義允許 AHK 調(diào)用的 aardio 函數(shù)(函數(shù)名以on開頭)	
    ahk2.onTest = function(param){
        winform.edit.print( "winform.onTest被ahk調(diào)用",param ); 
        return 123
    }
    
    //運行 AHK 代碼
    ahk2.run( `
    #NoTrayIcon ;不顯示托盤圖標(biāo)
    Persistent( true)  ;保持ahk線程不退出
     
    ; 定義函數(shù)與 aardio 有點像,aardio 一般會寫為 GetPoint = function(hwnd){ return value;}
    GetPoint(){    
    	
        ; 直接調(diào)用aardio函數(shù),支持任意類型、不定個數(shù)的調(diào)用參數(shù)
        aardio.onTest({ x : 2, y : 3 })
    	
        return { x : 2, y : 3 }
    }`);
    
    
    /*
    直接調(diào)用ahk里定義的全局函數(shù),
    參數(shù)和返回值自動支持各種數(shù)據(jù)類型,就像調(diào)用普通aardio函數(shù)。
    是不是很神奇?!
    */
    var point = ahk2.GetPoint();
    winform.edit.print("調(diào)用ahk函數(shù)的返回值:",point);
    
    win.loopMessage();  

    要注意 AHK 中的變量默認(rèn)是局部變量,定義全局變量要用 global 語句,aardio 則是默認(rèn)全局變量,定義局部變量要用 var 語句。

    有了前面的基礎(chǔ),我們再將范例稍微整復(fù)雜一點,例如調(diào)用 AHK v1 :

    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="嵌入 AutoHotkey v1")
    winform.add(
    edit={cls="edit";left=17;top=18;right=734;bottom=444;edge=1;multiline=1;z=1}
    )
    /*}}*/
    
    import ahk; 
    ahk.onTest = function(param){
        winform.edit.print( "winform.onTest被ahk調(diào)用",param ); 
        winform.show();
    }
    
    ahk.run( `
    #Persistent
    #NoTrayIcon
    #include <aardio>
    
    GetPoint(){   
        
        ; 命令式語法 = 號后面是字符串,變量要放到百分號里
        POINT_TYPE =  
        (
            UInt x;
            UInt y;
        ) ; 首尾兩個括號都必須獨占一行,用于包含多行字符串
         
        
        ; 新語法 := 后面是表達式,和其他編程語言類似字符串放引號里,變量不用放百分號里
        point := Struct( POINT_TYPE ) ; 
        
        ; 取結(jié)構(gòu)體指針,aardio 里調(diào)用 API 時結(jié)構(gòu)體總是自動轉(zhuǎn)為指針,不需要寫這些代碼
        ptr := point[]
       
        ; DllCall("user32.dll\GetCursorPos", "Ptr", ptr)   
        GetCursorPos(ptr) ; 
    
        ; 直接調(diào)用aardio函數(shù),支持任意類型、不定個數(shù)的調(diào)用參數(shù)
        aardio.onTest({ x : point.x, y : point.y })
    
    	; 命令式語法, 百分號加一個空格表示后面是表達式
    	MsgBox, % "x:" point.x ",y:" point.y
    
        return { x : point.x, y : point.y }
    }`);
     
    /*
    直接調(diào)用ahk里定義的全局函數(shù)
    */
    var point = ahk.GetPoint();
    winform.edit.print("調(diào)用ahk函數(shù)的返回值:",point);
    
    win.loopMessage(); 

    以上主要是演示 aardio 與 AHK 交互,其實 aardio 直接調(diào)用 ::User32.GetCursorPos() 代碼更簡單,示例:

    // 當(dāng)然上面的代碼用 aardio 直接寫會更簡單,例如:
    var point = {int x;int y};
    
    //不用聲明直接調(diào)用 API,不用寫參數(shù)類型這些
    ::User32.GetCursorPos(point);

    aardio 可以免聲明直接調(diào)用 WinAPI ,不需要指定參數(shù)類型。

    下面再來個例子,使用 aardio 暫停、繼續(xù) AHK 腳本:

    import fonts.fontAwesome;
    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="嵌入autohotkey演示";right=757;bottom=467)
    winform.add(
    button={cls="plus";text="暫停AHK";left=19;top=11;right=109;bottom=41;bgcolor=-6960024;font=LOGFONT(name='FontAwesome';charset=0);z=2};
    edit={cls="edit";left=17;top=56;right=729;bottom=443;edge=1;multiline=1;z=1}
    )
    /*}}*/
    
    import ahk;
    var handle = ahk.run( `
    #Persistent ;保持ahk線程不退出
    #NoTrayIcon ;不顯示托盤圖標(biāo)
    #include <aardio> ;啟動ahk代碼中必須加入這句才能與aardio交互
    ::hj::run無亂碼
    `);
    
    winform.button.onMouseClick = function(){
    	if(winform.button.text=="暫停AHK"){
    		thread.suspend(handle)
    		winform.button.text = "繼續(xù)AHK"
    	}
    	else {
    		thread.resume(handle)
    		winform.button.text = "暫停AHK"
    	}
    }
    
    winform.button.skin({
    	color={
    		active=0xFFFFFFFF;
    		default=0xFF000000;
    		hover=0xFFFFFFFF
    	};
    });
    
    winform.show();
    win.loopMessage();

    aardio 制作圖形界面很方便,請參考 aardio 開始頁的教程《使用 plus 控件制作精美界面》。下面我們看一下 aardio 制作的一些開源軟件。

    通用輸入法狀態(tài)提示工具 ImTip:


    極簡錄屏工具 Gif123:

    系統(tǒng)五筆助手 WubiLex:

    在操作電腦的時候,如果身處人多的環(huán)境,自己有些東西不想被看到,通常會在有人接近的時候按下“老板鍵”來隱藏顯示界面上的一些東西,這功能不是用來摸魚防老板的,而是用來給老板用的。

    當(dāng)然除了老板鍵,還有縮小軟件和快速按下 Win+D 返回桌面等方式,但是這樣操作的話,光禿禿地看著桌面也是有些尷尬。

    所以在人多的情況下,更需要的是一個能隱藏某些指定軟件的工具,今天要介紹的這個開源工具——呼來喚去,就是一款全局老板鍵工具,可以為任意程序自定義老板鍵。

    也可以為窗口綁定老板鍵,按下進行顯示和切換。

    有了這個特性,就不只是用來摸魚和防止窺屏,它還可以結(jié)合一些自動化工具使用,比如說有的軟件提供了自動化操作鍵鼠的能力,但無法捕獲激活某個特定窗口,想控制的軟件本身也不能通過快捷鍵來喚出到前臺,那么就可以搭配這個工具的顯示和隱藏,快速編寫一些重復(fù)的鍵鼠自動化流程。

    這個工具很小巧,只有一個本體和存放軟件數(shù)據(jù)的 data 文件夾,不需要安裝,直接點開就能用。

    從軟件界面可以看出來,是以功能為主的軟件。

    需要配置的三個基礎(chǔ)選項是:程序本身、要設(shè)置的按鍵、窗口匹配方式。點擊旁邊的問號,還能看到作者留下的貼心提示。

    配置“老板鍵”的時候也可以選擇 AHK(AutoHotkey) 格式,這個 AHK 有些朋友可能不太明白是啥,其實也不需要管,不影響使用。

    我們這里把隱藏顯示 Chrome 瀏覽器的快捷鍵設(shè)置成 WIN+ALT+C,之后點一下應(yīng)用配置,一定要記著這步,不然是不會生效的。

    之后我們按下按鍵的時候,就能隱藏掉 Chrome 了,在任務(wù)欄里面也會消失掉。

    學(xué)會了基礎(chǔ)操作之后,就可以來點進階操作——快速綁定某個按鍵,這里有修飾鍵綁定和切換,以及后綴鍵的概念,第一看可能有點懵。

    其實很簡單,它的后綴鍵就是你想分配的快捷鍵,要把哪些快捷鍵拿出來分配。上圖里的就是“9”“0”“-”“=”這幾個鍵,你想綁定到其他鍵比如“z”鍵上就是不行的,需要你自己添加到那個輸入框里。

    現(xiàn)在想把一個軟件設(shè)置成按下 Win+0 就能快速打開和隱藏,那么在對應(yīng)的軟件上先用鼠標(biāo)點擊一下“代表選中”,然后按下 Win+Shift+0 來綁定好,右下角會有一個提示,之后按下 Win+0 就能正常使用了。

    知道了上面的操作,下面這個工作區(qū)就好理解了,快速切換桌面上的所有軟件。

    用起來效果是這樣的,就和使用系統(tǒng)自帶的虛擬桌面(按下 WIN+TAB 后,左上角的新建桌面)類似,但是它不是調(diào)用的系統(tǒng)虛擬桌面功能。

    這就有意思了,你可以同時打開聊天,工作和游戲等多個界面,只要不彈出強提醒通知,都可以正常隱藏。

    之后還可以調(diào)整一些細(xì)節(jié),是否開啟動畫和最小化而不是隱藏等等,如果你覺得用鍵盤觸發(fā)太明顯的話,配合鼠標(biāo)手勢工具來使用,整個過程就會變得“絲滑”了。

    不過話說回來,這個軟件的具體效果嘛,還是因人而異,用來快速切換軟件是挺好的,用來在沒有軟件監(jiān)控的環(huán)境下摸魚,你得注意你自己這個最關(guān)鍵的環(huán)境,不然人都到身后了還沒發(fā)現(xiàn),那什么軟件都沒用。

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有