2013-02-27 85 views
0

(有關背景知識,請參閱Composing a WM_TOUCH message for SendMessage(), Kinect as a multi-touch device,它基本上與我的問題基本相同,但其接受的答案實際上並不回答問題。 TOUCHINPUT結構,但做一個有效的觸摸輸入句柄)在C#/ .NET中爲PostMessage()創建WM_TOUCH消息

我想模擬多點觸摸輸入設備的存在在一個討厭的hackish的方式,這在輪廓是這樣的:

while (true) { 
    choose locations etc. for simulated touches; 
    PostMessage(GetForegroundWindow(), WM_TOUCH, nTouches, ...); 
} 

的棘手的一點是在那個標有「...」的空間裏。 MSDN文檔,這是勿庸置疑從一個WM_TOUCH消費者的消息的點寫,說,lParamWM_TOUCH信息是,可以在呼叫過程中用來GetTouchInputInfo

觸摸輸入手柄以檢索關於與該消息相關聯的觸摸點的詳細信息。

我可以很容易地做出,例如TOUCHINPUT結構的數組,這就是GetTouchInputInfo給你的結果。但是,這似乎與「觸摸輸入句柄」完全不同。 (例如,觸摸輸入句柄必須正確類的事情傳遞給CloseTouchInputHandle,據稱PostMessageSendMessage就行了。)

是否有可能(正式或非正式的!)的用戶代碼來生成一個有效觸摸輸入句柄,它可以傳遞給PostMessage如果是這樣,怎麼樣?

+0

說「不行」很難做到。嗯,不,沒辦法。你需要相當於SendInput(),它不存在觸摸。 – 2013-02-27 18:18:15

+0

這也是我的猜測!我只是希望可能有一些邪惡的無證方法來做到這一點。 (例如,也許觸摸輸入句柄實際上在引擎蓋下,只是一個指向一堆TOUCHINPUT結構的指針 - 儘管這需要一些非常不可思議的魔法,因爲在進程之間不能有意義地傳遞指針。)您的「否方式「是指」沒有合法的方式「或」絕對沒有辦法,包括討厭的黑客「? – 2013-02-28 09:27:29

回答