Dell Tablet automatisch ein und ausschalten über das Ladekabel

  • In der Telegram Gruppe kam heute die Frage ob es möglich ist, das Tablet automatisch ein zu schalten sobald das Tablet geladen wird und umgekehrt.


    Das Einschalten kann im Bios eingestellt werden. Dazu das Tablet starten und während dem Startvorgang die "Volume down" Taste drücken. Es sollte dann das Bios geladen werden.

    Unter "Power Management" kann der Hacken "Wake on AC" gesetzt werden. Danach auf Apply drücken.

    Nun sollte beim Einstecken des Ladekabel das Tablets automatisch starten.



    Für das Ausschalten habe ich den Umweg über eine Aufgabe gemacht.

    Da in er Ereignisanzeige beim einstecken und trennen des Ladekables eine Meldung gemacht wird.


    Es muss die Aufgabenplanung geöffnet werden.

    Dann Rechtsklick auf die "Aufgabenplanungsbibliothek" -> "Aufgabe importieren". Hier muss dann die "Ausschalten.xml" ausgewählt werden.

    Der Code für die Ausschalten.xml befindet sich am Ende des Beitrages.

    Sobald der Import erfolgreich war öffnet sich ein Fenster mit der Aufgabe.

    Wichtig unter Allgemein muss der lokale User angegeben werden, der ist auf jedem Tablet anders.

    Hier muss lediglich unter Aktionen die Datei angepasst werden, welche bei Eintritt des Ereignisses ausgeführt wird.

    Die Batchdatei befindet sich wieder am Ende des Beitrages.

    Diese Batchdatei dann über Bearbeiten auswählen


    Edit: 26.06.2018

    Es kann auch eine Exe eingebunden werden, weiter untern habe ich eine erstellt. Diese bietet eine Abfrage ob der PC ausgeschaltet werden soll.



    Nach dem Speichern der Aufgabe sollte das Ausschalten des Tablets beim Trennen des Ladekabels funktionieren.




    Die Aufgabe kann auch manuell angelegt werden.

    Hier nur speziell der Trigger beschrieben:

    Den Reiter "Trigger" öffnen -> unten auf "Neu" klicken.

    In dem neuen Fenster bei Aufgabe starten: "Bei einem Ereignis"

    Einstellungen auf "Benutzerdefiniert ändern" -> "Neuer Ereignisfilter"


    Hier dann die Einstellungen wie im Screenshot bearbeiten.



    Dann die Einstellungen mit OK speichern.

    Jetzt nochmal auf "Neuer Ereignisfilter" klicken.

    Es muss noch die Bedingungen hinzugefügt werden "nur beim trennen" diese lautet: "and *[EventData[Data[@Name="AcOnline"] and (Data ="false"")]]"

    Siehe Screenshot:



    Danach kann der Trigger gespeichert werden und eine Aktion hinzugefügt werden.


    Wichtig ist noch die Bedingungen zu ändern. Unter Engergie müssen alle Hacken entfernt sein.











    Am besten auf dem Desktop mit Rechtsklick ein Textdokument anlegen und den Namen vergeben "Ausschalten.xml". Dabei steht XML für die Dateiendung wie z. B. .txt bei einem Textdokument.

    Hier folgt der Code für die "Ausschalten.xml ". Diese einfach in die Datei kopieren und speichern drücken.


    ----------------------------------------------------------------------------

    <?xml version="1.0" encoding="UTF-16"?>

    <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">

    <RegistrationInfo>

    <Date>2018-06-14T18:56:09.800924</Date>

    <Author></Author>

    <URI>\Ausschalten</URI>

    </RegistrationInfo>

    <Triggers>

    <EventTrigger>

    <Enabled>true</Enabled>

    <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="System"&gt;&lt;Select Path="System"&gt;*[System[(Level=4 or Level=0) and (EventID=105)]] and *[EventData[Data[@Name="AcOnline"] and (Data ="false")]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>

    </EventTrigger>

    </Triggers>

    <Principals>

    <Principal id="Author">

    <UserId>S-1-5-21-2429855538-1663897584-2793115018-1001</UserId>

    <LogonType>InteractiveToken</LogonType>

    <RunLevel>HighestAvailable</RunLevel>

    </Principal>

    </Principals>

    <Settings>

    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>

    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>

    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>

    <AllowHardTerminate>true</AllowHardTerminate>

    <StartWhenAvailable>false</StartWhenAvailable>

    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>

    <IdleSettings>

    <StopOnIdleEnd>true</StopOnIdleEnd>

    <RestartOnIdle>false</RestartOnIdle>

    </IdleSettings>

    <AllowStartOnDemand>true</AllowStartOnDemand>

    <Enabled>true</Enabled>

    <Hidden>false</Hidden>

    <RunOnlyIfIdle>false</RunOnlyIfIdle>

    <WakeToRun>false</WakeToRun>

    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>

    <Priority>7</Priority>

    </Settings>

    <Actions Context="Author">

    <Exec>

    <Command>C:\Users\User\Desktop\Ausschalten.bat</Command>

    </Exec>

    </Actions>

    </Task>

    ------------------------------------------------------------------------------





    Am besten auf dem Desktop mit Rechtsklick ein Textdokument anlegen und den Namen vergeben "Ausschalten.bat".

    Hier folgt der Code für die "Ausschalten.bat ". Diese einfach in die Datei kopieren und speichern drücken.

    ---------------------------------------

    @echo off

    shutdown -s -f -t 0

    ---------------------------------------

  • Hi AlberK,


    danke! sehr nützlich, funktioniert sehr gut. Ich habe noch eine Zeit bei -s -f -t 60 für eine Minute, dann kann man evtl. noch was auch speichern bzw. beenden drücken.


    Eine Frage / Bitte hätte ich aber noch. Wie kann man programmieren die Zeit zum Herunterfahren wieder zu stoppen, wenn man zwischen "Spannung weg" und "Zeit abgelaufen" wieder die Zündung einschaltet / Motor startet.


    Hast du einen Programmiervorschschlag?


    Besten Dank

  • Hallo deistho,


    auf die schnelle wüsste ich jetz nur einen einfachen weg. Eine Batch Datei auf den Desktop legen und dort den shutdown befehl abbrechen. In der Batch einfach den Befehl "shutdown -a" ausführen. Hier wird nur der Shutdown abgebrochen. Für eine andere Lösung müsste ich erst mal schauen ob es da was anderes gibt.



    Freut mich das es funktioniert. Natürlich so kann es auch gelöst werden bei 95% ausschalten :)

  • Wie es beim Strom abstöpseln den Popup gibt, könnte es beim einstöpseln ja auch wieder einen abgreifbaren Popup geben, der mit einer Aufgabe entsprechend verknüpft ist. Da kenne ich mich aber zu wenig aus :)

    Wenn das so ist, dann denke ich müsste in einer neuen Aufgabe nur der Wert "false" gegen "true" getauscht werden.

  • Wie es beim Strom abstöpseln den Popup gibt, könnte es beim einstöpseln ja auch wieder einen abgreifbaren Popup geben, der mit einer Aufgabe entsprechend verknüpft ist. Da kenne ich mich aber zu wenig aus :)

    Ich habe mir mal die Zeit genommen und eine elegantere Lösung gebastelt. Mit AutoIT habe ich eine EXE erstellt. Die könnte in die Aufgabe eingebunden werden. Die Exe bietet eine Auswahl ob der PC ausgeschaltet werden soll oder nicht. Zusätzlich habe ich einen Time out eingebaut sollte 2 Minuten lang nichts passieren. Die EXE habe ich in eine Zip Datei gepackt. Zusätzlich unten noch den Quellcode angehängt.

    Probier mal ob es bei dir funktioniert :)


    Falls in der Exe auf "Ja" geklickt wird bleiben 60 Sekunden bis der Shutdown ausgeführt wird.

    Bei klicken auf Nein wird nur eine Meldung angezeigt.

    Wird keine Eingabe getätigt wird der PC nach 2 Minuten automatisch heruntergefahren.














    Hier das Skript:

    --------------------------------------------------------------------------------------------------


    #include <Constants.au3>

    #include <GUIConstantsEx.au3>

    #include <Timers.au3>


    _Main()


    Func _Main()

    Local $idYes, $idNo, $idExit, $iMsg


    $hGUI = GUICreate("Herunterfahren", 230, 100)

    GUICtrlCreateLabel("Wollen Sie den PC ausschalten?", 10, 10)

    $idYes = GUICtrlCreateButton("Ja", 10, 50, 80, 30)

    $idNo = GUICtrlCreateButton("Nein", 100, 50, 80, 30)



    GUISetState() ; display the GUI

    _Timer_SetTimer($hGUI, 120000, "TimeUP")

    Do

    $iMsg = GUIGetMsg()

    Until $iMsg = $GUI_EVENT_CLOSE Or $iMsg = $idNo Or $iMsg = $idYes

    Select

    Case $iMsg = $idYes

    SplashTextOn('Ja', 'Der PC wird in 60 Sekunden herunterfahren!', 200, 80)

    Sleep(60000)

    SplashOff()

    Shutdown(5)

    Case $iMsg = $idNo

    SplashTextOn('Nein', 'Der PC wird nicht herunterfahren', 200, 80)

    Sleep(3000)

    SplashOff()

    Case $iMsg = $GUI_EVENT_CLOSE

    EndSelect



    Exit

    EndFunc

    ;==>_Main



    Func TimeUp($a,$b,$c,$d)

    MsgBox ( 0, "Timeout", "Der PC wird herunterfahren!" ,5)

    Shutdown(5)

    exit

    EndFunc

    --------------------------------------------------------------------------------------------------

  • Die EXE habe ich in eine Zip Datei gepackt. Zusätzlich unten noch den Quellcode angehängt.

    Probier mal ob es bei dir funktioniert :)

    Ich habe das alles ausprobiert.

    Den Quellcode in eine .xml gepackt ... Als Aufgabe importiert ... Die exe herunter geladen und eingebunden.


    Ergebnis: funktioniert tadellos!


    Vielen Dank dafür.


    Ein weiterer Schritt das ganze altenteilertauglich zu machen!

  • Danke, es freut mich zu hören das es klappt. :)

    Kann ich gerne mal im Winter machen. Aktuell fehlt mir leider die Zeit.

  • laut windows defender enthält die Datei "Herunterfahren.zip" einen Virus (Trojaner) :| und wird deshalb auch sofort gelöscht.

  • Kannst du es Mal bei virustotal hochladen? Dort wird es von vielen verschiedenen Scannern getestet.


    Es könnte sein dass dieses auto it Programm generell als Virus betrachtet wird da man ja zum Beispiel auch die Festplatte damit löschen könnte? (Ging natürlich mit jeder beliebigen anderen exe)

  • laut windows defender enthält die Datei "Herunterfahren.zip" einen Virus (Trojaner) :| und wird deshalb auch sofort gelöscht.

    Anscheinend erkennt der Defender die Datei als Virus. Auch bei Virustotal werden 8 falsch-positiv Meldungen gebracht.

    Ich hab die Datei mal als 64 Bit Version exportiert. Hier schlägt bei Virustotal nur ein Scanner an.

    Eventuell geht es damit.

    Wird die Datei bei dir direkt gelöscht oder erst nach dem ausführen?

    Bei mir erscheint nur eine Meldung bei der ich dann "Trotzdem ausführen" auswählen kann.

  • Anscheinend erkennt der Defender die Datei als Virus. Auch bei Virustotal werden 8 falsch-positiv Meldungen gebracht.

    Ich hab die Datei mal als 64 Bit Version exportiert. Hier schlägt bei Virustotal nur ein Scanner an.

    Eventuell geht es damit.

    Wird die Datei bei dir direkt gelöscht oder erst nach dem ausführen?

    Bei mir erscheint nur eine Meldung bei der ich dann "Trotzdem ausführen" auswählen kann.

    die Datei wurde nach dem Download sofort gelöscht. Aber jetzt kann ich die Datei problemlos downloaden.

    Vielen Dank:thumbup:

  • wollte es bei meinem nächsten cerea System ebenfalls so machen, jedoch zeigt es mir jetzt die Fehlermeldung an, dass mindestens eins der angegebenen Argumente ungültig ist?

    Hat sich dahingehend mit einem Windows Update etwas verändert?

    Bin genauso vorgegangen wie bei meinen bisherigen Systemen auch, auf den es tadellos funktioniert

  • wollte es bei meinem nächsten cerea System ebenfalls so machen, jedoch zeigt es mir jetzt die Fehlermeldung an, dass mindestens eins der angegebenen Argumente ungültig ist?

    Hat sich dahingehend mit einem Windows Update etwas verändert?

    Bin genauso vorgegangen wie bei meinen bisherigen Systemen auch, auf den es tadellos funktioniert

    Hey, habt ihr dafür eine Lösung gefunden? Habe das selbe Problem.


    Edit: Hab das Problem gefunden. Musste unter "Allgemein" und dann bei den Sicherheitsoptionen den Benutzer eintragen. Dann ging es.