Source file: /~heha/hsn/wackelK.zip/src/wackelK.cpp

#include <windows.h>
//#include <shlwapi.h>
// Einfaches Programm welches Tastenanschläge von F16 generiert.
// Um den Bildschirmschoner zu vermeiden und Aktivität vorzugaukeln.
// Beenden des Programms nur über den Task-Manager
// Für den Notfall lässt sich die Taste per Kommandozeilenparameter ändern.

class Xorshift32{
 unsigned a;
public:
 Xorshift32():a(GetTickCount()) {} // The state must be initialized to non-zero
 operator unsigned() {	// Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs"
  a ^= a << 13;
  a ^= a >> 17;
  a ^= a << 5;
  return a;
 }
};

#if 0
EXTERN_C _CRTIMP int __cdecl __getmainargs(int*,char***,char***,int);

static BYTE vk() {
 TCHAR*cmdline = GetCommandLine();
 int argc;
 bool ok=false;
 int vk;
#ifdef UNICODE
 WCHAR**argv = CommandLineToArgvW(cmdline,&argc);
#else
 char**argv,**envp; 
 __getmainargs(&argc,&argv,&envp,TRUE);
#endif
 if (argc>=2) {
  TCHAR*arg=argv[1];
  if (arg[0]=='F' || arg[0]=='f') {
   ok=StrToIntEx(arg+1,0,&vk) && vk>0 && vk<=24;
   vk+=VK_F1-1;
  }
  if (!ok
  && StrToIntEx(argv[1],STIF_SUPPORT_HEX,&vk)	// direkte Angabe als dezimaler oder hexadezimaler Wert
  && vk>0 && vk<255) ok=true;
 }
#ifdef UNICODE
 GlobalFree(argv);
#endif
 return ok ? BYTE(vk) : VK_F16;		// F16 sieht unbenutzt aus
}
#endif

EXTERN_C void WinMainCRTStartup() {
 PostQuitMessage(0);	// Trick um den Sanduhrcursor beim Start zu vermeiden
 MSG msg;
 while (GetMessage(&msg,0,0,0)) DispatchMessage(&msg);
 static INPUT input;
 input.type = INPUT_KEYBOARD;
 Xorshift32 rng;
 for(;;) {
  Sleep(MulDiv(HIWORD(rng),10000,65535)+40000);	// 10..50 s
  input.ki.wVk = VK_F13+MulDiv(LOWORD(rng),12,65535);	// F13..F24
  for (int j=0; j<4; j++) {
   SendInput(1,&input,sizeof input);
   Sleep(MulDiv(HIWORD(rng),200,65535)+100);	// 0,1..0,3 s
   input.ki.dwFlags ^= KEYEVENTF_KEYUP;		// drücken - loslassen - drücken - loslassen
  }
 }
}
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded