Ah - jeg vil nu lige påpege de rette begreber - man 'overfører' til processer eller programmer og erp_help.chm er lige så lidt et program som f.eks startsiden.html, min_ansøgning.docx eller kartoteket.mdb
Om 'cmd start' eller klik i stifinder:
*Fortæller intet om hvilket program der 'startes'
*Er et fast setup af parametre til programmet der startes, så det er ikke muligt overføre noget ekstra.
På min windows XP, kan man i registry finde:
[HKEY_CLASSES_ROOT\chm.file\shell\open\command]
@="\"C:\\WINDOWS\\hh.exe\" %1"
Med andre ord - det er hh.exe der åbner chm filer på min computer. Lidt undersøgelse på nettet afslører at hh kan tage parameteren mapid.
Dette ville så starte erp_help.chm med mapid 200
openCHM "erp_help.chm",200
givet funktionen (bruger funktion i sub kald måde ovenover)
function openCHM(fileName,mapid)
shell "hh -mapid " & mapid & " """ & fileName & """"
end function
---
Man kan alt vha shell, men - som linket herunder afdækker, kan man lige så godt bruge api kald til noget der i den grad er Microsoft som at åbne chm filer.
http://www.helpsmith.com/how-to-connect-htmlhelp-chm-visual-basic-vba.phpdet ville give ovenstående implementationen:
Function openCHM(fileName, mapid)
HTMLHelp 0, fileName, HH_HELP_CONTEXT, mapid
End Function