ProgID (zkratka pro *Programmatic Identifier*) je textový řetězec používaný v operačním systému Microsoft Windows k jednoznačné identifikaci COM tříd (Component Object Model) a typů souborů v registru systému. ProgID slouží jako člověkem čitelné jméno, které je snáze použitelné než binární identifikátor CLSID.
Každá COM třída má:
ProgID je uložen v registru Windows pod klíčem:
HKEY_CLASSES_ROOT\<ProgID>
Formát ProgID obvykle následuje tento vzor:
<NázevAplikace>.<NázevObjektu>[.Verze]
Příklady:
Verze je volitelná. Pokud není uvedena, použije se nejnovější registrovaná verze daného ProgID.
V registru Windows je každý ProgID propojen se svým CLSID:
HKEY_CLASSES_ROOT\Excel.Application
(Default) = "Microsoft Excel Application"
CLSID = "{00024500-0000-0000-C000-000000000046}"
Zároveň pod klíčem CLSID najdeme odkaz zpět na ProgID:
HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}
(Default) = "Microsoft Excel Application"
ProgID = "Excel.Application"
Toto dvojité mapování umožňuje systému rychle převádět mezi čitelným jménem a interním identifikátorem.
ProgID je běžně používán v různých technologiích:
var excel = new ActiveXObject("Excel.Application");
$word = New-Object -ComObject "Word.Application" $word.Visible = $true $doc = $word.Documents.Add()
Tento kód vytvoří novou instanci Microsoft Wordu pomocí ProgID `Word.Application`.