Zum Inhalt springen

Explorer Absturtz bei Rechtsklick, wegen Programm?


Rien

Empfohlene Beiträge

Hallo Leute,

seit dem ich mit Visual Studio 2010 arbeite und mein Programm regelmäßig compile und benutze, macht meine Explore.exe mächtig Probleme bei der Kontextmenüauswahl durch den Rechtsklick.

Er stürzt wirklich jedesmal ab. Auch wenn ich die "Rechtsklicktaste" auf der Tastatur benutze. Hängt das eventuell mit meinem Code zusammen?

Vielleicht könnt ihr ja mal drüber schauen und mir sagen ob der da Probleme macht. Danke


Imports System.IO


Public Class mainWindow


    'definiert updVerz als String und weißt den Dateipfad der neuest Datei zu

    Public Const updVerz As String = "C:\Users\rensch\Documents\Datenaustausch\PsSchrOmp\PsSchrOmp.exe"

    'deklariert args = aktueller Standort als String

    Public args As String()

    Public ofileInfo As String

    Public nfileInfo As String

    Dim upd As Boolean


    Public Sub mainWindow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Mausposition ermitteln

        Dim positionPoint As Point = Cursor.Position

        'Fenster an Mausposition setzen

        Me.Location = positionPoint

        'Inhalt der Zwischenablage löschen

        Clipboard.Clear()

        'Liest den aktuellen Standpunkt des Verzeichnisses ein

        args = Environment.GetCommandLineArgs()

        'Gibt aktuellen Standpunkt in Textbox aus

        aktPfad.Text = "" + args(1) + ""

        'Liest die aktuelle Dateiversion des lokalen Programms ein

        Dim ofileInfo As FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(args(0))

        'Gibt die aktuelle Dateiversion in Textbox aus

        aktVer.Text = "" + ofileInfo.FileVersion + ""

        'Liest die Dateiversion des neuen Programms ein

        Dim nfileInfo As FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(updVerz)


    End Sub


    'Prüfung ob args ein Verzeichnis ist

    'gibt true oder false zurück

    Public Function isFolder(ByVal args As String) As Boolean

        Dim dI As System.IO.DirectoryInfo

        dI = New DirectoryInfo(args)

        'Prüft ob eine Dateiendung vorhanden ist

        If Not dI.Extension.Length = 0 Then

            isFolder = False

        Else

            isFolder = True

        End If

    End Function



    Public Sub cmdSetzen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSetzen.Click

        'Prüft ob Verzechnis true oder false ist

        If isFolder(args(1)) = True Then

            Dim Setzen As New System.Diagnostics.Process

            'attrib Befehl

            Setzen.StartInfo.FileName = "attrib"

            'Parameter für den attrib Befehl

            Setzen.StartInfo.Arguments = "+R """ + args(1) + """\*.* /S /D"

            'Versteckt die Prozessinformationen

            Setzen.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

            'Führt den Befehl aus

            Setzen.Start()

            MsgBox("Schreibschutz erfolgreich gesetzt", 0, "Schreibschutz")

        Else

            MsgBox("Kein Verzeichnis", 16, "ERROR")

        End If

    End Sub


    Public Sub cmdNehmen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNehmen.Click

        'Prüft ob Verzechnis true oder false ist

        If isFolder(args(1)) = True Then

            Dim Nehmen As New System.Diagnostics.Process

            'attrib Befehl

            Nehmen.StartInfo.FileName = "attrib"

            'Parameter für den attrib Befehl

            Nehmen.StartInfo.Arguments = "-R """ + args(1) + """\*.* /S /D"

            'Versteckt die Prozessinformationen

            Nehmen.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

            'Führt den Befehl aus

            Nehmen.Start()

            MsgBox("Schreibschutz erfolgreich aufgehoben", 0, "Schreibschutz")

        Else

            MsgBox("Kein Verzeichnis", 16, "ERROR")

        End If

    End Sub


    Public Sub cmdZippen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdZippen.Click

        'Prüft ob Verzechnis true oder false ist

        If isFolder(args(1)) = True Then

            Dim SevenZip As New System.Diagnostics.Process

            'Pfad zur 7z.exe

            SevenZip.StartInfo.FileName = "C:\Program Files\7-Zip\7z.exe"

            'Parameter für die 7z-Konsole

            SevenZip.StartInfo.Arguments = "a -sfx """ + args(1) + ".exe"" """ + args(1) + "\"" -mx9"

            'Versteckt die Prozessinformationen

            SevenZip.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

            'Führt den Befehl aus

            SevenZip.Start()

            MsgBox("Verzeichnis erfolgreich komprimiert", 0, "Komprimierung")

            'Kopiert .exe Pfad in Zwischenablage 

            Clipboard.SetText(args(1) + ".exe")

        Else

            MsgBox("Kein Verzeichnis", 16, "ERROR")

        End If

    End Sub


    Private Sub cmdInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdInfo.Click

        MsgBox("Die PsSchrOmp.exe Software ist eine, von René Schell geschrieben, Unterstützungssoftware, für das Packen von Auslieferungspaketen. Sie fasst die Funktionen Schreibschutz setzen, Schreibschutz nehmen und Verzeichnis komprimieren zusammen.", 65, "Information")

    End Sub


    Private Sub cmdUpd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpd.Click

        'Prüfen ob Programmversionen gleich sind

        upd = String.Compare(nfileInfo, ofileInfo)

        'Was soll getan werden wenn geprüft?

        If upd = True Then

            If MsgBox("Es gibt eine neue Version. Jetzt das Programm aktualisieren?", vbYesNo, "Information") = vbYes Then

                Dim update As New System.Diagnostics.Process

                'xcopy Befehl

                update.StartInfo.FileName = "xcopy"

                'Parameter für den xcopy Befehl

                update.StartInfo.Arguments = """" + updVerz(1) + """" + args(0) + """"

                'Versteckt die Prozessinformationen

                'update.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

                'Führt den Befehl aus

                update.Start()

            End If

        Else

            MsgBox("Das Programm ist auf dem neuesten Stand.", 0, "Information")

        End If

    End Sub


    Private Sub cmdExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExit.Click

        'Programm beenden

        Me.Close()

    End Sub


End Class


Ich danke euch im Vorraus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...