Skip to content

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, TrialStartUtc

There 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

ValueMeaning
LanguageVI | EN — UI language (fallback for lang.txt)
OpTranslateGoogle | Gemini | ChatGPT — default translation service
TxtAddSpaceExtra padding (pt) added when fitting the height of merged cells
JoinDelimiter / JoinDelimiterCustomSpace | Comma | Semicolon | Newline | Custom, and the custom string
DeleteSkipHiddenTrue/False — skip hidden rows when deleting
InsertCountDefault number of rows to insert
RoundFunction / RoundDecimalsROUND | ROUNDUP | ROUNDDOWN, and the number of digits
LockStyleBoth | Row | Column — the $ reference locking style
FormulaSkipHidden, FormulaErrorCheckingTrue/False
PictureFitCell | Original | Width | Contain
CommentWidthWidth of the picture comment (px)
PictureClickHandlerTrue/False — click a picture in a cell to enlarge it
EnlargeRatioPicture enlargement ratio
AutoClickIntervalInterval between two Auto Click clicks (ms)
CaptureIncludeExcelTrue/False — include the Excel frame in the screenshot
ModeHighlightROW | COLUMN | ALL — row/column highlight style
BackColor, Opacity, Fading, IsFadingColor and opacity of the highlight band
A4, A3, Portrait, Landscape, Top, Bottom, Left, Right, Header, FooterDefault paper size, orientation and margins for printing
FileTreeHyperlinksTrue/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 + Rregedit → Enter.

Changing the AI model by hand

Gemini defaults to gemini-2.5-flash-lite. To switch to another model:

  1. Go to HKCU\Software\DVD\DVDAddin\Model.
  2. Right-click → Modify → ModelGemini = the model name you want.
  3. 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:

powershell
$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

powershell
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

PathContents
%LocalAppData%\DVDAddin\license.datLicense token — JSON with an HMAC-SHA256 signature
%LocalAppData%\DVDAddin\fx_cache.jsonExchange-rate cache for DVDFx, 1-hour TTL per currency pair/date
%APPDATA%\DVDAddin\lang.txtvi or en — UI language
%LocalAppData%\DVDAddin\diary.logLog of the New Diary command
%TEMP%\DVDAddin\Diagnostic logs: case.log (letter-case changes), ghost-cmd.log, ghost-kill.log
%TEMP%\dvdaddin-chat.logLog of DVD Chat
%TEMP%\DVDAddin_Sync_Log.txtLog 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:

  1. Each provider's model box accepts direct typing — enter the new model name.
  2. Press next to it to add it to the list; press to hide a model you do not use.
  3. 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:

ValueUsed forOptions
AIAssistantServiceAI Assistant, the AI commands in the worksheetGemini | OpenAI | Groq | NVIDIA
ChatGPTServiceAI translationOpenAI | Groq | NVIDIA
OcrServiceOCR file / OCR screen / Extract tableGemini | OpenAI | Groq | NVIDIA
TranscribeServiceAudio to textGemini | 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

CommandDefault key
Formula ViewF3
Format PainterF8
Copy/Paste visibleF6
AI Inline AnswerShift + F1
Cycle horizontal alignmentCtrl + J
Cycle vertical alignmentCtrl + M
Yellow fillCtrl + Shift + A
Cycle letter caseCtrl + Shift + C
SMART case (AI)Ctrl + Shift + S
Move/ResizeCtrl + Shift + D
Translate to VietnameseCtrl + Shift + V
Translate to EnglishCtrl + Shift + E
AutoFit mergedCtrl + Shift + M
Merge keep dataCtrl + Shift + Z
ItalicCtrl + Shift + I
Reverse text after delimiterCtrl + Shift + R
NavigationCtrl + Shift + W
Find CmdCtrl + Shift + Q
Copy/Paste skipping hidden rowsAlt + X
Insert and CopyAlt + C
OCR Screen ClipAlt + 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:

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 the Template\ and Library\ subfolders).
  • Copies both .xll files to the machine (DVDAddin-AddIn-packed.xll for 32-bit Excel, DVDAddin-AddIn64-packed.xll for 64-bit Excel), detects Excel's bitness automatically and then registers only the correct one.
  • Registers per user: it scans the OPEN, OPEN1OPEN50 slots in HKCU\Software\Microsoft\Office\<version>\Excel\Options, reuses DVDAddin's existing slot if there is one, otherwise takes the first free slot and writes OPEN[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

powershell
$installer = '\\share\DVDAddin\DVDAddin-Setup-2.8.3.exe'
Start-Process $installer -ArgumentList '/VERYSILENT','/SUPPRESSMSGBOXES','/NORESTART' -Wait

Common 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.

Released under DVDAddin License.