Avatar billede per2edb Praktikant
03. marts 2013 - 19:57 Der er 6 kommentarer og
1 løsning

Start af program der ikke er exe

I samme folder som mit access ligger en fil med hjælp til mit access program

Programnavnet er erp_help.chm
Det starter når man klikker på det.
Jeg skal have det startet fra Access. Hvordan gør man det?

Jeg har prøvet Shell men det virker kun på exe filer
Avatar billede milter Ekspert
03. marts 2013 - 21:00 #1
Avatar billede Slettet bruger
03. marts 2013 - 21:05 #2
erp_help.chm er intet program - det er en fil som anvendes af et program. Alle programmer er sidste ende exe filer - der dog også kan startes på forskellige indirekte måder.
Nogle filtyper er associeret med programmer mht. til 'open' - det er derfor man kan få noget ud af at klikke på dem.
En af klikkets programmerbare fætre, 'start', er indbygget i cmd.exe - sådan startes en fils associerede program:

Shell "cmd /c start """" """ & fileName & """"
Avatar billede per2edb Praktikant
03. marts 2013 - 21:54 #3
Jeg forstår ikke:

Shell "cmd /c start """" """ & fileName & """"

Kan du ikke sætte dette ind i dit eksempel:

    "C:\users\per\HELP\erp_help.chm"
Avatar billede Slettet bruger
03. marts 2013 - 22:08 #4
sub testit()
  fileName="C:\users\per\HELP\erp_help.chm"
  Shell "cmd /c start """" """ & fileName & """"
end sub
Avatar billede per2edb Praktikant
03. marts 2013 - 22:19 #5
Hej brugerekspert
1000 tak for hjælpen. Det virker.
Kan Id=200 mon overføres til erp_help.chm?

Vil du lave det så jeg kan give point
Avatar billede Slettet bruger
04. marts 2013 - 12:08 #6
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.php

det ville give ovenstående implementationen:

Function openCHM(fileName, mapid)
    HTMLHelp 0, fileName, HH_HELP_CONTEXT, mapid
End Function
Avatar billede per2edb Praktikant
04. marts 2013 - 21:28 #7
Min dybeste respekt - DET VIRKER

Det Virker:
shell "hh -mapid " & mapid & " """ & fileName & """"

Det virker ikke (men pyt):
HTMLHelp 0, fileName, HH_HELP_CONTEXT, mapid
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester