Skip to content

Instantly share code, notes, and snippets.

@banthar
Created November 2, 2010 17:30
Show Gist options
  • Save banthar/659968 to your computer and use it in GitHub Desktop.
Save banthar/659968 to your computer and use it in GitHub Desktop.
main.c
#include <windows.h>
#include <stdio.h>
void mouseDown(int button)
{
switch(button)
{
case 0:
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
break;
case 1:
mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0);
break;
case 2:
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
break;
}
}
void mouseUp(int button)
{
switch(button)
{
case 0:
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
break;
case 1:
mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0);
break;
case 2:
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
break;
}
}
void mouseMove(int x, int y)
{
mouse_event(MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE, x, y, 0, 0);
}
void mouseClick(int button)
{
mouseDown(button);
mouseUp(button);
}
DWORD keyCodeToVKey(int keyCode)
{
if(keyCode>='a' && keyCode<='z')
return keyCode-'a'+0x41;
else if(keyCode>='A' && keyCode<='Z')
return keyCode-'A'+0x41;
else if(keyCode=='\n')
return VK_RETURN;
else if(keyCode==' ')
return VK_SPACE;
else
{
fprintf(stderr,"unknown keyCode: %i", keyCode);
abort();
}
}
void keyDown(int keyCode)
{
keybd_event( keyCodeToVKey(keyCode), 0x45, KEYEVENTF_EXTENDEDKEY, 0);
}
void keyUp(int keyCode)
{
keybd_event( keyCodeToVKey(keyCode), 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
void keyType(int keyCode)
{
keyDown(keyCode);
keyUp(keyCode);
}
void keyTypeString(const char* text)
{
for(int i=0;i<strlen(text);i++)
keyType(text[i]);
}
int main(int argc, char* argv[])
{
keyTypeString("hello world\n");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment