Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
e5ef45c
Delete SnapKey.cpp
SAPNXTDOOR Jan 15, 2026
1618b23
Delete meta directory
SAPNXTDOOR Jan 15, 2026
bb4de31
Delete Build SnapKey directory
SAPNXTDOOR Jan 15, 2026
a59e14f
Update copyright LICENSE
SAPNXTDOOR Jan 15, 2026
310c4d6
Delete config.cfg
SAPNXTDOOR Jan 15, 2026
ea176be
Delete snapkey.ico
SAPNXTDOOR Jan 15, 2026
8fc3d1d
Delete resources.rc
SAPNXTDOOR Jan 15, 2026
eda1bab
Delete icon_off.ico
SAPNXTDOOR Jan 15, 2026
05730e8
Delete icon.ico
SAPNXTDOOR Jan 15, 2026
20b2390
Delete .github directory
SAPNXTDOOR Jan 15, 2026
f18ff48
Revise README with updated features and contributors
SAPNXTDOOR Jan 15, 2026
36fdcfc
Update README.md
SAPNXTDOOR Jan 15, 2026
eaa3b53
Add files via upload
SAPNXTDOOR Jan 15, 2026
da444c6
Update README.md
SAPNXTDOOR Jan 15, 2026
f89a35d
Update README.md
SAPNXTDOOR Jan 15, 2026
2899314
Update README.md
SAPNXTDOOR Jan 15, 2026
05bd055
Add files via upload
SAPNXTDOOR Jan 15, 2026
7ae775c
Update README.md
SAPNXTDOOR Jan 15, 2026
007cf97
Add files via upload
SAPNXTDOOR Jan 15, 2026
f8908f5
Add files via upload
SAPNXTDOOR Mar 4, 2026
b09dd96
Update README.md
SAPNXTDOOR Mar 5, 2026
6160e65
Update README.md
SAPNXTDOOR Mar 5, 2026
297385f
Delete Emitter.cpp
SAPNXTDOOR Mar 5, 2026
6e3a17f
Delete SnapKey Pro v1.4.1 directory
SAPNXTDOOR Mar 5, 2026
f444fb4
Delete Hooks.cpp
SAPNXTDOOR Mar 5, 2026
2c4f83f
Delete InputState.h
SAPNXTDOOR Mar 5, 2026
590166c
Delete Logic.cpp
SAPNXTDOOR Mar 5, 2026
6e05577
Delete SnapKeyPro.exe
SAPNXTDOOR Mar 5, 2026
e8d7b9b
Delete banner.png
SAPNXTDOOR Mar 5, 2026
af4f1b9
Delete icon.ico
SAPNXTDOOR Mar 5, 2026
bf3017a
Delete main.cpp
SAPNXTDOOR Mar 5, 2026
e7135f6
Delete resource.o
SAPNXTDOOR Mar 5, 2026
8910e51
Delete resource.rc
SAPNXTDOOR Mar 5, 2026
a0b8a52
Delete resource.h
SAPNXTDOOR Mar 5, 2026
a73c5ff
Updated files for latest version (v1.5)
SAPNXTDOOR Mar 5, 2026
74c8420
Revise README for SnapKey Pro with detailed features
SAPNXTDOOR Mar 5, 2026
1b5595b
Update README.md
SAPNXTDOOR Mar 5, 2026
934976b
Update README.md
SAPNXTDOOR Mar 5, 2026
385be12
Update README.md
SAPNXTDOOR Mar 5, 2026
588ae99
Enhance README with GitHub badges
SAPNXTDOOR Mar 5, 2026
657e286
Update README.md
SAPNXTDOOR Mar 5, 2026
bedd6cc
Update README.md
SAPNXTDOOR Mar 5, 2026
9523392
Update README.md
SAPNXTDOOR Mar 5, 2026
2e3153f
Delete main.cpp
SAPNXTDOOR Mar 6, 2026
295e498
Delete How to Compile.txt
SAPNXTDOOR Mar 6, 2026
c6b1171
Add files via upload
SAPNXTDOOR Mar 6, 2026
d12ccd9
Delete main.cpp
SAPNXTDOOR Mar 6, 2026
bb03cce
Delete Hooks.cpp
SAPNXTDOOR Mar 6, 2026
6d2b8bb
Delete hotkeys.txt
SAPNXTDOOR Mar 6, 2026
402da18
Delete SnapKey Pro.exe
SAPNXTDOOR Mar 6, 2026
4a97edb
Updated files for v1.5.1
SAPNXTDOOR Mar 6, 2026
78f71f5
Double data fixed
SAPNXTDOOR Mar 6, 2026
f37aa75
Update README.md
SAPNXTDOOR Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 0 additions & 46 deletions .github/workflows/snapkey.yml

This file was deleted.

14 changes: 0 additions & 14 deletions Build SnapKey/CMAKE-Build/CMake-Build.bat

This file was deleted.

18 changes: 0 additions & 18 deletions Build SnapKey/CMAKE-Build/CMakeLists.txt

This file was deleted.

1 change: 0 additions & 1 deletion Build SnapKey/CMAKE-Build/resources.rc

