16. august 2000 - 13:00Der er
12 kommentarer og 1 løsning
Første gang installer - anden gang kør fra HD
Jeg skal distribuere et program via CD-rom. Jeg vil gerne gøre således at første gang (eller når programmet ikke er installeret) så køres installationsprogrammet (\\setup\\setup.exe).
Men hvis programmet allerede er på harddisken, så skal det køre derfra.
Hvad er den letteste løsning på det problem? Skal jeg til at skrive i registreringsdb\'en (der skrives intet nu)? Jeg kan ikke bare kigge om nogle filer eksisterer, da brugeren selv vælger hvor de skal installeres....
Hvis ellers installationsprogrammet overholder \"windows Logo\" specifikationerne vedr. installation/Uninstallation, bør du kunne se at dit proram er installeret i listen under Windows funktionen \"Tilføj/Fjern programmer\" i kontrol panelet.
Hvis dit program fremgår af denne liste ER der skrevet noget i registreringsdatabasen, og du kan så se efter dette når programmet (eller setup programmet) køres.
I almindelighed vil jeg anbefale at skrive i registry ved installationen (evt. med version/build informationer) og så lade setup-programmet se efter dette fodaftryk. På den måde kan du endda indbygge i setup at den skal installere programmet hvis det er en nyere version end den der allerede er installeret, hvis der allerede er en installation.
Hvordan du læser/skriver i registry med VB er jeg ikke så godt inde i, men der findes helt afgjort funktioner til det i VB. Man læser/skriver i registry (næsten) på samme måde som man gør med INI-filer, så prøv at checke funktionerne i VB efter INI eller REG(istry). Jeg er desværre mest vant til VB som programmering af macroer under word. I denne skriver man f.eks:
Hmm... Getsetting lader godtnok til også at virke i VB, men jeg kan ikke finde ud af hvad der bliver skrevet til regdb\'en... Nøglenavnet er: HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Opgave.exe
Men hvis jeg laver et tekstvindue og en knap og det her: Private Sub Command1_Click() Dim MinSet As String MinSet = GetSetting(\"opgave.exe\", \"App Paths\", \"(Standard)\") Text1.Text = MinSet End Sub
Så sker der ikke noget når jeg klikker på knappen - hvad er der galt?
Prøv lige engagn at checke i VB hvordan du skal angive hvilken hovednøgle. Der er ikke nok med hhv. App Paths og opgave.exe fordi de kan eksistere et utal af steder i registry. Du skal også angive stien fra root (HKEY) ned til App Path.
I VB macroer kan man kun læse fra HKEY_CURRENT_USER\\Software\\Microsoft\\VBA og nøglen skal altså starte herfra, men det gælder ikke for VB uden for Word macroer.
I øvrige skal du bytte rundt på hhv. de 2 nøgler og jeg tror desuden du skal angive hele stien samtidig:
Nope den virker heller ikke... jeg kan godt både læse og skrive, hvis jeg gør således: SaveSetting \"OBHName\", \"OBHSection\", \"OBHKey\", \"OBHValue\" MinSet = GetSetting(\"OBHName\", \"OBHSection\", \"OBHKey\") Text1.Text = MinSet
ja, men så har det også noget med at gøre at du skal kunne angive startnøglen et eller andet sted.
Prøv engagn at søge i registry efter det du har skrevet. Så kan du se under hvilken hovednøgle det bliver gemt. Jeg ville ikke blive forbavset om det ligger under: HKEY_CURRENT_USER\\Software\\Microsoft\\VBA
Det ligger under (HKEY_USERS\\engberg\\Software\\VB and VBA Program Settings), også selv om jeg kompiler programmet og forsøger: SaveSetting \"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\", \"opgave.exe\", \"MonVirk\", \"JaDa\"
Så laver den bare en masse underbiblioteker under VB and VBA Program Settings, men installations nøglen ligger som sagt et andet sted - hvad faen gør man så????
Det var noget af den samme frustration vi havde med VB macroerne, og vi fandt ikke ud af det den gang.
Det er bl.a en af årsagerne til at jeg bruger Delphi og ikke VB, men det hjælper dig jo desværre ikke.
Men.. det må jo for fa.. stå et eller andet sted i manualerne/hjælpen hvordan man kan arbejde rigtigt med registry. Du kan evt. prøve at søge på nogle af de VB sider der er rundt omkring på nettet og se om du kan finde noget andre har lavet der løser problemet. Det er ofte det jeg gør.
Jeg kan desværre ikke være meget mere behjælpelig med netop denne del.
Jeg prøver lige e-mail adressen igen...! kasper@pox.dk
Synes godt om
Ny brugerNybegynder
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.