Pergunta

Meu código atual é:

[DllImport("user32.dll", SetLastError = true)] 
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);  

public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag 
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag 
public const int VK_RMENU = 0xA5;

keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_Q, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_Q, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);

Eu obtenho o Q maiúsculo conforme necessário, mas o problema é que o "Shift" permanece.

Todas as letras depois disso são todas maiúsculas.a única maneira de obter letras minúsculas é mudar para caps lock.Como posso resolver esse problema?

Desde já, obrigado

Foi útil?

Solução

Acredito que Cody Gray deu a você a resolução para seu problema.Basta substituir suas chamadas P / Invoke por:

keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(VK_Q, 0, 0, 0);
keybd_event(VK_Q, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top