2015-11-03 1991 views
1

我通常使用java.awt.Robot當我想模擬鍵盤和鼠標項,它工作得很好。模擬鍵盤輸入與Lua

最近我聽說過另一種語言,Lua,我試了一下。我寫了一些運行良好的小程序,但現在我正在模擬像java一樣的鍵盤,但是我無法使其工作。

最令人沮喪的部分是,我發現在谷歌中使用Lua中的PressAndReleaseKey('someKey')函數的示例,並且這些代碼似乎不需要庫,但是我無法使此函數工作(它們似乎也始終與Logitech,所以也許它只能在Logitech驅動程序中使用)。所以我不確定這是我在尋找什麼。

因此,簡而言之,我的問題是:如何使用Lua程序模擬鍵盤輸入?

例如,如果我在終端

lua test.lua 

與此文件一直喜歡那種類型:

while(true) do 
    thefunctionIsearch('a') 
end 

那麼程序應該鍵入字母「A」無限。

我在Linux(Ubuntu)上,如果有的話。

回答

2

這些代碼似乎不需要庫

它不能沒有額外的庫來完成。它不能在沒有外部庫的情況下完成,並且Lua的標準庫完全按照C的標準庫來實現。

他們也似乎總是與這樣也許羅技它只是使用羅技的驅動程序內的Lua

羅技鍵盤編寫腳本,所以你幾乎可以肯定看到了羅技特有的擴展到Lua這在香草Lua中不可用。

如何使用LUA程序模擬鍵盤輸入?

查找或寫入一個模塊。如果你知道C,那很簡單。

或者,如果您可以找到一個共享庫來執行Linux操作,則可以使用LuaJIT的FFI直接與該庫進行交互,而無需查找/寫入模塊。

+0

所以,如果我想用LUA模擬我的鍵盤輸入,我必須在C中編寫代碼並在我的LUA函數中調用它?我從來沒有混用過不同的語言,但我想現在是開始的好時機,我會搜索如何做到這一點。 它是否改變了一些東西來寫在C或在Java中? (我已經有我的java方法functionning) – user2329273

+0

我剛剛讀到,LuaJIT比lua快,所以我想我會遷移到LuaJIT(所以我會用FFI和C)。再次感謝。 – user2329273

+0

是啊,Lua是C,它的API是C,所以在C中編寫Lua模塊是迄今爲止最簡單的路徑。使用FFI比鏈接C庫和使用C庫更笨拙,但如果你可以做後者,你應該能夠弄清楚前者。 – Mud