Customization Deep Dive
Beyond the Preferences dialog — customizing DVDAddin through the registry, config files and settings that travel with the workbook.
The full registry tree
Every setting lives under a single root:
HKCU\Software\DVD\DVDAddin\
├── Preferences\ ← every setting from the Preferences dialog
├── API Keys\ ← ChatGPTAPI, GeminiAPI, GroqAPI, NvidiaAPI
├── Model\ ← ModelChatGPT, ModelGemini, ModelGroq, ModelNvidia
│ + CustomModels<Provider> / HiddenModels<Provider>
├── Temperature\ ← ParamsChatGPT, ParamsGemini
├── Service\ ← AIAssistantService, ChatGPTService, OcrService, TranscribeService
├── Shortcuts\ ← shortcuts the user has reassigned (see the Shortcuts section)
├── GanttSettings\ ← defaults for the Gantt chart
├── SyncConfig\ ← team work session settings
├── Settings\ ← ThemeMode (0 = Light, 1 = Dark, 2 = Follow system)
├── Chat\ ← Notify\, Gemini\, Drafts\ for DVD Chat
├── TextTools\ ← BulkReplaceRecipes\ — saved bulk Find & Replace recipes
└── Licensing\ ← LicenseBlob, LastLicensedAtUtc, MaxSeenUtc, TrialStartUtcThere are also three legacy values — ParamsGemini, Key Type and Expiration Date — kept for backward compatibility, plus a __MigratedFromLegacy_v1 value directly under the root that marks the migration step as completed.
Migration from older builds
The old VBA version wrote to HKCU\Software\VB and VBA Program Settings\DVDAddin\, and the first C# version wrote to HKCU\Software\DVDAddin\. The first time Excel starts after an upgrade, the add-in copies the values from those two old roots to the new one and then marks the migration as done. The old keys are left in place (not deleted), so downgrading to a previous version still finds the settings.
Some frequently used values under Preferences
| Value | Meaning |
|---|---|
Language | VI | EN — UI language (fallback for lang.txt) |
OpTranslate | Google | Gemini | ChatGPT — default translation service |
TxtAddSpace | Extra padding (pt) added when fitting the height of merged cells |
JoinDelimiter / JoinDelimiterCustom | Space | Comma | Semicolon | Newline | Custom, and the custom string |
DeleteSkipHidden | True/False — skip hidden rows when deleting |
InsertCount | Default number of rows to insert |
RoundFunction / RoundDecimals | ROUND | ROUNDUP | ROUNDDOWN, and the number of digits |
LockStyle | Both | Row | Column — the $ reference locking style |
FormulaSkipHidden, FormulaErrorChecking | True/False |
PictureFit | Cell | Original | Width | Contain |
CommentWidth | Width of the picture comment (px) |
PictureClickHandler | True/False — click a picture in a cell to enlarge it |
EnlargeRatio | Picture enlargement ratio |
AutoClickInterval | Interval between two Auto Click clicks (ms) |
CaptureIncludeExcel | True/False — include the Excel frame in the screenshot |
ModeHighlight | ROW | COLUMN | ALL — row/column highlight style |
BackColor, Opacity, Fading, IsFading | Color and opacity of the highlight band |
A4, A3, Portrait, Landscape, Top, Bottom, Left, Right, Header, Footer | Default paper size, orientation and margins for printing |
FileTreeHyperlinks | True/False — create hyperlinks in the folder tree |
Almost all of them can be set from the UI — the registry is only needed when you want to deploy in bulk or make a quick change without opening Excel.
Customizing through the registry editor
Opening regedit
Win + R → regedit → Enter.
Changing the AI model by hand
Gemini defaults to gemini-2.5-flash-lite. To switch to another model:
- Go to
HKCU\Software\DVD\DVDAddin\Model. - Right-click → Modify →
ModelGemini= the model name you want. - Restart Excel.
Defaults for the remaining providers: ModelChatGPT = gpt-4o-mini, ModelGroq = openai/gpt-oss-120b, ModelNvidia = meta/llama-3.3-70b-instruct.
Set API key via command line
A setup script for the whole team:
$key = 'Software\DVD\DVDAddin\API Keys'
New-Item -Path "HKCU:$key" -Force | Out-Null
Set-ItemProperty -Path "HKCU:$key" -Name 'GeminiAPI' -Value 'AIzaSy...your-key...'
Set-ItemProperty -Path "HKCU:$key" -Name 'ChatGPTAPI' -Value 'sk-...your-key...'
Set-ItemProperty -Path "HKCU:$key" -Name 'GroqAPI' -Value 'gsk_...your-key...'
Set-ItemProperty -Path "HKCU:$key" -Name 'NvidiaAPI' -Value 'nvapi-...your-key...'→ Roll out to 10 machines without typing on each one. The keys live under HKCU, so the script must run under each user's own account.
Resetting all Preferences
Remove-Item -Path 'HKCU:Software\DVD\DVDAddin\Preferences' -Recurse -Force→ The add-in returns to the default value for every setting. API keys and the license are left untouched.
The gentler way: open Preferences and press the reset button inside the dialog — it restores the defaults for both the settings and the model lists, and does not touch any other registry key.
Config files
| Path | Contents |
|---|---|
%LocalAppData%\DVDAddin\license.dat | License token — JSON with an HMAC-SHA256 signature |
%LocalAppData%\DVDAddin\fx_cache.json | Exchange-rate cache for DVDFx, 1-hour TTL per currency pair/date |
%APPDATA%\DVDAddin\lang.txt | vi or en — UI language |
%LocalAppData%\DVDAddin\diary.log | Log of the New Diary command |
%TEMP%\DVDAddin\ | Diagnostic logs: case.log (letter-case changes), ghost-cmd.log, ghost-kill.log |
%TEMP%\dvdaddin-chat.log | Log of DVD Chat |
%TEMP%\DVDAddin_Sync_Log.txt | Log of the team work session |
license.dat
Format: {json}|{hmac-hex}.
Do NOT edit it by hand (the signature will no longer match). Backing the file up is perfectly fine — see Best Practices → Backup license.
lang.txt
This is the primary source for the UI language; only when the file does not exist does the add-in fall back to Preferences\Language in the registry. The contents are exactly one word: vi or en. You can edit it by hand, but the usual way is to click Lang: EN on the ribbon.
fx_cache.json
Delete this file while Excel is closed if you want to force DVDFx to fetch fresh rates immediately instead of waiting out the 1 hour.
Settings that travel with the workbook
DVDAddin has no environment variable for configuring features (see the last section of this page). To make up for it, three settings are stored inside the Excel file itself, so they travel with the file when you send it to someone else:
Gantt chart configuration
Setup writes the Gantt settings to two places at once:
- The registry key
HKCU\Software\DVD\DVDAddin\GanttSettings— the machine-wide default. - A CustomXMLPart inside the workbook itself — the project-specific configuration.
When redrawing, the copy in the workbook wins over the copy in the registry. That way each project keeps its own display style (date format, week numbering, weekend shading, dependency arrows, color by Level…) without having to readjust the machine settings every time you switch files.
Batch print configuration
Batch print saves all of its settings to the hidden DVDAddinSetting sheet in the workbook. Send the file to someone else and they get the configuration with it — no need to re-declare the driver cell, sheet-print cell or filename cell.
Quick Input data source rules
Configure source ranges… also writes the Target range → Source range rules to a CustomXMLPart inside the workbook, not to the registry. The lookup tables and suggestion rules travel with the file: the recipient opens it and can start typing right away.
(Builds before 05/2026 used to store this rule set under Preferences\QuickInputRules; that value is now junk and the add-in deletes it automatically on the first read.)
Custom AI models
The add-in works with 4 providers: OpenAI (ChatGPT), Gemini, Groq, NVIDIA.
Adding a model that is not in the list
Right inside Preferences → the AI Assistant section:
- Each provider's model box accepts direct typing — enter the new model name.
- Press + next to it to add it to the list; press − to hide a model you do not use.
- Changes take effect immediately, independently of the Save button.
This list is stored under HKCU\Software\DVD\DVDAddin\Model, in the two values CustomModels<Provider> (models you added) and HiddenModels<Provider> (default models you hid), one model per line. <Provider> is one of ChatGPT, Gemini, Groq, Nvidia.
Choosing a separate provider for each feature group
Not every AI command uses the same provider. Four values under Service control four groups:
| Value | Used for | Options |
|---|---|---|
AIAssistantService | AI Assistant, the AI commands in the worksheet | Gemini | OpenAI | Groq | NVIDIA |
ChatGPTService | AI translation | OpenAI | Groq | NVIDIA |
OcrService | OCR file / OCR screen / Extract table | Gemini | OpenAI | Groq | NVIDIA |
TranscribeService | Audio to text | Gemini | OpenAI | Groq |
→ You can leave the AI Assistant on Gemini (cheap) while OCR runs on OpenAI (better at reading tables).
Limitation
There is no separate base URL field, so only models from the four providers above can be used — you cannot point at a self-hosted endpoint or a locally running Ollama.
Custom Translate prompt
When translating with Gemini or ChatGPT, the add-in does not send a generic instruction; it sends a prompt written specifically for the construction industry: act as a structural / M&E / QS specialist, with a list of mandatory terms (thép chờ → starter bar, not dowel; bê tông lót → lean concrete; mạch ngừng → construction joint; cọc ép → jacked-in pile; bản vẽ thi công → shop drawing; biện pháp thi công → method statement; tiên lượng → BOQ…).
This is why translations of construction records are far closer to the intended meaning than ordinary machine translation.
This prompt cannot be customized from the UI. If you are translating documents outside construction (medical, IT, legal) and find the engine pushing words toward site terminology, choose the Google service in Translate — that route is pure machine translation and does not go through the domain prompt.
Shortcuts
Unlike most Excel add-ins, DVDAddin lets you change the shortcuts right in the UI: Preferences → the Shortcuts section. The table lists each command and the key currently assigned; click the key cell and type the new combination. Clearing the cell removes that command's shortcut entirely.
The 21 default shortcuts
| Command | Default key |
|---|---|
| Formula View | F3 |
| Format Painter | F8 |
| Copy/Paste visible | F6 |
| AI Inline Answer | Shift + F1 |
| Cycle horizontal alignment | Ctrl + J |
| Cycle vertical alignment | Ctrl + M |
| Yellow fill | Ctrl + Shift + A |
| Cycle letter case | Ctrl + Shift + C |
| SMART case (AI) | Ctrl + Shift + S |
| Move/Resize | Ctrl + Shift + D |
| Translate to Vietnamese | Ctrl + Shift + V |
| Translate to English | Ctrl + Shift + E |
| AutoFit merged | Ctrl + Shift + M |
| Merge keep data | Ctrl + Shift + Z |
| Italic | Ctrl + Shift + I |
| Reverse text after delimiter | Ctrl + Shift + R |
| Navigation | Ctrl + Shift + W |
| Find Cmd | Ctrl + Shift + Q |
| Copy/Paste skipping hidden rows | Alt + X |
| Insert and Copy | Alt + C |
| OCR Screen Clip | Alt + S |
Rows without a link are commands that run from the keyboard only; they have no button of their own on the ribbon.
Adding a shortcut for another command
Right below the table there is a command picker for adding a new row. The add-in reserves 10 slots for user-assigned commands, so you can bring up to 10 more ribbon commands into your own shortcuts.
Where it is stored
HKCU\Software\DVD\DVDAddin\Shortcuts — the value name is the command ID and the data is the key combination in Excel's OnKey syntax (^ = Ctrl, + = Shift, % = Alt, function keys in braces: {F3}).
Conventions:
- No value = the default key is in use.
- The value
None= the user has removed that command's shortcut. - Any other value = a key set by the user.
→ Delete the whole Shortcuts key and every shortcut returns to its default.
What is NOT there (do not go looking)
A few things people often ask about that the add-in simply does not have, so there is nothing to switch off either:
- No telemetry. The add-in does not send anonymous usage statistics, and there is no opt-in/opt-out switch.
- No automatic update check at startup. The check runs only when you press Check Update — so Excel makes no extra network calls when it opens.
- No environment variable for turning features on or off. The add-in reads exactly one environment variable,
DVDADDIN_ALLOW_DEBUG, and it is only used to disable the anti-debugging mechanism when a developer runs a debug build — it does not change any user-facing behavior.
What does exist and cannot be turned off: the background license check runs on a 30-minute cycle; after roughly 20 hours without reaching the server, the add-in switches to a restricted offline mode. This is the anti-piracy mechanism and there is no option to disable it.
Conversely, the switches that really do exist for turning off features you do not use are all on the ribbon:
- Auto Calc and Auto Draw — recalculating/redrawing the schedule when a cell changes.
- Auto-suggest on cell select — the quick-input suggestion popup.
- Reading Layout — the highlight band following the selected cell.
- View Image — click a picture in a cell to enlarge it.
Deploying to many machines
The installer is a single DVDAddin-Setup-<version>.exe built with Inno Setup — there is no .msi package, so the Group Policy "Software installation" method cannot be used (that method only accepts MSI). The three remaining approaches all work well.
What the installer does
- Requires admin rights.
- Installs into
C:\DVDAddin(with theTemplate\andLibrary\subfolders). - Copies both
.xllfiles to the machine (DVDAddin-AddIn-packed.xllfor 32-bit Excel,DVDAddin-AddIn64-packed.xllfor 64-bit Excel), detects Excel's bitness automatically and then registers only the correct one. - Registers per user: it scans the
OPEN,OPEN1…OPEN50slots inHKCU\Software\Microsoft\Office\<version>\Excel\Options, reuses DVDAddin's existing slot if there is one, otherwise takes the first free slot and writesOPEN[N] = /R "C:\DVDAddin\DVDAddin-AddIn64-packed.xll". If all 51 slots are full, the installer reports an error and asks you to remove some other add-ins. - Tries to close Excel gracefully before overwriting the
.xll(Excel holds a lock on the file).
Because the registration lives in HKCU, if IT installs under an admin account and then hands the machine over to someone else, the DVD Addin tab will not appear for that account — the user has to run the installer again under their own account, or you write the OPEN[N] key with a logon script.
Option A — Logon / startup script
$installer = '\\share\DVDAddin\DVDAddin-Setup-2.8.3.exe'
Start-Process $installer -ArgumentList '/VERYSILENT','/SUPPRESSMSGBOXES','/NORESTART' -WaitCommon Inno Setup parameters: /VERYSILENT (shows nothing), /SILENT (shows only the progress bar), /SUPPRESSMSGBOXES, /NORESTART, /DIR="C:\DVDAddin", /LOG="C:\Temp\dvdaddin-install.log".
Option B — SCCM / Intune
Package the .exe as a Win32 application:
- Install:
DVDAddin-Setup-2.8.3.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART - Uninstall:
"C:\DVDAddin\unins000.exe" /VERYSILENT - Detection rule: the existence of
C:\DVDAddin\DVDAddin-AddIn64-packed.xll.
Option C — Manual install + configuration script
Install each machine, then push the API keys and the shared settings with a PowerShell script that writes to HKCU (see Set API key via command line) and runs when the user logs on.
⚠️ Before uninstalling
The uninstaller wipes the C:\DVDAddin folder clean, including files you put there yourself. If you have edited the forms in C:\DVDAddin\Template\ to suit your own organization, back that folder up somewhere else first.
The registry settings and the license are not removed with it, so after reinstalling you can carry on straight away.
Multi-user shared license
The Buy License dialog lets you choose a term (1 / 2 / 3 years, or Other — contact us) and a number of machines (1–10 machines, or More than 10 machines — contact us). Once the order is paid, it generates one license per machine purchased, all attached to the account entered in step 2.
One account = one active session
The licensing server keeps only one login session per license at any one time, and on login it always picks the account's newest license. The practical consequence: logging in with the same account on a second machine will push the session on the first machine out (the add-in reports the session as revoked at the next check), even if you bought several machines.
If you buy a multi-machine package for a whole team, contact the vendor so that each person is issued their own login account — do not hand out one shared email/password and expect several people to work in parallel.
The machine identifier is hashed from three things — the Windows installation's MachineGuid, the machine name and the operating system version — so:
- Reinstalling the add-in on the same machine → the license stays.
- Reinstalling Windows from scratch / changing machines → the identifier changes and you have to log in again.
Related
- Preferences — the configuration UI most users need.
- Best Practices — general tips.
- Backup & Restore — backing up the registry tree and the license.
- Performance Tuning — the switches that affect speed.