Just nu i M3-nätverket
Gå till innehåll

Inkludera MSCOMCTL.OCX osv..


Jonas N. H-vall

Rekommendera Poster

Jonas N. H-vall

Kan någon hjälpa mig med hur jag infogat VB6 runtimebiblioteket på ett program gjort i VB6? Programmet är avsett att ligga på en cd-skivas runtime, alltså inget som ska installeras.

 

B.la. filerna MSCOMCTL.OCX och MSVBVM60.DLL behövs för att köra vissa grejer på en CD-Skiva. Det är alldeles för många datorer som inte har dessa filer installerade sedan tidigare.. :-/

 

Mvh

/Jonas

 

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...
Jonas N. H-vall

Jag besvarar mig själv på denna fråga! Den har också varit ute tidigare, men även då obesvad! Det verkar ovanligt att man vill köra applikationer som inte skall installeras.

 

Lösningen går ut på att lura fram ett felmeddelande om filerna inte finns installerade på någon av Windows tre vanligaste installationsmappar. Finns inte filen kopieras de, annars hoppas if-satsen (och kopieringen) över. Finns inte mappen över huvudtaget utförs if-satsen men ignorerat felmeddelande, eftersom FileCopy inte skapar mappar. Variabeln strDrive innehåller enhetsbeteckningen som Windows finns installerat på.

 

Jag tycker dock metoden bör tolkas som ett oönskat ingrepp på användarens lagringsplats, och att flexibiliteten ligger under nivån för godkänt, men just nu är det min enda befintliga lösning. De nödvändiga filerna bränns med på skivan, därifrån de hämtas vid kopiering.

Kanske det går att få programmet att leta filerna på skivan?

 

    
[color="#0000ff"]Dim[/color] strFileInfo As [color="#0000ff"]String[/color]
    [color="#0000ff"]On Error Resume[/color] [color="#0000ff"]Next[/color]

    [color="#006400"]'msvbvm60.dll kopieras[/color]
    [color="#0000ff"]If[/color] (strFileInfo = FileDateTime(strDrive & [GRÅ]"\Windows\System32\msvbvm60.dll"[/GRÅ])) = [GRÅ]""[/GRÅ] Or (Err.Number = 76) [color="#0000ff"]Then[/color]
        FileCopy App.Path & [GRÅ]"\msvbvm60.dll"[/GRÅ], strDrive & [GRÅ]"\Windows\System32\msvbvm60.dll"[/GRÅ]
        Resume
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

    [color="#0000ff"]If[/color] (strFileInfo = FileDateTime(strDrive & [GRÅ]"\Windows\System\msvbvm60.dll"[/GRÅ])) = [GRÅ]""[/GRÅ] Or (Err.Number = 76) [color="#0000ff"]Then[/color]
        FileCopy App.Path & [GRÅ]"\msvbvm60.dll"[/GRÅ], strDrive & [GRÅ]"\Windows\System\msvbvm60.dll"[/GRÅ]
        Resume
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

    [color="#0000ff"]If[/color] (strFileInfo = FileDateTime(strDrive & [GRÅ]"\Winnt\System32\msvbvm60.dll"[/GRÅ])) = [GRÅ]""[/GRÅ] Or (Err.Number = 76) [color="#0000ff"]Then[/color]
        FileCopy App.Path & [GRÅ]"\msvbvm60.dll"[/GRÅ], strDrive & [GRÅ]"\Winnt\System32\msvbvm60.dll"[/GRÅ]
        Resume
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

    [color="#006400"]'mscomctl.ocx kopieras[/color]
    [color="#0000ff"]If[/color] (strFileInfo = FileDateTime(strDrive & [GRÅ]"\Windows\System32\mscomctl.ocx"[/GRÅ])) = [GRÅ]""[/GRÅ] Or (Err.Number = 76) [color="#0000ff"]Then[/color]
        FileCopy App.Path & [GRÅ]"\mscomctl.ocx"[/GRÅ], strDrive & [GRÅ]"\Windows\System32\mscomctl.ocx"[/GRÅ]
        Resume
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

    [color="#0000ff"]If[/color] (strFileInfo = FileDateTime(strDrive & [GRÅ]"\Windows\System\mscomctl.ocx"[/GRÅ])) = [GRÅ]""[/GRÅ] Or (Err.Number = 76) [color="#0000ff"]Then[/color]
        FileCopy App.Path & [GRÅ]"\mscomctl.ocx"[/GRÅ], strDrive & [GRÅ]"\Windows\System\mscomctl.ocx"[/GRÅ]
        Resume
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

    [color="#0000ff"]If[/color] (strFileInfo = FileDateTime(strDrive & [GRÅ]"\Winnt\System32\mscomctl.ocx"[/GRÅ])) = [GRÅ]""[/GRÅ] Or (Err.Number = 76) [color="#0000ff"]Then[/color]
        FileCopy App.Path & [GRÅ]"\mscomctl.ocx"[/GRÅ], strDrive & [GRÅ]"\Winnt\System32\mscomctl.ocx"[/GRÅ]
        Resume
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...