संपादित करें: टिप्पणियों में रॉड्रिगो उत्तर के अनुसार कुछ संशोधन।
INPUT Input = { 0 };
// shift key down
Input.type = INPUT_KEYBOARD;
Input.ki.wVk = VK_LSHIFT;
SendInput(1, &Input, sizeof(INPUT));
// 'a' key down
Input.type = INPUT_KEYBOARD;
Input.ki.wVk = 'A';
SendInput(1, &Input, sizeof(INPUT));
// 'a' key release
Input.type = INPUT_KEYBOARD;
Input.ki.dwFlags = KEYEVENTF_KEYUP;
Input.ki.wVk = 'A';
SendInput(1, &Input, sizeof(INPUT));
// shift key release
Input.type = INPUT_KEYBOARD;
Input.ki.dwFlags = KEYEVENTF_KEYUP;
Input.ki.wVk = VK_LSHIFT;
SendInput(1, &Input, sizeof(INPUT));
संपादित करें: यहाँ टोपियां मोड़ का एक उदाहरण के साथ एक और कोड है/पत्र भेजने के बाद बंद बदलाव:
INPUT Event = { 0 };
const SHORT key = VkKeyScan('a');
const UINT mappedKey = MapVirtualKey(LOBYTE(key), 0);
// Press shift key
Event.type = INPUT_KEYBOARD;
Event.ki.dwFlags = KEYEVENTF_SCANCODE;
Event.ki.wScan = MapVirtualKey(VK_LSHIFT, 0);
SendInput(1, &Event, sizeof(Event));
// upper case 'A'
Event.type = INPUT_KEYBOARD;
Event.ki.dwFlags = KEYEVENTF_SCANCODE;
Event.ki.wScan = mappedKey;
SendInput(1, &Event, sizeof(Event));
// release upper case 'A'
Event.type = INPUT_KEYBOARD;
Event.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
Event.ki.wScan = mappedKey;
SendInput(1, &Event, sizeof(Event));
// Release shift key
Event.type = INPUT_KEYBOARD;
Event.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
Event.ki.wScan = MapVirtualKey(VK_LSHIFT, 0);
SendInput(1, &Event, sizeof(Event));
const SHORT key1 = VkKeyScan('A');
const UINT mappedKey1 = MapVirtualKey(LOBYTE(key1), 0);
// lower case 'a'
Event.type = INPUT_KEYBOARD;
Event.ki.dwFlags = KEYEVENTF_SCANCODE;
Event.ki.wScan = mappedKey1;
SendInput(1, &Event, sizeof(Event));
// release lower case 'a'
Event.type = INPUT_KEYBOARD;
Event.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
Event.ki.wScan = mappedKey1;
SendInput(1, &Event, sizeof(Event));
यहाँ विवरण (मुझे आशा है कि स्पष्टीकरण सही है): SendInput() for keyboard - only uppercase
आपके पास एक शिफ्ट कुंजी धारण करने के अनुकरण के लिए, जैसा कि आप – Shenaniganz
लिखते समय करेंगे, जैसा कि शेनानिगंज ने संकेत दिया था, आप एक महत्वपूर्ण प्रेस अनुकरण कर रहे हैं। क्या आपके पास कीबोर्ड पर "ए" कुंजी _and_ एक लोअर-केस "ए" कुंजी है? – TheZ
'INPUT' प्रकार में एक नेमल्स यूनियन है, इसलिए आपको वास्तव में एक ही चर के' mi' और 'ki' सदस्यों को असाइन नहीं करना चाहिए। – rodrigo