2012-12-05 6 views
10

पर डालने के लिए डाल रहा है, मैं SendInput फ़ंक्शन के उचित उपयोग को समझने की कोशिश कर रहा हूं, इसलिए मैं सीधे कर्सर को स्क्रीन पर हेरफेर कर सकता हूं, इसलिए बुनियादी परीक्षण के लिए यह देखने के लिए कि चीजें कैसे काम करती हैं, मैंने यह छोटा स्निपेट बनाया जो कर्सर को 10 पिक्सेल दाहिने ओर ले जाना चाहिए। सिद्धांत रूप में।SendInput सिस्टम को

#include <windows.h> 
#include <winable.h> 

int main() 
{ 
    INPUT joyInput; 
    joyInput.type = INPUT_MOUSE; 
    joyInput.mi.dx = 10; 
    joyInput.mi.dwFlags = MOUSEEVENTF_MOVE; 
    SendInput(1, &joyInput, sizeof(INPUT)); 
    return 0; 
} 

हालाँकि, व्यवहार में, SendInput समारोह या तो सोने के लिए अपने कंप्यूटर डाल है, या कम से कम मेरी नज़र रखता है, जो निश्चित रूप से एक अवांछित प्रभाव है बंद! उस पंक्ति को टिप्पणी करते हुए समस्या को होने से रोकता है, लेकिन स्पष्ट रूप से मुझे कार्य करने के लिए इसकी आवश्यकता है। मैं क्या गलत कर रहा हूं?

+0

यह एक पुराना धागा है, लेकिन मैंने इसी समस्या को मारा और कारण साझा करना चाहता था। यदि आप माउस ईवेंट में समय डेटा लागू नहीं करते हैं, तो यह किसी भी कारण से स्क्रीन पावर को ट्रिगर कर सकता है। शायद यह इन घटनाओं का उपयोग कर इनपुट टाइमआउट की गणना कर रहा है? ऐसा लगता है कि परीक्षण के लिए केवल उपयोगी है, लेकिन यह उत्पादन कोड के लिए कोई समझ नहीं आता है। वैसे भी, आप एक समय असाइन करने के लिए GetTickCount() का उपयोग कर सकते हैं: joyInput.mi.time = GetTickCount(); – MonoQuemado

उत्तर

7

MOUSEINPUT संरचना में तीन सदस्य हैं जिन्हें आप प्रारंभ नहीं कर रहे हैं - dy, mouseData, और time। चूंकि प्रलेखन डिफ़ॉल्ट मानों का उल्लेख नहीं करता है, इसलिए मुझे लगता है कि कार्यक्रम शुरू में उन सदस्यों को जो भी जंक चाहता है उसे भरने के लिए स्वतंत्र है। इससे बचने के लिए आपको मूल्यों को स्पष्ट रूप से सेट करना चाहिए।

#include <windows.h> 
#include <winable.h> 

int main() 
{ 
    INPUT joyInput; 
    joyInput.type = INPUT_MOUSE; 
    joyInput.mi.dx = 10; 
    joyInput.mi.dwFlags = MOUSEEVENTF_MOVE; 

    joyInput.mi.dy = 0; 
    joyInput.mi.mouseData = 0; 
    joyInput.mi.time = 0; 

    SendInput(1, &joyInput, sizeof(INPUT)); 
    return 0; 
} 
संबंधित मुद्दे