Frage zu EXE-Datei

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von pastl.

    Frage zu EXE-Datei

    Hallo zusammen,

    habe mir in Visual Basic eine kleine EXE-Datei erstellt um verschiedene Programme auszuwählen. Nach der Auswahl soll sie mir eine CMD-Datei erstellen. Über die CMD-Datei lasse ich die Programme dann installieren.
    Jetzt habe ich folgendes Problem:

    Wenn ich nur ein Programm auswähle, kompiliert er mir eine leere CMD-Datei, und wenn ich mehrer Programme auswähle kompiliert er mir nicht alles. Was mache ich da falsch?

    Hier nun ein Auszu aus meinem Code:

    <pre>Imports System
    Imports System.IO
    Imports Microsoft.Win32

    Public Class Form1
    Inherits System.Windows.Forms.Form

    #Region " Vom Windows Form Designer generierter Code "

    Private Sub NoInst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NoInst.Click
    Close()
    End Sub

    Private Sub StartInst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartInst.Click

    On Error GoTo ErrHandler

    Dim SysDir As String
    Dim CMDFile As String
    Dim InstDrive As String
    Dim InstallPath As String

    SysDir = Environ("SystemDrive") 'Systempartition ermitteln
    CMDFile = SysDir & "\install\xpaisw\xpaisw.cmd" 'Pfad / Name der Installationsdatei

    Dim File As New System.IO.StreamWriter(CMDFile)

    Dim fs, d, dc, s, n
    fs = CreateObject("Scripting.FileSystemObject")
    dc = fs.Drives
    For Each d In dc
    If d.DriveType = 4 Then
    Dim xpaisw As New FileInfo(d.driveletter & ":SETUP\XP\Professional\$OEM$\$1\install\xpaisw\xpaisw.exe")
    If xpaisw.Exists Then
    InstDrive = d.driveletter & ":"
    InstallPath = d.driveletter & ":\install\"
    End If
    End If
    Next
    dc = Nothing
    fs = Nothing

    File.WriteLine("@ECHO OFF")
    File.WriteLine("TITLE XPAISW: Software wird installiert...")

    If CheckTrillian.Checked Then
    File.WriteLine("ECHO Installiere Alcohol 120%... [ca. 00 Min. 40 Sek.]")
    File.WriteLine("start /wait " & InstDrive & "\Software\Alcohol120\setup.exe /qn")
    End If

    'Installationsquellen löschen

    If CheckDelResource.Checked Then
    File.WriteLine("ECHO Lösche Installationsverzeichnisse...")
    File.WriteLine("RD /S /Q %systemdrive%\Install")


    'generierte CMD-Datei ausführen

    Dim retval As Double
    retval = Shell(CMDFile, vbNormalFocus)

    ErrHandler:

    On Error GoTo 0

    Close()
    Application.Exit()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load




    If SWinstalled("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{E4DC62CE-5F95-11D6-B254-00C04FF4B435}") = True Then
    CheckBox25.Checked = False
    CheckBox25.Enabled = False
    End If

    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    CheckBox25.Checked = False

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    CheckBox25.Checked = True


    If SWinstalled("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{E4DC62CE-5F95-11D6-B254-00C04FF4B435}") = True Then
    CheckBox25.Checked = False
    CheckBox25.Enabled = False
    End If

    End Sub

    Function SWinstalled(ByVal RegKey As String) As Boolean
    Dim OpenKey As RegistryKey

    OpenKey = Registry.LocalMachine.OpenSubKey(RegKey, False)

    If (Not OpenKey Is Nothing) Then
    SWinstalled = True
    OpenKey.Close()
    Else
    SWinstalled = False
    End If
    End Function


    End Class</pre>
    Das kommt dabei raus wenn ich mehrere Programme auswähle:

    <pre>@ECHO OFF
    TITLE XPAISW: Software wird installiert...

    ECHO Installiere Norton Internet Securety 2004...[ca. 02 Min. 10 Sek.]
    start /wait \Software\Internet2004\SYMSETUP.EXE /qn REBOOT=REALLYSUPPRESS
    start /wait %systemdrive%\install\Sleep.exe /100
    ECHO Installiere McAfee VirusScan 7 pro... [ca. ?? Min. ?? Sek.]
    start /wait \Software\VSP7\VSP.msi /qn FASTOEM=1
    start /wait %systemdrive%\install\Sleep.exe /60
    ECHO Installiere ISO Buster 1.5... [ca. 00 Min. 20 Sek.]
    star</pre>

    Bin euch dankbar für jede Hilfe.

    Gruß pastl

    Ihr könnt mir auch eine email schreiben:
    pastl1@cable.vol.at

    p.s. hoffe das ist das richtige Forum dafür, da ich wenig Erfahrung in VB habe.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „pastl“ ()