Hallo an alle,
also ich hab mich ein wenig damit auseinandergesetzt.
Das Programm hab ich - das Programm läuft nur mit einem kleinen Problem.
Also der Link von dir funzt nur mit IE (hab ich gar net drauf) aber die Seite find ich eh net so gut.
Wer sichs runterladen will:
http://www.daoc.dark-empire.net/Testprogramm.rar
Naja und nun zu meinem Problem. Das Programm funzt im Notepad, Word - Windows Explorer nur wollte ich das die Taste 1 in nem Spiel (Dark Age of Camelot) gedrückt wird.
jedoch da gehts nich obwohl das programm läuft (hab die TastaturLED´s blinken lassen zur Kontrolle)
muss man da irgendwas angeben wenn man ne Anwenung wie n Spiel Startet, oder kann ich das durch evtl kleine Änderungen ausgleichen.
MfG
ein kleines Irrlicht.
Hier der Quelltext:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
const char szAppName[] = "Uebung 1: Timer programmieren"; // Global, da in WndProc benutzt
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MSG msg;
HWND hWnd;
WNDCLASS wc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = szAppName;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wc);
hWnd = CreateWindow( szAppName,
szAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hWnd, iCmdShow);
UpdateWindow(hWnd);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
const UINT TimerID = 1;
const int iDelay = 2000; // = Zeit einstellen
switch (message)
{
case WM_CREATE:
{
SetTimer(hWnd, TimerID, iDelay, NULL); // Timer setzen
return 0;
}
case WM_TIMER: // WM_TIMER
{
keybd_event(0x31, 0, 0, NULL); // '1' drücken
keybd_event(0x31, 0, KEYEVENTF_KEYUP, 0); // '1' loslassen
keybd_event(144, 0, 0, 0); // Num Lock
keybd_event(144, 0, 0x02, 0); // an
Sleep(1000);
keybd_event(144, 0, 0, 0); // Num Lock
keybd_event(144, 0, 0x02, 0); // aus
Sleep(500);
keybd_event(20, 0, 0, 0); // Caps Lock
keybd_event(20, 0, 0x02, 0); // an
Sleep(1000);
keybd_event(20, 0, 0, 0); // Caps Lock
keybd_event(20, 0, 0x02, 0); // aus
Sleep(500);
keybd_event(145, 0, 0, 0); // Scroll Lock
keybd_event(145, 0, 0x02, 0); // an
Sleep(1000);
keybd_event(145, 0, 0, 0); // Scroll Lock
keybd_event(145, 0, 0x02, 0); // aus
Sleep(500);
return 0;
}
case WM_DESTROY:
{
KillTimer(hWnd, TimerID); // nicht vergessen: Timer löschen
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}