Bueno hace tiempo tenia sin programar en C# pero usaba mucho la funciones de GetAsyncKeyState pero ahora que estoy de vuelta pruebo mis proyectos pasados y nuevos que creo y no le sirven y en vb.net si me van bien el getAsynKeyState, lo uso así:
//declaracion
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(int dwflags, int dx, int dy, int cbuttons, int dwExtraInfo);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(out Point lpPoint);
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Keys vkeys);
//metodo
if (GetAsyncKeyState(Keys.F10) == -32767)
{
///funcion
}
if (GetAsyncKeyState(Keys.F11) == -32767)
{
//funcion
}
El número que usas -32767 es como la versión int del binario hardcodeada. Si se cambia el tipo de encoding de bits de la arquitectura creo que tu código deja de funcionar. Véase a referencia LSB y MSB.
Por otro lado se hace un mal uso del retorno de la llamada ya que retorna bytes no un int.
if (GetAsyncKeyState(VK_F10) & 0x8000) {
//funcion
}
Aquí la docu: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate
Te vienen teclas también.
En C# tienes también getkeystates
https://docs.microsoft.com/en-us/dotnet/api/system.windows.input.keyboard.getkeystates?redirectedfrom=MSDN&view=netcore-3.1#System_Windows_Input_Keyboard_GetKeyStates_System_Windows_Input_Key_
Cita de: @XSStringManolo en 26 Abril 2020, 14:15 PM
El número que usas -32767 es como la versión int del binario hardcodeada. Si se cambia el tipo de encoding de bits de la arquitectura creo que tu código deja de funcionar. Véase a referencia LSB y MSB.
Por otro lado se hace un mal uso del retorno de la llamada ya que retorna bytes no un int.
if (GetAsyncKeyState(VK_F10) & 0x8000) {
//funcion
}
Aquí la docu: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate
Te vienen teclas también.
En C# tienes también getkeystates
https://docs.microsoft.com/en-us/dotnet/api/system.windows.input.keyboard.getkeystates?redirectedfrom=MSDN&view=netcore-3.1#System_Windows_Input_Keyboard_GetKeyStates_System_Windows_Input_Key_
Muchisimas gracias! me sirvio