C/C++: ปิดการใช้งานเมาส์ใน Linux (X11 - xinput)

ฉันต้องการเปิดใช้งานและปิดใช้งานเมาส์ใน Linux โดยทางโปรแกรมโดยใช้ C/C++ มีส่วนขยายอินพุตสำหรับ X11 ที่ให้คุณทำได้โดยใช้คำสั่งเทอร์มินัล:

xinput set-int-prop "<device name>" "Device Enabled" 8 0

มันทำงานได้อย่างสมบูรณ์แบบ แต่ฉันต้องการทำสิ่งนี้โดยตรงโดยใช้ห้องสมุด ฉันไม่พบเอกสารที่เหมาะสมเกี่ยวกับ libxi (ไลบรารีส่วนขยายอินพุต X11) และไฟล์ส่วนหัวใน /usr/include/X11 ยังไม่มีฟังก์ชันที่เป็นประโยชน์ใด ๆ ใครสามารถช่วยฉันในเรื่องนี้?


person goocreations    schedule 03.10.2014    source แหล่งที่มา


คำตอบ (1)


คุณรู้ไหมว่า xinput เป็นโอเพ่นซอร์สใช่ไหม :) นี่คือแผนผังต้นทาง

ดูเหมือนว่าจะเดือดลงไปที่การเรียก XIChangeProperty()

คุณอาจอ่านโค้ดได้ละเอียดกว่าฉันเล็กน้อย และแน่นอนว่าต้องอ่านหน้าคู่มือ เพื่อหาข้อโต้แย้งที่จำเป็น

person unwind    schedule 03.10.2014
comment
อ่า ขอบคุณ พลาดฟังก์ชันนั้นไปแล้ว ฉันจะเจาะลึกโค้ด คุณมีลิงก์ไปยังตัวอย่างที่ใช้สิ่งนี้เพื่อปิดการใช้งานอุปกรณ์หรือไม่? ฉันพบตัวอย่างสองสามตัวอย่าง แต่ไม่มีตัวอย่างใดที่อธิบายพารามิเตอร์หรือแสดงวิธีการเปิด/ปิดการใช้งานอุปกรณ์ได้อย่างถูกต้อง ถ้าไม่เช่นนั้น ฉันจะดูโค้ดในโปรแกรม xinput - person goocreations; 03.10.2014
comment
ไม่ ฉันไม่ค่อยได้ตั้งโปรแกรม X11 โดยตรง ดังนั้นฉันจึงไม่มีอะไรเลย ฉันเป็นหนวดเคราแบบ GTK+ มากกว่า :) แหล่งที่มา xinput สั้น คุณน่าจะเข้าใจได้ง่าย อย่าลืมเอกสารด้วย - person unwind; 03.10.2014
comment
ขอบคุณ. ฉันจะทำมัน. - person goocreations; 03.10.2014
comment
นอกจากนี้ คำสั่ง ltrace จะมีประโยชน์มากในการดีบัก xinput และค้นหาสิ่งที่จะดำเนินการเมื่อคุณเปิด/ปิดใช้งานเมาส์ - person RaFD; 03.10.2014