Italic one-liner: A small, boring, honest patcher that makes Foxit PDF Reader stop nagging a licensed office that already pays for it.
Foxit PDF Reader Patcher is a standalone Windows utility that adjusts Foxit PDF Reader's local configuration so the reader behaves like a properly licensed install on machines where the license file is already provisioned by IT. It doesn't invent a license, it doesn't phone anywhere, and it doesn't touch a single byte of Foxit's binaries. It reads your existing activation state, normalizes the registry and config files Foxit itself writes, and leaves the app in a clean, consistent state.
I built this after getting tired of re-imaging lab machines and watching Foxit flip back into "nag mode" because a config key didn't survive a user profile reset. The patcher is the boring glue that fixes that. One executable, no installer, no service, no background process. Run it, done.
The button above opens the project landing page, where the current build is available to download.
- IT admins who provision Foxit PDF Reader on fleets and need consistent post-install state across machines.
- Lab and classroom technicians who reset Windows profiles regularly and don't want to reconfigure the reader each time.
- Small business owners with a handful of seats and a legitimately licensed Foxit install that keeps behaving inconsistently.
- Power users who juggle multiple Windows accounts on one box and want the reader's config to actually stick.
- Anyone maintaining golden images who wants a repeatable, scriptable step in their build pipeline.
- Normalize Foxit's config state after a fresh install or profile reset, without reinstalling the reader.
- Apply a consistent license configuration across multiple Windows accounts on the same machine.
- Snapshot the current state to a
.jsonfile before touching anything, so you can diff or roll back. - Restore from a snapshot with a single flag if something looks off after a change.
- Run silently in a deployment script with
--quiet, no prompts, no GUI flicker. - Generate a report of what changed (keys touched, values before/after) for change logs and audits.
- Pick a specific Foxit profile path when the reader lives somewhere non-standard.
- Verify the reader launches cleanly post-patch with a built-in sanity check.
- Head to the landing page from the download button above and grab the latest
foxit-pdf-patch-tools_x.y.z.zip. - Extract the zip anywhere — Desktop is fine, a
Tools\folder is tidier. There is no installer. - Close Foxit PDF Reader completely (check the tray icon too — it likes to linger).
- Double-click
foxit-pdf-patch.exe. If Windows SmartScreen grumbles, choose "More info" → "Run anyway"; the binary is unsigned because I refuse to buy a code-signing cert for a weekend-sized tool. - Confirm the summary in the console, reopen Foxit, and check that the nag banners are gone.
For scripted runs:
foxit-pdf-patch.exe --quiet --snapshot before.json --report changes.log- Windows 10 or Windows 11, x64.
- A working install of Foxit PDF Reader (any 2023+ build).
- Administrator rights for the first run if Foxit was installed machine-wide (it usually is).
- Roughly 4 MB of disk space — it's a single static binary.
- No toolchain, no Python, no .NET runtime to install, no dependencies. It just runs.
Five steps, in order, and nothing sneaky:
- Detect every Foxit PDF Reader install and user-profile config path on the machine.
- Take a snapshot of the current registry keys and config files to
.json. - Compare against the expected shape for a provisioned, licensed reader.
- Write only the keys that differ, backing up originals inline.
- Write a change log and exit with a meaningful code (
0clean,1changes applied,2needs attention).
flowchart LR
A[Detect Foxit installs] --> B[Snapshot config]
B --> C[Diff against expected]
C --> D[Apply minimal writes]
D --> E[Report and exit]
Is this a Foxit PDF Reader patcher or a separate app? It's a separate, standalone utility that patches Foxit's local configuration. It does not replace, modify, or redistribute Foxit PDF Reader itself.
Will this work with the free Foxit PDF Reader? It targets the reader's own config model. If your reader is genuinely unlicensed, there is nothing here for the patcher to normalize — the tool will say so and exit cleanly rather than pretend otherwise.
Does it need to run every boot? No. Run it after installs, profile resets, or image deployments. There is no background component by design.
Is it safe to run on a machine with an antivirus that hates small utilities? The binary is unsigned, so heuristic scanners may flag it. The source is in this repo — build it yourself if you'd rather run your own compile. Submitting it to your AV vendor's false-positive form is also fine.
Can I roll back a change?
Yes. Every run writes a .json snapshot before touching anything, and --restore <file> puts it back exactly as it was.
- "Foxit not found" even though it's installed. Run as Administrator. The patcher enumerates HKLM paths by default; standard users can't read them.
- SmartScreen blocks the exe. Click "More info" → "Run anyway", or build from source. Unsigned is a deliberate choice, not an oversight.
- Changes don't stick after a reboot on a domain machine. Group Policy is likely rewriting the same keys at logon. Exclude the Foxit config path from your GPO, or run the patcher as a logon task after GP applies.
- Report shows "no changes needed" but Foxit still nags. Foxit has updated its config schema in newer builds. Open an issue with the reader version and the contents of your snapshot file and I'll add support.
MIT. See MIT License.
This project is not affiliated with, endorsed by, or sponsored by Foxit Software. "Foxit" and "Foxit PDF Reader" are trademarks of their respective owners. The patcher modifies local configuration only and ships no Foxit code.
v2026.3 — Added --report output as a structured log; fixed detection for per-user installs in %LOCALAPPDATA%\Foxit Software. Snapshot format now includes a schema version so old files fail loudly instead of silently.
v2026.2 — Introduced --restore and inline key backups. The --quiet flag no longer swallows exit codes, so CI pipelines can actually branch on the result.
v2026.1 — First public build. Single static binary, snapshot-before-write by default, no dependencies. The initial commit was a 200-line Python script I ran exactly twice; the Go rewrite exists because I got annoyed at a pip prompt.