Jonas N. H-vall Posted November 3, 2004 Share Posted November 3, 2004 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 Link to comment Share on other sites More sharing options...
Jonas N. H-vall Posted November 13, 2004 Author Share Posted November 13, 2004 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] Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.