2011-07-14 33 views
1

我想知道如何執行例如單擊鼠標右鍵,或者按XNA按ENTER鍵,有可能嗎?我希望XNA prog能夠執行該操作,而不是檢查是否點擊了它。 謝謝。使用XNA執行鼠標,鍵盤單擊

+0

我也爲這個問題添加了一個答案,我希望這是你的意思與點擊:)。 – Citroenfris

+0

@citroenfris lol,我實際上是想做autoclicker,我在帖子中說過,我不想實際點擊,我想讓它自動點擊,但是沒有任何連接到XNA,但無論如何只是接受你的答案大聲笑 –

回答

4

您可以使用以下方法來使鼠標可見的光標(如果必要):

protected override void Initialize() 
{ 
    // Make mouse visible 
    this.IsMouseVisible = true; 

    base.Initialize(); 
} 

創建以下變量,這樣就可以保存當前和以前的mouseState:

MouseState mouseStateCurrent, mouseStatePrevious; 

在更新功能,您可以使用以下方法:

​​

希望這對你有一些用處!

0

只需撥打該點擊會打電話

所以leftClick被稱爲用戶點擊時的功能,但你可以調用該函數時,你想要

編輯:你可以做,如果你能做到,如果另一件事你想調用mouseClick你自己(而不是leftClick)是讓你自己的變量被髮送,並且爲你想要定義的不同狀態擁有一個枚舉。

enum CLICKS{left=0, right, middle); 
public void mouseClick(){ 
    mouseClick(-1); 
} 

public void mouseClick(int manualClick){ 

    if(mouseStateCurrent.LeftButton == ButtonState.Pressed || manualClick == CLICKS.left) 
    leftClick(); 

} 

public void leftClick(){ 
    //do stuff 
} 

public void randomFunction(){ 
    //doing stuff 
    mouseClick(CLICKS.left); //<-- will simulate a left click 
} 
+0

我不明白你在說什麼,請介意解釋一下嗎? –

+0

假設用戶單擊鼠標,您將調用mouseClick();不要等待用戶點擊,而是自己調用該函數。希望我正確理解你的問題 – bitrayne

+0

但事情是,我有一個如果在mouseClick方法:if(mouseStateCurrent.LeftButton == ButtonState.Pressed) –

0

如果您想模擬真實鼠標按下,您可以使用Win32方法SendInput。這不像在這裏已經提供的技術那麼簡單,但是遊戲將不能區分這些點擊來自真實用戶點擊還是模擬點擊。

也檢查了這個討論同樣問題的StackOverflow question