Inventory shortcuts and edit supported font identities
Read stored LNK declarations and edit explicit static TTF names while keeping raw provenance, glyph bytes and unresolved system behavior visible.
Match the deliverable to the original task
A shortcut owner needed a file pairing each shortcut name with its target and later confirmed a CSV solution. That workflow used Windows COM and the live Start Menu. T323 accepts selected existing LNK originals and inventories stored components. A declared path can be useful evidence even when the browser cannot resolve the current target.
Two font authors asked to separate internal identities, explicitly distinguishing names inside a font from its filename. T324 changes supported existing name records in one unsigned static TrueType font per run. Four same-family fonts require four explicit identity sets and separate runs; installation or application grouping remains a separate assessment.
| Tool | Complete deliverable | External behavior not proved |
|---|---|---|
| T323 | Original LNKs plus declaration JSON/CSV in one ZIP | Current Shell target, existence or installed application |
| T324 | Edited TTF plus all old/new names and table JSON/CSV | Installation, cache refresh, recognition or coexistence |
Choose an ANSI policy before reading shortcut strings
Leave ANSI at unconfirmed when the original system codepage is unknown. Such values remain null, with source path, offset, byte length and SHA256 referring to an exported original. Unicode fields still decode strictly. A literal UTF-16 BOM remains a character, not a stripped header.
Explicit WHATWG windows-1252 decodes every byte with the official mapping, including its control mappings. It is not a guess based on the current computer, ConsoleFE or a file’s creator. GBK, Shift-JIS and other ANSI choices are refused. Local and network LinkInfo may coexist; do not collapse one into an invented canonical target.
- Inspect the five StringData fields and all flags, including raw versus effective show command.
- Environment, MSI, icon, tracker and folder values stay stored declarations. IDList, Console, PropertyStore and unknown payloads remain explicitly opaque where interpretation is unsupported.
- Never activate the exported LNKs as part of this inventory. The tool does not execute a shortcut, command or URL.
Use the shortcut originals and complete report
The 524-byte controlled example has one source row with local and network declarations and literal arguments. Its original name begins with a formula character and includes SVG-like text. Names and values are inert data. The JSON preserves original values; CSV alone adds a leading apostrophe for a formula-leading cell.
shortcut-inventory.zip contains controlled sources/NNNN.lnk, shortcut-inventory.json and shortcut-map.csv. Every raw-reference offset resolves into its exact original bytes. All source rows are available in the table, with 2,000 UTF-16 units per preview cell; use the complete ZIP for long strings and every ExtraData span. resolvedTarget stays null and no existence check is performed.
Enter all four font identities explicitly
The controlled normal TTF is 960 bytes with ten tables, sixteen name records and two glyphs. Family=New, fullName=aNew, postScript=Review and uniqueId=Different change ten supported existing records. The output is 848 bytes because the name storage is rebuilt; all non-name table bytes remain identical except head.checkSumAdjustment. Container offsets and padding can change.
Each identity is 1–63 printable ASCII characters. PostScript additionally excludes whitespace and [](){}<>/%. Existing IDs 1/3/4/6/16/18/21 are edited; style IDs 2/17/22, copyright, license and other names remain. Names are not synthesized and style metadata is not inferred.
Selected Unicode platform 0 encodings 0–4 and Windows 3 encodings 0/1/10 use strict UTF-16BE. Mac 1 encoding 0 receives exact ASCII, while its prior MacRoman value remains null plus raw hex. Unknown unselected codecs stay opaque; unknown selected codecs and malformed known Unicode refuse the whole font.
Retain language and table evidence without loading fonts
Name formats 0 and 1 support sorted unique records, exact and substring original string sharing, and all bounded format-1 LangTags. RFC 5646 syntax is checked, including private-use and grandfathered forms, without promising registration or canonicalization. JSON retains every language offset and raw byte string.
edited.ttf is produced without loading, rendering or installing the supplied font. Every source table checksum and complete 0xB1B0AFBA checksum is checked. name is rebuilt and head.checkSumAdjustment repairs the global checksum. Glyf, loca, cmap, metrics and all other table bytes are retained; their complete semantics are not certified.
Signed DSIG, variable tables, CFF/CFF2, TTC and WOFF containers refuse atomically. FontTools 4.66.1 reads every edited name and all tested glyph outlines, but emits format-1 storageOffset warnings and does not expose LangTag records. Independent struct checks cover every preserved language byte and offset; this gap is not hidden as universal compatibility.
Apply simultaneous budgets and recover the same originals
T323 allows 1,000 files, each 1 MiB and combined 32 MiB, 10,000 ExtraData blocks and 10,000 IDList items per file, and 100,000 total structure visits. Its complete JSON plus safe CSV is limited to 40 MiB. The 74 MiB ZIP allocation guard is dominated by those budgets.
T324 allows one 20 MiB file, 256 tables, 4,096 name records and 1,024 LangTags. Every stored name/language string is at most 8,192 bytes; source and rebuilt distinct pools are at most 65,535 bytes. Complete JSON plus safe CSV is limited to 16 MiB. A strict incremental report lower bound can refuse early; its error reports minimumBytes rather than an invented complete byte count.
Both tools limit original filenames to 512 UTF-16 units and refuse the whole result on a malformed file or budget excess. Cancellation discards partial outputs; same-source recovery uses a new Worker. Native evidence covers genuine positive incomplete cancellation on 1,000 shortcuts and 4,096 name records; browser interaction acceptance is tracked separately.
| Guard | Reason |
|---|---|
| LNK ZIP 74 MiB | 32 MiB originals + 40 MiB reports + bounded headers dominate |
| Edited TTF 21 MiB | 20 MiB source + 65,535 rebuilt string bytes and alignment dominate |
| TTF combined outputs 37 MiB | 21 MiB font guard + 16 MiB reports dominate |
References
- Original shortcut-name/target export task
Original question and rob.irvin’s own CSV-success follow-up read and preserved on 2026-10-07. Their COM Start Menu workflow resolves targets; this browser task instead exports selected stored declarations and preserves that gap.
- Original author’s empty target despite visible shortcut data
Full Mythio question and author identity read on 2026-10-07. No current Shell/installer/StoreApp resolution or target classification is promised.
- Original need to separate four same-family fonts
Full Axonn body read on 2026-10-07: changing filenames did not change internal identities; no original fonts were supplied, so unsupported OTF/CFF variants remain outside scope.
- Original internal Tahoma7 identity request
Full RubyWedge body read on 2026-10-07. Potential signed original and installation/cache/coexistence behavior remain unsupported gaps.
- Microsoft Shell Link stored LinkInfo structure
Relevant fields and relative offsets read on 2026-10-07; specification supports byte interpretation, not demand evidence or current target resolution.
- Explicit WHATWG windows-1252 mapping
All 128 high-byte entries read and independently verified on 2026-10-07, including control mappings; host Windows locale is never inferred.
- OpenType name records and language tags
Formats 0/1, name IDs and platform records read on 2026-10-07. Limited existing-record edits do not prove application recognition.
- SFNT directory and checksum rules
Relevant directory/alignment/checksum sections read on 2026-10-07. Other table semantics remain raw passthrough rather than universal validation.
- Language-tag syntax
Syntax, private use and grandfathered forms read on 2026-10-07. No IANA registration or canonicalization guarantee.
Tools in this category
Expand a tool to see its steps, options and supported formats, then open its workspace.
Inventory Windows shortcut declarationsRead stored paths, arguments and opaque components from local LNK originals and export a complete inventory without activating shortcuts.
Select existing LNK files. Inspect all stored local and network declarations, strings, flags and ExtraData, while keeping unresolved targets explicit. Download one ZIP with exact originals and complete JSON/CSV.
Steps
- Select the original LNK files; preserve a separate copy.
- Leave ANSI unconfirmed unless WHATWG windows-1252 is the intended decoding.
- Run and inspect source names, simultaneous path declarations, arguments and unresolved fields.
- Download the ZIP and inspect complete JSON/CSV and exact originals.
Available options
- Explicit ANSI interpretation
- Unconfirmed: retain raw bytes · WHATWG windows-1252
Capabilities and limits
- Up to 1,000 originals, each 1 MiB and combined 32 MiB. Each filename is at most 512 UTF-16 units. One malformed file refuses the whole batch.
- Strict 76-byte Shell Link header; all flags, unsigned decimal FILETIME values, signed icon index and raw/effective show command are retained. Local and network LinkInfo declarations can coexist. Unicode volume, share, device, path and suffix values remain separate stored fields.
- All five StringData fields are read. Ordinary fields permit up to 260 units; command arguments use the uint16 wire limit of 65,535 units. Strict UTF-16 preserves literal BOM characters; malformed strings and embedded NUL are refused.
- ANSI defaults to unconfirmed: values remain null with exact raw references. Only an explicit WHATWG windows-1252 choice enables ANSI decoding. Host locale, ConsoleFE and installed Windows codepages are never guessed; other codecs are outside this release.
- All 11 known ExtraData signatures are framed and required sizes/offsets checked. IDList items, Console, PropertyStore and unknown payloads remain explicitly opaque where interpretation is unsupported. Environment and installer strings are literal, without expansion or resolution.
- At most 10,000 ExtraData blocks and 10,000 IDList items per file, and 100,000 structure visits across the batch. Complete compact JSON plus formula-protected CSV must fit 40 MiB. The 74 MiB ZIP cap is a dominated allocation guard, not a separately reachable supported ceiling.
- The ZIP contains controlled sources/NNNN.lnk originals, shortcut-inventory.json and shortcut-map.csv. JSON keeps original names and values; CSV alone prefixes formula-leading cells. The table keeps all source rows, with cells shortened to 2,000 UTF-16 units; complete fields and every raw span remain in downloads.
- No COM, Shell activation, commands, URL navigation, filesystem/network lookup, environment expansion, installed-application resolution or target existence check. resolvedTarget is always null. This is stored-declaration inventory, not a scan of your live Start Menu or anonymization.
Edit TrueType font namesRewrite explicit internal identities in a supported static TTF while preserving glyph and other table bytes and rebuilding checksums.
Select one static, unsigned glyf/loca TrueType font and enter four explicit internal identities. Edit every supported existing name record, preserving style names, glyphs and other tables. Download edited.ttf and a complete change report.
Steps
- Keep the original and confirm that it is a supported unsigned static TTF.
- Enter all four internal names explicitly; changing the filename is a separate operation.
- Run and inspect every edited-record count and unchanged-table evidence.
- Download edited.ttf plus complete JSON/CSV; assess installation and application behavior separately.
Available options
- Family
- New
- Full name
- aNew
- PostScript name
- Review
- Unique ID
- Different
Capabilities and limits
- One sfnt 0x00010000 TrueType original, at most 20 MiB, with head/name/glyf/loca/maxp/cmap/hhea/hmtx. At most 256 sorted unique aligned tables. Every table checksum and the complete 0xB1B0AFBA checksum are checked; directory bounds, head/maxp and loca ranges are validated.
- Name formats 0 and 1 only, with at most 4,096 sorted unique records and 1,024 LangTags. Every stored name or language string is at most 8,192 bytes; original and rebuilt distinct string pools are each at most 65,535 bytes. Exact and substring source string sharing is supported.
- Existing IDs 1/3/4/6/16/18/21 are edited. Existing style IDs 2/17/22, copyright, license and all other names remain unchanged. Family, full name, PostScript name and unique ID are four explicit 1–63 printable ASCII strings; PostScript excludes whitespace and [](){}<>/%. No names or style metadata are inferred.
- Selected Unicode platform 0 encodings 0–4 and Windows platform 3 encodings 0/1/10 use strict UTF-16BE. Mac platform 1 encoding 0 writes exact ASCII; the old MacRoman value remains null with raw hex. Unknown unselected codecs remain opaque; an unknown selected codec refuses the whole font. Malformed known Unicode also refuses unselected records.
- Every format-1 LangTag is preserved, with RFC 5646 syntax checks including private use and grandfathered forms. No IANA registration or canonicalization is promised. Version-0 custom platforms 240–255 may retain high language IDs.
- Only name is rebuilt; head.checkSumAdjustment changes to repair the global checksum. Every other table is byte-identical. Container offsets, gaps and padding may change. Complete JSON keeps all old/new name bytes, language records and table offsets/SHA256; complete CSV protects formula-leading cells.
- Filename at most 512 UTF-16 units; complete JSON plus safe CSV at most 16 MiB. An incremental report lower-bound guard can refuse before allocating an oversized full report. Edited-font 21 MiB and combined 37 MiB allocation guards are dominated by source/string/report limits; no independent exact ceiling is promised.
- DSIG, variable tables including fvar/avar/STAT/gvar/cvar/HVAR/VVAR/MVAR, CFF/CFF2, TTC, WOFF and WOFF2 are refused. No font loading, installation, glyph bytecode execution, rendering, style inference or full OpenType semantic validation. OS caches and applications may still group or reject edited fonts; compatibility and coexistence are not guaranteed. Table cells are previews of at most 2,000 UTF-16 units.