This file was deleted.

20 changes: 0 additions & 20 deletions Build SnapKey/MSYS-Build/MSYS-Build.bat

This file was deleted.

17 changes: 0 additions & 17 deletions Build SnapKey/MSYS-Build/MSYS-Build.sh

This file was deleted.

32 changes: 0 additions & 32 deletions Build SnapKey/MSYS-Build/resources.rc

This file was deleted.

60 changes: 0 additions & 60 deletions Build SnapKey/Setup-Build/setup.iss

This file was deleted.

Binary file removed Build SnapKey/Setup-Build/wizard_large.bmp
Binary file not shown.
Binary file removed Build SnapKey/Setup-Build/wizard_large.xcf
Binary file not shown.
Binary file removed Build SnapKey/Setup-Build/wizard_small.bmp
Binary file not shown.
10 changes: 10 additions & 0 deletions Emitter.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#include <windows.h>
#include "InputState.h"

void SendKey(WORD vk, bool down) {
INPUT input = {};
input.type = INPUT_KEYBOARD;
input.ki.wVk = vk;
input.ki.dwFlags = down ? 0 : KEYEVENTF_KEYUP;
SendInput(1, &input, sizeof(INPUT));
}
165 changes: 165 additions & 0 deletions Hooks.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
#include <windows.h>
#include <vector>
#include <map>
#include <string>

#include "InputState.h"

HHOOK keyboardHook = NULL;
HHOOK mouseHook = NULL;

/* =========================
HOTKEY STRUCT (from main)
========================= */
struct Hotkey
{
UINT modifiers;
UINT vk;
};

extern std::vector<Hotkey> hotkeys;
extern std::map<int,std::string> actions;

void HandleHotkey(int id);

/* =========================
CHECK MOUSE HOTKEYS
========================= */
void CheckMouseHotkeys(UINT vk)
{
for(int i=0;i<(int)hotkeys.size();i++)
{
if(hotkeys[i].vk == vk)
{
HandleHotkey(i);
}
}
}

/* =========================
KEYBOARD HOOK
========================= */
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {

if (nCode == HC_ACTION) {

KBDLLHOOKSTRUCT* k = (KBDLLHOOKSTRUCT*)lParam;

// Ignore injected input
if (k->flags & LLKHF_INJECTED) {
return CallNextHookEx(NULL, nCode, wParam, lParam);
}

bool isKeyDown = (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN);
bool isKeyUp = (wParam == WM_KEYUP || wParam == WM_SYSKEYUP);

if (isKeyDown || isKeyUp) {

switch (k->vkCode) {

case 'A':
if (isKeyDown && !pA) { pA = true; lastH = 'A'; }
else if (isKeyUp) { pA = false; }
break;

case 'D':
if (isKeyDown && !pD) { pD = true; lastH = 'D'; }
else if (isKeyUp) { pD = false; }
break;

case 'W':
if (isKeyDown && !pW) { pW = true; lastV = 'W'; }
else if (isKeyUp) { pW = false; }
break;

case 'S':
if (isKeyDown && !pS) { pS = true; lastV = 'S'; }
else if (isKeyUp) { pS = false; }
break;

default:
break;
}

Update();

// Block raw WASD ONLY when enabled
if (g_enabled &&
(k->vkCode == 'W' || k->vkCode == 'A' ||
k->vkCode == 'S' || k->vkCode == 'D')) {
return 1;
}
}
}

return CallNextHookEx(NULL, nCode, wParam, lParam);
}

/* =========================
MOUSE HOOK
========================= */
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam) {

if (nCode == HC_ACTION) {

MSLLHOOKSTRUCT* ms = (MSLLHOOKSTRUCT*)lParam;

switch (wParam)
{

case WM_LBUTTONDOWN:
pFire = true;
Update();
CheckMouseHotkeys(VK_LBUTTON);
break;

case WM_LBUTTONUP:
pFire = false;
Update();
break;

case WM_RBUTTONDOWN:
CheckMouseHotkeys(VK_RBUTTON);
break;

case WM_MBUTTONDOWN:
CheckMouseHotkeys(VK_MBUTTON);
break;

case WM_XBUTTONDOWN:

if(HIWORD(ms->mouseData) == XBUTTON1)
CheckMouseHotkeys(VK_XBUTTON1);

if(HIWORD(ms->mouseData) == XBUTTON2)
CheckMouseHotkeys(VK_XBUTTON2);

break;
}
}

return CallNextHookEx(NULL, nCode, wParam, lParam);
}

/* =========================
INSTALL HOOKS
========================= */
void InstallKeyboardHook() {

keyboardHook = SetWindowsHookEx(
WH_KEYBOARD_LL,
KeyboardProc,
NULL,
0
);
}

void InstallMouseHook() {

mouseHook = SetWindowsHookEx(
WH_MOUSE_LL,
MouseProc,
NULL,
0
);
}
1 change: 1 addition & 0 deletions How to Compile.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
g++ *.cpp resource.o admin.o -o "SnapKey Pro.exe" -mwindows -static -static-libgcc -static-libstdc++ -luser32 -lgdi32 -lshlwapi
Loading