EDIT: algunas modificaciones según rodrigo responden en los comentarios.
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));
EDIT: aquí es otro código con un ejemplo de convertir tapas/shift después de enviar la carta:
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));
explicación aquí (espero que la explicación es correcta): SendInput() for keyboard - only uppercase
Tienes para simular la celebración de una tecla de mayúsculas, tal como lo haría al escribir – Shenaniganz
Como insinuó Shenaniganz, está simulando presionar una tecla. ¿Tiene una tecla "A" en mayúscula y una "a" minúscula en su teclado? – TheZ
El tipo 'INPUT' contiene una unión nameelss, por lo que no debería asignar miembros' mi' y 'ki' de la misma variable. – rodrigo