exe auomatisch als admin ausführen!

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Unwesen.

    In MyProject -> Anwendung -> Windows Einstellungen anzeigen:
    (?)
    Spoiler anzeigen
    <security>
    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <!-- UAC-Manifestoptionen
    Wenn Sie die Zugangsebene für das Windows-Benutzerkonto ändern möchten, ersetzen Sie den
    requestedExecutionLevel-Knoten durch eines der folgenden Elemente.

    <requestedExecutionLevel level="asInvoker" uiAccess="false" />
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    <requestedExecutionLevel level="highestAvailable" uiAccess="false" />

    Durch Angeben des requestedExecutionLevel-Knotens wird die Datei- und Registrierungsvirtualisierung deaktiviert.
    Wenn Sie Datei- und Registrierungsvirtualisierung für Abwärts-
    kompatibilität verwenden möchten, löschen Sie den requestedExecutionLevel-Knoten.
    -->
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    </requestedPrivileges>
    </security>

    VB.NET-Quellcode

    1. <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    2. <!-- UAC-Manifestoptionen
    3. Wenn Sie die Zugangsebene für das Windows-Benutzerkonto ändern möchten, ersetzen Sie den
    4. requestedExecutionLevel-Knoten durch eines der folgenden Elemente.
    5. <requestedExecutionLevel level="asInvoker" uiAccess="false" />
    6. <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    7. <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
    8. Durch Angeben des requestedExecutionLevel-Knotens wird die Datei- und Registrierungsvirtualisierung deaktiviert.
    9. Wenn Sie Datei- und Registrierungsvirtualisierung für Abwärts-
    10. kompatibilität verwenden möchten, löschen Sie den requestedExecutionLevel-Knoten.
    11. -->
    12. <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    13. </requestedPrivileges>

    startet aber immernoch nicht als admin
    Hmja, kann dir da sonst auch net wirklich weiterhelfen. Hast du dir in dem 2. Link mal die Antwort von Tangomouse angesehen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Function IsAdmin() As Boolean
    3. Return My.User.IsInRole( _
    4. Microsoft.VisualBasic.ApplicationServices. _
    5. BuiltInRole.Administrator)
    6. End Function
    7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. If IsAdmin() = False Then
    9. If System.Environment.OSVersion.Version.Major = 6 Then
    10. MsgBox("Sorry... my app need to run as administrator" & vbCr & "Press ok to Restart in Administrator mode", MsgBoxStyle.Information)
    11. Dim process As System.Diagnostics.Process = Nothing
    12. Dim processStartInfo As System.Diagnostics.ProcessStartInfo
    13. processStartInfo = New System.Diagnostics.ProcessStartInfo()
    14. processStartInfo.FileName = "myapp.exe"
    15. If System.Environment.OSVersion.Version.Major >= 6 Then ' Windows Vista or higher
    16. processStartInfo.Verb = "runas"
    17. Else
    18. ' No need to prompt to run as admin
    19. End If
    20. processStartInfo.Arguments = ""
    21. processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal
    22. processStartInfo.UseShellExecute = True
    23. Try
    24. process = System.Diagnostics.Process.Start(processStartInfo)
    25. Catch ex As Exception
    26. MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    27. Finally
    28. If Not (process Is Nothing) Then
    29. process.Dispose()
    30. End If
    31. End Try
    32. End If
    33. End
    34. End If
    35. End Sub
    36. End Class


    Ich bekomme zwar ne Meldung, das das System die angegebene Datei nicht finden kann, aber vielleicht steigst du ja da durch.^^
    //Aso, habe
    "processStartInfo.FileName = "myapp.exe"
    übersehen.

    Aber da bekommt man dann auch beim Starten den Dialog, wie bei meinem ersten Vorschlag.


    //2
    Zeile 18 hiermit ersetzen, dann dürfte der restart im Administratormodus (?) funktionieren:

    processStartInfo.FileName = My.Application.Info.AssemblyName & ".exe"

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