Rar/Unrar Kommandozeile

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Gutserino.

    Rar/Unrar Kommandozeile

    Hallo Forum,
    ich versuche derzeit ein Programm zu basteln das ein RAR Archiv entpackt mit der Rar bzw Unrar.exe von WinRar.
    Wenn ich das ganze direkt über die Kommandozeile eingeb funktioniert es auch wunderbar, aber sobald ich das ganze per VB Code versuche
    passiert einfach garnichts.

    Hier ist mein Code zum ausführen dazu
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim RAR As Process = New Process
    2. Dim RARinfo As New ProcessStartInfo
    3. RAR.StartInfo = RARinfo
    4. RAR.EnableRaisingEvents = True
    5. RARinfo.FileName = Application.StartupPath & "\rar.exe"
    6. RARinfo.WindowStyle = ProcessWindowStyle.Normal
    7. RARinfo.UseShellExecute = False
    8. RARinfo.RedirectStandardError = True
    9. RARinfo.RedirectStandardOutput = True
    10. RARinfo.CreateNoWindow = False
    11. RARinfo.Arguments = "x " & "D:\Downloads\test.rar"
    12. RAR.Start()

    Auch ohne Startargumente geht die Kommandozeile auf aber komplett ohne Inhalt oder sonstiges.
    Ich hab sowas vor langem schonmal gemacht per VB, aber warum das ganze jetzt nicht funktioniert..googlesuche hat auch nichts ergeben.
    Danke im voraus
    Du musst das Programm - warum auch immer WinRar das auch über die Kommandozeile erfordert - mit Admin-Rechten starten. Dann klappt es auch (bei mir)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed
    Also muss ich in den Prozess infos das angeben für Admin ?
    Zb so

    Quellcode

    1. Process.StartInfo.Verb = "runas"

    Ich hab die rar exe zb per Eigenschaften als Admin ausführen angegeben und VB etc starte ich als Admin
    aber passieren tut dennoch nix außer nen leeres Kommandozeilen Fenster.
    Nun, ich habe es so gemacht, dass ich die Windows-Projekt-Einstellungen auf Admin eingestellt habe.
    Bilder
    • Admin1.png

      23,57 kB, 809×334, 24 mal angesehen
    • Admin2.png

      28,19 kB, 674×335, 26 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Das ganze hab ich auch grad gefunden per Google, bringt aber dennoch nix.
    Irgendwas überseh ich hier...
    Wenn ich RedirectStandartOutput auf True stell geht zwar das Konsolenfenster auf aber ja ohne Inhalt, wenn ich das ganze auf False stell geht es nur kurz auf und schliesst wieder.
    Am Ende egal was es erstellt das Archiv dennoch nicht.
    Also ich habe als Code:

    VB.NET-Quellcode

    1. Dim RAR As Process = New Process
    2. Dim RARinfo As New ProcessStartInfo
    3. RAR.StartInfo = RARinfo
    4. RAR.EnableRaisingEvents = True
    5. RARinfo.FileName = "C:\Program Files\WinRAR\rar.exe" 'oder wo auch immer WinRar installiert ist
    6. RARinfo.WindowStyle = ProcessWindowStyle.Normal
    7. RARinfo.UseShellExecute = True
    8. RARinfo.RedirectStandardError = False
    9. RARinfo.RedirectStandardOutput = False
    10. RARinfo.CreateNoWindow = False
    11. RARinfo.Arguments = "x " & "D:\PrimeGen.rar" 'dort war mein RAR-Archiv
    12. RAR.Start()
    13. RAR.Dispose()
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Damit hats funktioniert, hab das Filename Argument nochmal mit meinem Ersetzt und dann gings immernoch, am Ende lag es daran das der Pfad wo meine rar lag aus irgendeinem Grund nicht damit funktionieren wollte(im Debug Ordner des Programms)
    Vielen dank.

    Noch ne kleine ergänzung
    Ich versuche derzeit per DragAndDrop eine Datei zb zu entpacken die man auf ein Panel zieht.
    Komischerweise hat es anfangs mal funktioniert, jetzt aber nicht mehr am Code selbst hab ich nichts mehr verändert.
    Visual Basic manchmal....Reeeeee

    Hier die DragDrop Codes
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Panel1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragEnter
    2. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    3. e.Effect = DragDropEffects.Copy
    4. Else
    5. e.Effect = DragDropEffects.None
    6. End If
    7. End Sub
    8. Private Sub Panel1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragDrop
    9. Dim MyFiles() As String
    10. Dim i As Integer
    11. Dim input As String
    12. ' Assign the files to an array.
    13. MyFiles = e.Data.GetData(DataFormats.FileDrop)
    14. ' Loop through the array and add the files to the list.
    15. For i = 0 To MyFiles.Length - 1
    16. Dim lvitem As New ListViewItem
    17. input = System.IO.Path.GetFullPath(MyFiles(i)) 'File Name "Notepad"
    18. Next
    19. If input.EndsWith(".rar") Then
    20. Dim RAR As Process = New Process
    21. Dim RARinfo As New ProcessStartInfo
    22. RAR.StartInfo = RARinfo
    23. RAR.EnableRaisingEvents = True
    24. RARinfo.FileName = Application.StartupPath & "\rar.exe" 'oder wo auch immer WinRar installiert ist
    25. RARinfo.WindowStyle = ProcessWindowStyle.Normal
    26. RARinfo.UseShellExecute = True
    27. RARinfo.RedirectStandardError = False
    28. RARinfo.RedirectStandardOutput = False
    29. RARinfo.CreateNoWindow = False
    30. RARinfo.Arguments = "x " & input 'dort war mein RAR-Archiv
    31. RAR.Start()
    32. RAR.Dispose()
    33. End If
    34. End Sub

    AllowDrop steht auf True für das Panel
    Der Code an sich ist eig für was anderes deshalb steht dort grad noch das ListviewItem etc, habs grad nur zum testen genommen hierzu.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gutserino“ ()