โ ๏ธ For Educational Purposes Only
This tool is provided for learning and educational purposes. Users are responsible for ensuring compliance with applicable Terms of Service and local laws.
Author: Hugo
Last Updated: 2025-10-06
A Windows keyboard automation tool that automatically repeats key presses while you hold a trigger key. Supports both SendInput (hardware-level, AHK-like) and PostMessage (message queue) methods.
๐ ็น้ซไธญๆ่ชชๆ | ็ฎไฝไธญๆ่ฏดๆ
This application uses legitimate Windows API calls - the same APIs used by trusted software:
| What It Does | What It Does NOT Do |
|---|---|
| โ Sends keyboard events via API | โ Does NOT read game memory |
| โ Uses standard Windows functions | โ Does NOT write to game memory |
| โ Operates outside game process | โ Does NOT inject DLLs |
| โ Same as AutoHotkey/RDP | โ Does NOT hook game functions |
This tool uses the same technology as:
- ๐ฅ๏ธ Remote Desktop (TeamViewer, Windows RDP)
- โฟ Accessibility Tools (Screen readers, voice control)
- ๐ค Automation Software (AutoHotkey, Selenium)
- ๐ฎ Game Streaming (Steam Remote Play)
- ๐ฎ Two Output Modes: SendInput (hardware-level, DirectInput compatible) or PostMessage (safer)
- ๐ช Auto-detect Windows: Dropdown list of all open windows
- โจ๏ธ Customizable Keys: Set trigger and output keys
- โก Adjustable Speed: Configure interval (1-1000ms)
- ๐ Multi-language UI: English / ็น้ซไธญๆ switchable interface
- ๐ Window Refresh: Update window list on-the-fly
- ๐ฏ Pass-through Mode: Optional key blocking
- ๐พ Persistent Config: Saves your settings automatically
- ๐งช Fully Tested: Comprehensive pytest test suite
-
Install Python 3.8+ (if not already installed)
-
Install dependencies:
pip install keyboard
-
Run as Administrator (required for keyboard hooks):
python autofire_ui.py
- Select Target Window - Choose from dropdown or type window title (click ๐ to refresh)
- Set Trigger Key - The key you'll hold (e.g.,
e) - Set Output Key - The key to auto-fire (e.g.,
r) - Set Interval - How fast to repeat in milliseconds (default: 100ms)
- Choose Mode - โ Check "Use SendInput" for better game compatibility
- Click Start - Hold trigger key to activate, release to stop
Tale Runner Example Settings:
- Trigger Key:
e(hold this key) - Output Key:
e(this key will auto-fire) - Target Window:
Tales Runner - Interval:
100ms(fires 10 times per second) - SendInput: โ Enabled (for DirectInput game compatibility)
Result: Hold E key โ Auto-fires E every 100ms โ Works with DirectInput games!
How it works: Simulates hardware-level keyboard input using scan codes
- โ Works with DirectInput games (games that read directly from keyboard driver)
- โ Same method as AutoHotkey
- โ Better compatibility with modern games
โ ๏ธ Slightly more detectable
Use when: Game ignores PostMessage (most modern games)
How it works: Sends messages to window's message queue
- โ Safer - lower detection risk
- โ Window-specific targeting
- โ Doesn't work with DirectInput games
- โ Some games ignore message queue input
Use when: You need safer method or target application reads message queue
1. You hold trigger key (e.g., "E")
โ
2. Keyboard hook detects press
โ
3. Background thread starts
โ
4. Validates target window exists
โ
5. Loop starts:
- SendInput/PostMessage: KEY_DOWN
- Wait 20ms
- SendInput/PostMessage: KEY_UP
- Wait [your interval]ms
โ
6. You release trigger โ Loop stops
| API | Purpose | Safe? |
|---|---|---|
SendInput() |
Hardware-level input simulation | โ Standard API |
PostMessageW() |
Message queue input | โ Standard API |
FindWindowW() |
Locate window by title | โ Read-only |
EnumWindows() |
List all windows | โ Read-only |
MapVirtualKeyW() |
Get scan codes | โ Read-only |
No memory reading, no code injection, no DLL hooking.
pytestAll tests verify:
- UI functionality
- Thread safety
- Configuration management
- Input simulation logic
- Error handling
Q: Does this work with all games?
A: Use SendInput mode for best compatibility. PostMessage mode doesn't work with DirectInput games.
Q: Will I get banned?
A: This uses legitimate Windows APIs like AutoHotkey. However, check your game's Terms of Service. Some games prohibit automation.
Q: Why do I need Administrator privileges?
A: Windows requires admin rights for global keyboard hooks to detect your trigger key.
Q: SendInput vs PostMessage - which should I use?
A: SendInput (default) works with more games. PostMessage is safer but less compatible.
Q: How do I switch languages?
A: Click the "EN/็นไธญ" button in the top-right corner of the app.
Settings are automatically saved to autofire.json:
{
"trigger_key": "e",
"output_key": "r",
"interval_ms": 100,
"window_title": "Tales Runner",
"pass_through": false,
"use_sendinput": true,
"language": "en"
}Run the test suite:
pytestAll tests verify: UI functionality, thread safety, config management, and error handling.
Contributions welcome! Please ensure:
- All tests pass (
pytest) - Code follows existing style
- Documentation is updated
For Educational Purposes Only
This project is provided as-is for educational and learning purposes. The author is not responsible for any misuse or violations of Terms of Service. Users must:
- โ Understand how Windows APIs work
- โ Respect software Terms of Service
- โ Use responsibly and ethically
โ ๏ธ Accept all risks associated with use In the future, we can develop more marco apps similar to razer so that more different keyboards can be used.
- ็น้ซไธญๆๅฎๆด่ชชๆ - Traditional Chinese documentation
- ็ฐก้ซไธญๆๅฎๆด่ชชๆ - Simplified Chinese documentation
- Security Details - Detailed security documentation
Q: Will I get banned?
A: Depends on game rules. Safer than memory cheats, but automation may be prohibited.
Q: Why doesn't it work in my game?
A: Some games use DirectInput or filter PostMessage events.
Q: Can anti-cheat detect it?
A: Behavioral detection can flag patterns, but this doesn't use memory manipulation.
Q: Why require Administrator?
A: For the keyboard hook to detect trigger keys globally.
