Visual Basic 6.0 hjælp

  • jeg har lavet dette lille program:


    [Blocked Image: http://i885.photobucket.com/albums/ac53/puma99dk/test/Capture_zps1964fb97.jpg]



    Office 2013 Dansk knappens skal starte exe filen i mappen "\DA-da\setup.exe" og Office 2013 English skal starte exe filen i mappen "\EN-en\setup.exe" men når jeg skrive stien som før el. med * i el. andet virker det ik får bare denne her fejl:


    [Blocked Image: http://i885.photobucket.com/albums/ac53/puma99dk/test/testrun-timeerror53_zps20098991.jpg]



    men står hele sti'en der alså com "C:\office\DA-da\setup.exe" så starter det fint nok op, men det hjælper jo ik når jeg vil lave en iso som kan brændes ud...


    udover det får jeg denne her fejl fra office setup.exe:


    [Blocked Image: http://i885.photobucket.com/albums/ac53/puma99dk/test/Office2013error_zps1b7e9279.jpg]


    men tror måske det er fordi jeg mangler noget i min Windows 7 ved det ik helt, har haft den til at virke på den gamles bærbar, men får nu bare samme fejl...

  • Hvordan navigerer du frem til filerne i koden?


    i VB kan man pege hen på en fil enten via den fulde sti (fx. @"C:\ditProgram\OfficeDA\isoFil.iso") eller som en relativ sti (@"OfficeDA\isoFil.iso"), så sikkert noget du gør forkert her.


    VB 6.0 er nogle år gammelt godt nok, men læs op på fejlhåndtering i VB. Det er altid god skik at lukke alle kald til og fra filer inde i try... catch (VB.net og C#) eller anvende andre metoder til at fange, spore og håndtere fejlen. VB6 har en del fejlhåndteringsmekanismer netop til den slags (eller de kan nemt laves)


    Hver eneste klasse/metode/stykke kode der tilgår en fil på et sted hvor der finder en abstraktion (forsimpling) af data sted (alle steder på nær bundkort, cpu, ram og visse udvidelseskort) skal man sørge for at fejlen skal kunne spores nøjagtigt.


    et sidste spørgsmål: Kender du at bruge debuggeren? Hvis der går noget som helst galt kan du finde ud af det der igennem

    CPU: Pentium III 500 MHz
    RAM: 256 MB PC133 SD RAM
    Bundkort: HP bundkort
    GPU: Matrox MGA G200

  • hvis jeg bruger


    Code
    1. Private Sub Command1_Click()
    2. Shell "C:\Office 2013 DAN-ENG\DA-da\setup.exe"
    3. End Sub
    4. Private Sub Command2_Click()
    5. Shell "C:\Office 2013 DAN-ENG\EN-en\setup.exe"
    6. End Sub


    virker det fint nok, men hvis jeg ska ha den ud på en iso fil hjælper det ik den vil søge på C: har prøvet med


    Code
    1. Private Sub dansk_Click()
    2. Shell "DA-da\setup.exe"
    3. End Sub
    4. Private Sub english_Click()
    5. Shell "EN-en\setup.exe"
    6. End Sub


    og det virker ik

  • Løsningen er ganske simpel og duer tæt på.


    Code
    1. Private Sub dansk_Click()
    2. Shell "DA-da\setup.exe"
    3. End Sub
    4. Private Sub english_Click()
    5. Shell "EN-en\setup.exe"
    6. End Sub


    det er korrekt at man skal ind igennem VBs shell, men du skal igennem en ShellExecute i stedet og få vb til at finde programmets egen sti (App.Path):


    Code
    1. Private Sub dansk_Click()
    2. ShellExecute hWnd, "open", App.Path & "\DA-da\setup.exe", vbNullString, vbNullString, SW_SHOWNORMAL
    3. End Sub
    4. Private Sub english_Click()
    5. ShellExecute hWnd, "open", App.Path & "\EN-en\setup.exe", vbNullString, vbNullString, SW_SHOWNORMAL
    6. End Sub



    Mere om det her, et voila ;)

    CPU: Pentium III 500 MHz
    RAM: 256 MB PC133 SD RAM
    Bundkort: HP bundkort
    GPU: Matrox MGA G200


  • Foxx, skiftede faktisk til Visual Basic 2010 Express, det virkede mere let at gå til ^^