CMD Aufruf klappt nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    CMD Aufruf klappt nicht

    Hey :)

    Da ich meinen Monitor öfters am Tag mal in den Schlafmodus schicken muss, wollte ich mir ein kleines Tool bauen ohne immer Umständlich über das Startmenue zu wandern.
    Nach Rescherschen habe ich das mit dem Powercfg herausgefunden und mir nun diesen Code geschrieben.
    Leider tut sich da nichts. Fehlermeldungen etc sind keine vorhanden. Gebe ich den Befehl direct in die CMD ein klappt die Umstellung.
    Bitte um Hilfe.

    VB.NET-Quellcode

    1. Public Class frm_main
    2. Public sleeptime As Integer
    3. Private Sub frm_main_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
    4. ' Anzahl der Minuten
    5. cmd_sreenoff.DataSource = "10 20 45".Split
    6. End Sub
    7. Private Sub btn_done_Click(sender As Object, e As EventArgs) Handles btn_done.Click
    8. 'powercfg /change monitor-timeout-ac 5
    9. Shell("powercfg /change monitor-timeout-ac" & sleeptime)
    10. End Sub
    11. Private Sub cmd_sreenoff_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmd_sreenoff.SelectedIndexChanged
    12. sleeptime = CInt(cmd_sreenoff.SelectedItem.ToString)
    13. grb_text.Text = "Monitor in " & sleeptime & "Minuten ausschalten."
    14. End Sub
    15. End Class
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    @Bartosz
    Werde mir das mal ansehen. Danke.

    Den Fehler habe ich gefunden. Was ein " leerzeichen " manchmal für Auswirkungen hat .... :evil:

    VB.NET-Quellcode

    1. ​Shell("powercfg /change monitor-timeout-ac " & sleeptime)

    Beim ac musste ich vor den " noch ein Leerzeichen setzen.
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    @Amelie Ich empfehle Dir dringend, das ganze über die API-Funktionen zu machen, nicht aber über Shell().
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Amelie schrieb:

    Warum nicht so?
    Klar kannst Du sie verwenden. Für neue Projekte nimmt man sie eig. nicht mehr.
    Die Parametrierung mit Strings als Kommandozeilenparameter ist halt etwas suboptimal, hast Du ja selbst gemerkt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja stimmt .. wegen eines Leerzeichens ein Büschel graue Haare bekommen :)
    Naja das ist nur für mich und liegt in der Taksleiste ... Nun hab ich nur 2 klicks..

    API kommt bestimmt später mal ;)
    Bilder
    • mon1.jpg

      12,83 kB, 223×126, 78 mal angesehen
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh: