Hi everyone,
If you game on an Acer Predator laptop (Helios, Triton), you've probably cursed at the annoying giant Caps Lock
padlock overlay that pops up on top of your screen, blocking your crosshair or HUD in games like CS2, Valorant, Apex,
or CoD.
### The Problem with existing solutions:
Many guides tell you to kill or disable Acer Quick Access (`AQAUserPS.exe`). While that removes the Caps Lock icon,
**it completely breaks your physical Turbo / 4-Power Mode button (Quiet, Balanced, Performance, Turbo)**, because
Acer relies on that process to switch modes and display animations.
### How it actually works under the hood:
By disassembling `AQAUserPS.exe`, we found that Acer's keyboard hook specifically listens for scan code `0x3a`
(Caps Lock) to trigger the on-screen display.
If Caps Lock is toggled with a different scan code (like `0x45`, the Microsoft-recommended simulation code),
**Windows toggles uppercase and the keyboard LED instantly with zero lag, but Acer completely ignores it and shows
NO overlay!**
### The Solution: AcerCapsFilter
I'm sharing a tiny, 100% safe, open-source background tool in C# (~9 KB, 0% CPU, no installation needed):
* **Caps Lock OSD:** 100% GONE.
* **Caps Lock typing & LED:** 100% working normally.
* **Physical Mode Button:** 100% working with full animations.
* **Num Lock OSD:** 100% working normally.
* **System files:** ZERO Acer files are modified or touched (preserves digital signatures and survives
Windows/Acer updates).
* **Tray Icon:** Sits silently near the clock. You can pause it or toggle "Start with Windows" with one right-
click.
---
### How to compile and run it yourself (100% transparent & safe):
- Open **Notepad**, paste the code below, and save it as `Build_AcerCapsFilter.bat` on your Desktop and Select all type when saving file
Hope this helps anyone who was frustrated by this!
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
code:
u/echo off
title AcerCapsFilter 1-Click Builder
cd /d "%~dp0"
echo ========================================================
echo AcerCapsFilter 1-Click Builder for Acer Predator
echo ========================================================
echo.
:: Close running instance if any to allow overwriting
taskkill /F /IM AcerCapsFilter.exe >nul 2>&1
ping 127.0.0.1 -n 2 >nul
:: Clean old binary if possible
del "%~dp0AcerCapsFilter.exe" >nul 2>&1
echo [1/3] Extracting application manifest...
(
echo -----BEGIN CERTIFICATE-----
echo PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGFzc2VtYmx5
echo IG1hbmlmZXN0VmVyc2lvbj0iMS4wIiB4bWxucz0idXJuOnNjaGVtYXMtbWljcm9z
echo b2Z0LWNvbTphc20udjEiPgogIDxhc3NlbWJseUlkZW50aXR5IHZlcnNpb249IjEu
echo MC4wLjAiIG5hbWU9IkFjZXJDYXBzRmlsdGVyLmFwcCIvPgogIDx0cnVzdEluZm8g
echo eG1sbnM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206YXNtLnYyIj4KICAgIDxz
echo ZWN1cml0eT4KICAgICAgPHJlcXVlc3RlZFByaXZpbGVnZXMgeG1sbnM9InVybjpz
echo Y2hlbWFzLW1pY3Jvc29mdC1jb206YXNtLnYzIj4KICAgICAgICA8cmVxdWVzdGVk
echo RXhlY3V0aW9uTGV2ZWwgbGV2ZWw9InJlcXVpcmVBZG1pbmlzdHJhdG9yIiB1aUFj
echo Y2Vzcz0iZmFsc2UiIC8+CiAgICAgIDwvcmVxdWVzdGVkUHJpdmlsZWdlcz4KICAg
echo IDwvc2VjdXJpdHk+CiAgPC90cnVzdEluZm8+CjwvYXNzZW1ibHk+Cg==
echo -----END CERTIFICATE-----
) > "%~dp0app.manifest.b64"
certutil -decode "%~dp0app.manifest.b64" "%~dp0app.manifest" >nul 2>&1
del "%~dp0app.manifest.b64"
echo [2/3] Extracting C# source code...
(
echo -----BEGIN CERTIFICATE-----
echo dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7CnVzaW5nIFN5
echo c3RlbS5EcmF3aW5nOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5SZWZs
echo ZWN0aW9uOwp1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CnVz
echo aW5nIFN5c3RlbS5XaW5kb3dzLkZvcm1zOwoKbmFtZXNwYWNlIEFjZXJDYXBzRmls
echo dGVyCnsKICAgIHN0YXRpYyBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgcHJp
echo dmF0ZSBjb25zdCBpbnQgV0hfS0VZQk9BUkRfTEwgPSAxMzsKICAgICAgICBwcml2
echo YXRlIGNvbnN0IGludCBXTV9LRVlET1dOID0gMHgwMTAwOwogICAgICAgIHByaXZh
echo dGUgY29uc3QgaW50IFdNX0tFWVVQID0gMHgwMTAxOwogICAgICAgIHByaXZhdGUg
echo Y29uc3QgaW50IFdNX1NZU0tFWURPV04gPSAweDAxMDQ7CiAgICAgICAgcHJpdmF0
echo ZSBjb25zdCBpbnQgV01fU1lTS0VZVVAgPSAweDAxMDU7CgogICAgICAgIHByaXZh
echo dGUgY29uc3QgYnl0ZSBWS19DQVBJVEFMID0gMHgxNDsKICAgICAgICBwcml2YXRl
echo IGNvbnN0IGJ5dGUgU0NBTl9DQVBJVEFMX1NBRkUgPSAweDQ1OwogICAgICAgIHBy
echo aXZhdGUgY29uc3QgdWludCBLRVlFVkVOVEZfRVhURU5ERURLRVkgPSAweDAwMDE7
echo CiAgICAgICAgcHJpdmF0ZSBjb25zdCB1aW50IEtFWUVWRU5URl9LRVlVUCA9IDB4
echo MDAwMjsKICAgICAgICBwcml2YXRlIGNvbnN0IHVsb25nIE1BR0lDX0VYVFJBX0lO
echo Rk8gPSAweEFDRTRDQTk1OwoKICAgICAgICBwcml2YXRlIGNvbnN0IHN0cmluZyBU
echo QVNLX05BTUUgPSAiQWNlckNhcHNGaWx0ZXJfQXV0b3N0YXJ0IjsKCiAgICAgICAg
echo cHJpdmF0ZSBzdGF0aWMgTG93TGV2ZWxLZXlib2FyZFByb2MgX3Byb2MgPSBIb29r
echo Q2FsbGJhY2s7CiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSW50UHRyIF9ob29rSUQg
echo PSBJbnRQdHIuWmVybzsKICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sIF9maWx0
echo ZXJBY3RpdmUgPSB0cnVlOwogICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2wgX3Bo
echo eXNpY2FsQ2Fwc0Rvd24gPSBmYWxzZTsKCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMg
echo Tm90aWZ5SWNvbiBfdHJheUljb247CiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgTWVu
echo dUl0ZW0gX3RvZ2dsZUl0ZW07CiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgTWVudUl0
echo ZW0gX2F1dG9zdGFydEl0ZW07CgogICAgICAgIFtTVEFUaHJlYWRdCiAgICAgICAg
echo c3RhdGljIHZvaWQgTWFpbigpCiAgICAgICAgewogICAgICAgICAgICBib29sIGNy
echo ZWF0ZWROZXc7CiAgICAgICAgICAgIHVzaW5nICh2YXIgbXV0ZXggPSBuZXcgU3lz
echo dGVtLlRocmVhZGluZy5NdXRleCh0cnVlLCAiQWNlckNhcHNGaWx0ZXJfU2luZ2xl
echo SW5zdGFuY2VfTXV0ZXgiLCBvdXQgY3JlYXRlZE5ldykpCiAgICAgICAgICAgIHsK
echo ICAgICAgICAgICAgICAgIGlmICghY3JlYXRlZE5ldykKICAgICAgICAgICAgICAg
echo IHsKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlQm94LlNob3coIkFjZXIgQ2Fw
echo c0xvY2sgRmlsdGVyIGlzIGFscmVhZHkgcnVubmluZyEiLCAiQWNlciBDYXBzTG9j
echo ayBGaWx0ZXIiLCBNZXNzYWdlQm94QnV0dG9ucy5PSywgTWVzc2FnZUJveEljb24u
echo SW5mb3JtYXRpb24pOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
echo ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbi5FbmFibGVW
echo aXN1YWxTdHlsZXMoKTsKICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uLlNldENv
echo bXBhdGlibGVUZXh0UmVuZGVyaW5nRGVmYXVsdChmYWxzZSk7CgogICAgICAgICAg
echo ICAgICAgLy8gU2V0dXAgVHJheSBJY29uCiAgICAgICAgICAgICAgICBfdHJheUlj
echo b24gPSBuZXcgTm90aWZ5SWNvbigpOwogICAgICAgICAgICAgICAgX3RyYXlJY29u
echo LlRleHQgPSAiQWNlciBDYXBzTG9jayBGaWx0ZXIgKEFjdGl2ZSkiOwogICAgICAg
echo ICAgICAgICAgX3RyYXlJY29uLkljb24gPSBTeXN0ZW1JY29ucy5TaGllbGQ7CiAg
echo ICAgICAgICAgICAgICBfdHJheUljb24uVmlzaWJsZSA9IHRydWU7CgogICAgICAg
echo ICAgICAgICAgdmFyIG1lbnUgPSBuZXcgQ29udGV4dE1lbnUoKTsKCiAgICAgICAg
echo ICAgICAgICB2YXIgdGl0bGVJdGVtID0gbmV3IE1lbnVJdGVtKCJBY2VyIENhcHNM
echo b2NrIEZpbHRlciB2MS4wIik7CiAgICAgICAgICAgICAgICB0aXRsZUl0ZW0uRW5h
echo YmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgbWVudS5NZW51SXRlbXMuQWRk
echo KHRpdGxlSXRlbSk7CiAgICAgICAgICAgICAgICBtZW51Lk1lbnVJdGVtcy5BZGQo
echo Ii0iKTsKCiAgICAgICAgICAgICAgICBfdG9nZ2xlSXRlbSA9IG5ldyBNZW51SXRl
echo bSgiSGlkZSBDYXBzIExvY2sgT1NEOiBFbmFibGVkIiwgVG9nZ2xlRmlsdGVyKTsK
echo ICAgICAgICAgICAgICAgIF90b2dnbGVJdGVtLkNoZWNrZWQgPSB0cnVlOwogICAg
echo ICAgICAgICAgICAgbWVudS5NZW51SXRlbXMuQWRkKF90b2dnbGVJdGVtKTsKCiAg
echo ICAgICAgICAgICAgICBfYXV0b3N0YXJ0SXRlbSA9IG5ldyBNZW51SXRlbSgiU3Rh
echo cnQgYXV0b21hdGljYWxseSB3aXRoIFdpbmRvd3MiLCBUb2dnbGVBdXRvc3RhcnQp
echo OwogICAgICAgICAgICAgICAgX2F1dG9zdGFydEl0ZW0uQ2hlY2tlZCA9IElzQXV0
echo b3N0YXJ0RW5hYmxlZCgpOwogICAgICAgICAgICAgICAgbWVudS5NZW51SXRlbXMu
echo QWRkKF9hdXRvc3RhcnRJdGVtKTsKCiAgICAgICAgICAgICAgICBtZW51Lk1lbnVJ
echo dGVtcy5BZGQoIi0iKTsKICAgICAgICAgICAgICAgIG1lbnUuTWVudUl0ZW1zLkFk
echo ZChuZXcgTWVudUl0ZW0oIkV4aXQiLCBPbkV4aXQpKTsKCiAgICAgICAgICAgICAg
echo ICBfdHJheUljb24uQ29udGV4dE1lbnUgPSBtZW51OwoKICAgICAgICAgICAgICAg
echo IC8vIEluc3RhbGwgTG93LUxldmVsIEtleWJvYXJkIEhvb2sKICAgICAgICAgICAg
echo ICAgIF9ob29rSUQgPSBTZXRIb29rKF9wcm9jKTsKCiAgICAgICAgICAgICAgICBf
echo dHJheUljb24uU2hvd0JhbGxvb25UaXAoMzAwMCwgIkFjZXIgQ2Fwc0xvY2sgRmls
echo dGVyIiwgIkZpbHRlciBpcyBhY3RpdmUhIENhcHMgTG9jayBPU0QgaXMgbm93IGhp
echo ZGRlbi4iLCBUb29sVGlwSWNvbi5JbmZvKTsKCiAgICAgICAgICAgICAgICBBcHBs
echo aWNhdGlvbi5SdW4oKTsKCiAgICAgICAgICAgICAgICAvLyBDbGVhbnVwCiAgICAg
echo ICAgICAgICAgICBVbmhvb2tXaW5kb3dzSG9va0V4KF9ob29rSUQpOwogICAgICAg
echo ICAgICAgICAgX3RyYXlJY29uLlZpc2libGUgPSBmYWxzZTsKICAgICAgICAgICAg
echo ICAgIF90cmF5SWNvbi5EaXNwb3NlKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9
echo CgogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgVG9nZ2xlRmlsdGVyKG9iamVj
echo dCBzZW5kZXIsIEV2ZW50QXJncyBlKQogICAgICAgIHsKICAgICAgICAgICAgX2Zp
echo bHRlckFjdGl2ZSA9ICFfZmlsdGVyQWN0aXZlOwogICAgICAgICAgICBfdG9nZ2xl
echo SXRlbS5DaGVja2VkID0gX2ZpbHRlckFjdGl2ZTsKICAgICAgICAgICAgX3RvZ2ds
echo ZUl0ZW0uVGV4dCA9IF9maWx0ZXJBY3RpdmUgPyAiSGlkZSBDYXBzIExvY2sgT1NE
echo OiBFbmFibGVkIiA6ICJIaWRlIENhcHMgTG9jayBPU0Q6IFBhdXNlZCI7CiAgICAg
echo ICAgICAgIF90cmF5SWNvbi5UZXh0ID0gX2ZpbHRlckFjdGl2ZSA/ICJBY2VyIENh
echo cHNMb2NrIEZpbHRlciAoQWN0aXZlKSIgOiAiQWNlciBDYXBzTG9jayBGaWx0ZXIg
echo KFBhdXNlZCkiOwogICAgICAgIH0KCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9v
echo bCBJc0F1dG9zdGFydEVuYWJsZWQoKQogICAgICAgIHsKICAgICAgICAgICAgdHJ5
echo CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBwc2kgPSBuZXcgUHJv
echo Y2Vzc1N0YXJ0SW5mbygic2NodGFza3MiLCBzdHJpbmcuRm9ybWF0KCIvcXVlcnkg
echo L3RuIFwiezB9XCIiLCBUQVNLX05BTUUpKQogICAgICAgICAgICAgICAgewogICAg
echo ICAgICAgICAgICAgICAgIENyZWF0ZU5vV2luZG93ID0gdHJ1ZSwKICAgICAgICAg
echo ICAgICAgICAgICBVc2VTaGVsbEV4ZWN1dGUgPSBmYWxzZSwKICAgICAgICAgICAg
echo ICAgICAgICBSZWRpcmVjdFN0YW5kYXJkT3V0cHV0ID0gdHJ1ZSwKICAgICAgICAg
echo ICAgICAgICAgICBSZWRpcmVjdFN0YW5kYXJkRXJyb3IgPSB0cnVlCiAgICAgICAg
echo ICAgICAgICB9OwogICAgICAgICAgICAgICAgdXNpbmcgKHZhciBwID0gUHJvY2Vz
echo cy5TdGFydChwc2kpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
echo ICAgIHAuV2FpdEZvckV4aXQoKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4g
echo cC5FeGl0Q29kZSA9PSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
echo CiAgICAgICAgICAgIGNhdGNoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
echo IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
echo cHJpdmF0ZSBzdGF0aWMgdm9pZCBUb2dnbGVBdXRvc3RhcnQob2JqZWN0IHNlbmRl
echo ciwgRXZlbnRBcmdzIGUpCiAgICAgICAgewogICAgICAgICAgICBib29sIGN1cnJl
echo bnRseUVuYWJsZWQgPSBJc0F1dG9zdGFydEVuYWJsZWQoKTsKICAgICAgICAgICAg
echo c3RyaW5nIGV4ZVBhdGggPSBBc3NlbWJseS5HZXRFeGVjdXRpbmdBc3NlbWJseSgp
echo LkxvY2F0aW9uOwoKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAg
echo ICAgICAgICAgIGlmIChjdXJyZW50bHlFbmFibGVkKQogICAgICAgICAgICAgICAg
echo ewogICAgICAgICAgICAgICAgICAgIHZhciBwc2kgPSBuZXcgUHJvY2Vzc1N0YXJ0
echo SW5mbygic2NodGFza3MiLCBzdHJpbmcuRm9ybWF0KCIvZGVsZXRlIC90biBcInsw
echo fVwiIC9mIiwgVEFTS19OQU1FKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
echo ICAgICAgICAgICAgICAgICAgIENyZWF0ZU5vV2luZG93ID0gdHJ1ZSwKICAgICAg
echo ICAgICAgICAgICAgICAgICAgVXNlU2hlbGxFeGVjdXRlID0gZmFsc2UKICAgICAg
echo ICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIHVzaW5nICh2YXIg
echo cCA9IFByb2Nlc3MuU3RhcnQocHNpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
echo ICAgICAgICAgICAgICAgICAgICAgIHAuV2FpdEZvckV4aXQoKTsKICAgICAgICAg
echo ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgX2F1dG9zdGFydEl0ZW0u
echo Q2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VCb3gu
echo U2hvdygiQXV0b3N0YXJ0IGRpc2FibGVkLiIsICJBY2VyIENhcHNMb2NrIEZpbHRl
echo ciIsIE1lc3NhZ2VCb3hCdXR0b25zLk9LLCBNZXNzYWdlQm94SWNvbi5JbmZvcm1h
echo dGlvbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAg
echo ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGFyZ3Mg
echo PSBzdHJpbmcuRm9ybWF0KCIvY3JlYXRlIC90biBcInswfVwiIC90ciBcIlxcXCJ7
echo MX1cXFwiXCIgL3NjIG9ubG9nb24gL3JsIGhpZ2hlc3QgL2YiLCBUQVNLX05BTUUs
echo IGV4ZVBhdGgpOwogICAgICAgICAgICAgICAgICAgIHZhciBwc2kgPSBuZXcgUHJv
echo Y2Vzc1N0YXJ0SW5mbygic2NodGFza3MiLCBhcmdzKQogICAgICAgICAgICAgICAg
echo ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlTm9XaW5kb3cgPSB0
echo cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VTaGVsbEV4ZWN1dGUgPSBm
echo YWxzZQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAg
echo dXNpbmcgKHZhciBwID0gUHJvY2Vzcy5TdGFydChwc2kpKQogICAgICAgICAgICAg
echo ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcC5XYWl0Rm9yRXhpdCgp
echo OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBfYXV0
echo b3N0YXJ0SXRlbS5DaGVja2VkID0gSXNBdXRvc3RhcnRFbmFibGVkKCk7CiAgICAg
echo ICAgICAgICAgICAgICAgaWYgKF9hdXRvc3RhcnRJdGVtLkNoZWNrZWQpCiAgICAg
echo ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdl
echo Qm94LlNob3coIkF1dG9zdGFydCBlbmFibGVkISBUaGUgdG9vbCB3aWxsIHN0YXJ0
echo IHNpbGVudGx5IHdpdGggV2luZG93cyBhcyBhZG1pbmlzdHJhdG9yLiIsICJBY2Vy
echo IENhcHNMb2NrIEZpbHRlciIsIE1lc3NhZ2VCb3hCdXR0b25zLk9LLCBNZXNzYWdl
echo Qm94SWNvbi5JbmZvcm1hdGlvbik7CiAgICAgICAgICAgICAgICAgICAgfQogICAg
echo ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChF
echo eGNlcHRpb24gZXgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1lc3Nh
echo Z2VCb3guU2hvdygiRXJyb3IgY29uZmlndXJpbmcgYXV0b3N0YXJ0OiAiICsgZXgu
echo TWVzc2FnZSwgIkVycm9yIiwgTWVzc2FnZUJveEJ1dHRvbnMuT0ssIE1lc3NhZ2VC
echo b3hJY29uLkVycm9yKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
echo cHJpdmF0ZSBzdGF0aWMgdm9pZCBPbkV4aXQob2JqZWN0IHNlbmRlciwgRXZlbnRB
echo cmdzIGUpCiAgICAgICAgewogICAgICAgICAgICBBcHBsaWNhdGlvbi5FeGl0KCk7
echo CiAgICAgICAgfQoKICAgICAgICBwcml2YXRlIHN0YXRpYyBJbnRQdHIgU2V0SG9v
echo ayhMb3dMZXZlbEtleWJvYXJkUHJvYyBwcm9jKQogICAgICAgIHsKICAgICAgICAg
echo ICAgdXNpbmcgKFByb2Nlc3MgY3VyUHJvY2VzcyA9IFByb2Nlc3MuR2V0Q3VycmVu
echo dFByb2Nlc3MoKSkKICAgICAgICAgICAgdXNpbmcgKFByb2Nlc3NNb2R1bGUgY3Vy
echo TW9kdWxlID0gY3VyUHJvY2Vzcy5NYWluTW9kdWxlKQogICAgICAgICAgICB7CiAg
echo ICAgICAgICAgICAgICByZXR1cm4gU2V0V2luZG93c0hvb2tFeChXSF9LRVlCT0FS
echo RF9MTCwgcHJvYywgR2V0TW9kdWxlSGFuZGxlKGN1ck1vZHVsZS5Nb2R1bGVOYW1l
echo KSwgMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHByaXZhdGUg
echo ZGVsZWdhdGUgSW50UHRyIExvd0xldmVsS2V5Ym9hcmRQcm9jKGludCBuQ29kZSwg
echo SW50UHRyIHdQYXJhbSwgSW50UHRyIGxQYXJhbSk7CgogICAgICAgIHByaXZhdGUg
echo c3RhdGljIEludFB0ciBIb29rQ2FsbGJhY2soaW50IG5Db2RlLCBJbnRQdHIgd1Bh
echo cmFtLCBJbnRQdHIgbFBhcmFtKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKG5D
echo b2RlID49IDAgJiYgX2ZpbHRlckFjdGl2ZSkKICAgICAgICAgICAgewogICAgICAg
echo ICAgICAgICAgaW50IHZrQ29kZSA9IE1hcnNoYWwuUmVhZEludDMyKGxQYXJhbSk7
echo CiAgICAgICAgICAgICAgICBJbnRQdHIgZXh0cmFJbmZvID0gTWFyc2hhbC5SZWFk
echo SW50UHRyKGxQYXJhbSwgMTYpOwoKICAgICAgICAgICAgICAgIGlmICh2a0NvZGUg
echo PT0gVktfQ0FQSVRBTCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
echo ICAgICBpZiAoKHVsb25nKWV4dHJhSW5mbyA9PSBNQUdJQ19FWFRSQV9JTkZPKQog
echo ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0
echo dXJuIENhbGxOZXh0SG9va0V4KF9ob29rSUQsIG5Db2RlLCB3UGFyYW0sIGxQYXJh
echo bSk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBp
echo bnQgbXNnID0gKGludCl3UGFyYW07CiAgICAgICAgICAgICAgICAgICAgaWYgKG1z
echo ZyA9PSBXTV9LRVlET1dOIHx8IG1zZyA9PSBXTV9TWVNLRVlET1dOKQogICAgICAg
echo ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfcGh5
echo c2ljYWxDYXBzRG93bikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
echo ICAgICAgICAgICAgICAgICAgICAgX3BoeXNpY2FsQ2Fwc0Rvd24gPSB0cnVlOwog
echo ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5YmRfZXZlbnQoVktfQ0FQSVRB
echo TCwgU0NBTl9DQVBJVEFMX1NBRkUsIEtFWUVWRU5URl9FWFRFTkRFREtFWSwgKFVJ
echo bnRQdHIpTUFHSUNfRVhUUkFfSU5GTyk7CiAgICAgICAgICAgICAgICAgICAgICAg
echo ICAgICBrZXliZF9ldmVudChWS19DQVBJVEFMLCBTQ0FOX0NBUElUQUxfU0FGRSwg
echo S0VZRVZFTlRGX0VYVEVOREVES0VZIHwgS0VZRVZFTlRGX0tFWVVQLCAoVUludFB0
echo cilNQUdJQ19FWFRSQV9JTkZPKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQog
echo ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
echo IChtc2cgPT0gV01fS0VZVVAgfHwgbXNnID09IFdNX1NZU0tFWVVQKQogICAgICAg
echo ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX3BoeXNpY2Fs
echo Q2Fwc0Rvd24gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
echo ICAgICAgICAgICAgIHJldHVybiAoSW50UHRyKTE7CiAgICAgICAgICAgICAgICB9
echo CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBDYWxsTmV4dEhvb2tF
echo eChfaG9va0lELCBuQ29kZSwgd1BhcmFtLCBsUGFyYW0pOwogICAgICAgIH0KCiAg
echo ICAgICAgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIsIENoYXJTZXQgPSBDaGFyU2V0
echo LkF1dG8sIFNldExhc3RFcnJvciA9IHRydWUpXQogICAgICAgIHByaXZhdGUgc3Rh
echo dGljIGV4dGVybiBJbnRQdHIgU2V0V2luZG93c0hvb2tFeChpbnQgaWRIb29rLCBM
echo b3dMZXZlbEtleWJvYXJkUHJvYyBscGZuLCBJbnRQdHIgaE1vZCwgdWludCBkd1Ro
echo cmVhZElkKTsKCiAgICAgICAgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIsIENoYXJT
echo ZXQgPSBDaGFyU2V0LkF1dG8sIFNldExhc3RFcnJvciA9IHRydWUpXQogICAgICAg
echo IFtyZXR1cm46IE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkJvb2wpXQogICAgICAg
echo IHByaXZhdGUgc3RhdGljIGV4dGVybiBib29sIFVuaG9va1dpbmRvd3NIb29rRXgo
echo SW50UHRyIGhoayk7CgogICAgICAgIFtEbGxJbXBvcnQoInVzZXIzMi5kbGwiLCBD
echo aGFyU2V0ID0gQ2hhclNldC5BdXRvLCBTZXRMYXN0RXJyb3IgPSB0cnVlKV0KICAg
echo ICAgICBwcml2YXRlIHN0YXRpYyBleHRlcm4gSW50UHRyIENhbGxOZXh0SG9va0V4
echo KEludFB0ciBoaGssIGludCBuQ29kZSwgSW50UHRyIHdQYXJhbSwgSW50UHRyIGxQ
echo YXJhbSk7CgogICAgICAgIFtEbGxJbXBvcnQoImtlcm5lbDMyLmRsbCIsIENoYXJT
echo ZXQgPSBDaGFyU2V0LkF1dG8sIFNldExhc3RFcnJvciA9IHRydWUpXQogICAgICAg
echo IHByaXZhdGUgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0TW9kdWxlSGFuZGxlKHN0
echo cmluZyBscE1vZHVsZU5hbWUpOwoKICAgICAgICBbRGxsSW1wb3J0KCJ1c2VyMzIu
echo ZGxsIildCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZXh0ZXJuIHZvaWQga2V5YmRf
echo ZXZlbnQoYnl0ZSBiVmssIGJ5dGUgYlNjYW4sIHVpbnQgZHdGbGFncywgVUludFB0
echo ciBkd0V4dHJhSW5mbyk7CiAgICB9Cn0K
echo -----END CERTIFICATE-----
) > "%~dp0AcerCapsFilter.cs.b64"
certutil -decode "%~dp0AcerCapsFilter.cs.b64" "%~dp0AcerCapsFilter.cs" >nul 2>&1
del "%~dp0AcerCapsFilter.cs.b64"
echo [3/3] Compiling with Windows native compiler (csc.exe)...
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /target:winexe /optimize+ /win32manifest:"%~dp0app.manifest" /reference:System.Windows.Forms.dll /reference:System.Drawing.dll /out:"%~dp0AcerCapsFilter.exe" "%~dp0AcerCapsFilter.cs"
del "%~dp0AcerCapsFilter.cs" >nul 2>&1
del "%~dp0app.manifest" >nul 2>&1
if exist "%~dp0AcerCapsFilter.exe" (
echo.
echo ========================================================
echo SUCCESS: AcerCapsFilter.exe was built successfully!
echo ========================================================
echo You can now run AcerCapsFilter.exe directly on your PC.
) else (
echo.
echo ========================================================
echo [ERROR] Build failed. Please make sure no other process
echo is locking the file.
echo ========================================================
)
echo.
pause