1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • Restart VOR Anmeldefenster

    • BugFix
    • 14. Februar 2010 um 09:55

    So, nach langer Zeit will ich mal den Status hierzu angeben.
    Ich hatte, damit es überhaupt automatisch läuft, erstmal folgende Lösung verwendet:

    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    Author: BugFix

    [/autoit][autoit][/autoit][autoit]

    Script Function:
    Der Rechner muß nach dem Kaltstart sofort wieder neugestartet werden.
    Dieses Skript setzt die Registry-Einträge dafür.
    - Aufruf mit Parameter "DOWN" über "Herunterfahren-Icon" fährt PC herunter
    und trägt Skriptaufruf in "Registry RunOnce" ein
    - Aufruf ohne Parameter über "Registry RunOnce" rebootet den PC

    [/autoit][autoit][/autoit][autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    Local $param = ''
    If $CmdLine[0] Then $param = $CmdLine[1]
    If $param = "DOWN" Then
    RegWrite('HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce', 'MyRestart', 'REG_SZ', '"C:\MyRestart.exe"')
    Shutdown(13)
    Else
    Shutdown(6)
    EndIf

    [/autoit]

    Hierbei wird zwar bis zum Anmeldefenster gebootet aber dann erfolgt sofort der Neustart. Von der Geschwindigkeit ist es eigentlich ausreichend und der User merkt es nicht wirklich.
    Einziger Nachteil: Es muß zwingend über den Link heruntergefahren werden. Un dauch, wenn man einem User 10-mal sagt: Fahre nur über dieses "Herunterfahren-Icon" runter, ihr könnt euch drauf verlasssen, dass es in 30% der Fälle dann doch nicht so gemacht wird.

    Meine aktuelle Überlegung war, (Zeitfaktor und Anmeldeschirm sind jetzt mal absolut sekundär) das Windows-Log auszuwerten - das letzte Herunterfahren-Ereignis. So brauche ich keine extra Registryeinträge und der User kann beenden, wie er will. Es wird bei jedem Start gefragt: Was war zuletzt? "Herunterfahren - dann Rebooten" od. "Reboot - dann nix tun".

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    Author: BugFix

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Wenn der PC zuletzt 'Herunterfahren' verwendete, wird er beim nächsten Start
    nach dem Hochfahren sofort mit 'Reboot' nochmals gestartet.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------
    Local $objWMIService = ObjGet("winmgmts:" & "\\.\root\cimv2")
    Local $colLoggedEvents = $objWMIService.ExecQuery ("Select * from Win32_NTLogEvent Where Logfile = 'System'")
    Local $typ, $str
    For $objEvent In $colLoggedEvents
    If $objEvent.EventCode <> 1074 Then ContinueLoop
    $typ = StringRegExp($objEvent.Message, 'Herunterfahrungstyp: .*\r\n', 1)
    $str = StringReplace($typ[0], 'Herunterfahrungstyp: ', '')
    ExitLoop
    Next
    If $str = 'Herunterfahren' Then
    Shutdown(6)
    EndIf

    [/autoit]

    Lasse ich mir das Ereignis ausgeben, so wird dies auch korrekt angezeigt, ich sehe auch das Icon für mein Skript in der Taskleiste (lasse es z.Zt. per Autostart aufrufen) aber es wird kein Reboot gestartet.
    Könnte das vielleicht mal noch jemand testen?

    Edit: Oops - beim Posten ist es mir aufgefallen: Ich habe nicht beachtet, dass hinter dem Herunterfahrungstyp ja ein Zeilenumbruch ist (die sieht man so schlecht ;) ). Nun klappt es so auch.

  • On/Off Button erstellen

    • BugFix
    • 14. Februar 2010 um 09:16

    Hier, so gehts (Text oder Bild - Style beachten, Iconstyle, Bitmapstyle, s. Hilfe)

    Spoiler anzeigen
    [autoit]

    Global $IconPath = "DEIN PFAD......\Eigene Bilder\"
    Global $OnState1 = 0, $OnState2 = 0
    $Form1 = GUICreate("Form1", 126, 92, 531, 416)
    $Button1 = GUICtrlCreateButton("On", 8, 32, 65, 25, 0)
    $Button2 = GUICtrlCreateButton('', 80, 32, 36, 36, $BS_ICON)
    GUICtrlSetImage(-1, $IconPath & 'restart.ico')
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $OnState1 = BitXOR($OnState1, 1)
    If $OnState1 Then
    GUICtrlSetData($Button1, "Off")
    Else
    GUICtrlSetData($Button1, "On")
    EndIf
    Case $Button2
    $OnState2 = BitXOR($OnState2, 1)
    If $OnState2 Then
    GUICtrlSetImage($Button2, $IconPath & 'shutdown.ico')
    Else
    GUICtrlSetImage($Button2, $IconPath & 'restart.ico')
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Hier mal die verwendeten Icon zum Testen: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    Icon.zip 5,56 kB – 246 Downloads
  • Suche wen der mit mir zusammen Autoit programmieren lernen will

    • BugFix
    • 12. Februar 2010 um 23:11

    8| Was sucht dieser Thread in der Jobbörse?

    [verschoben ==> OT]

  • AutoIT User Blog

    • BugFix
    • 12. Februar 2010 um 22:54

    Das würde die administrative Arbeit vervielfachen und das liegt nicht in unserem Sinn. Wer einen Blog schreiben will soll dafür auch allein verantwortlich sein.

  • Alle Pixel eines Bildes in ein Array schreiben

    • BugFix
    • 12. Februar 2010 um 18:45

    Fragen wir mal anders rum: Was nützt es dir, wenn du die Pixelfarben in dem Array hast? Wozu (und vor allem wie) willst du das weiterverarbeiten?

  • Farbe von allen Controls ändern

    • BugFix
    • 12. Februar 2010 um 17:53

    Dieser Thread ist ein klassisches Bsp. dafür, wie man sinnlos ein Forum beschäftigt, weil man einfach seinen Source-Code zur Problembeleuchtung nicht zeigt! :thumbdown:

    Also, solange hier kein Code ist, der klärt was du eigentlich willst... :S

  • Farbe von allen Controls ändern

    • BugFix
    • 12. Februar 2010 um 17:18
    Zitat von NoName

    also werden die Labels regelmäßig refresht.

    Ein Grund mehr ein Array zu verwenden. :D

    Zitat von NoName

    Also müsste ich manuell nach jedem Control das Handle in ein Array stopfen

    Ganz und gar nicht, du kannst die Controls im Array erstellen, so wird die ID automatisch gespeichert. ;)

  • Farbe von allen Controls ändern

    • BugFix
    • 12. Februar 2010 um 16:39
    Zitat von NoName

    Da ich an die 100 COntrols habe möchte ich nicht jedes einzelne mit GUICtrlSetColor ändern ^^

    Zitat von TheShadowAE

    Mach die Controls in ein Array und benutz ne For Schleife ;)

    Zitat von NoName

    Ja daran habe ich auch schon gedacht, finde aber nicht, dass das die beste Lösung ist (flls es überhaupt eine andere gibt).

    @NoName: Du bekommst hier eine saubere Lösung angeboten (bei 100 Controls ist es übrigens wenig sinnvoll kein Array zu verwenden) und lehnst sie ab, weil du findest, dass das nicht die beste sei.. :wacko:
    Wär nicht schlecht, wenn du das mal begründen könntest. Letztlich lagerst du das in eine Funktion aus und hast dann nur einen einzigen Befehl dafür.

  • Alle Dateien des Netzwerkordners (incl. Unterordner) schreibschützen?

    • BugFix
    • 11. Februar 2010 um 22:12

    Na dann ist ja prima. Aber setze bitte, wenn das Problem erledigt ist, auf "gelöst". Ich machs hier mal für dich.

  • Alle Dateien des Netzwerkordners (incl. Unterordner) schreibschützen?

    • BugFix
    • 10. Februar 2010 um 23:59

    Habs bei mir nachgebaut - alle Dateien in allen Unterodnern inklusive werden auf schreibgeschützt gesetzt. ;)

    Es sei denn .. FileSetAttrib funktioniert nicht mit Netzwerkpfaden - das kann ich nicht testen.

  • Alle Dateien des Netzwerkordners (incl. Unterordner) schreibschützen?

    • BugFix
    • 10. Februar 2010 um 20:47
    Zitat von Dino

    Es werden nur die Ordner schreibgeschützt.

    Ergibt für mich keinen Sinn. Die Attribute werden rekursiv in den Ordnern gesetzt, darum kann man sich es sparen alle Ordner rekursiv zu durchsuchen. FileSetAttrib kann das alleine. ;)


    Edit: Oops, da hab ich doch das wichtigste vergessen: Das File-Pattern!
    So gehts:

    [autoit]

    #include <file.au3>
    Local $root = '\\85w2t05\prj\'
    Local $aTmp = _FileListToArray($root, '*', 2)
    If @error Then Exit MsgBox(0, '', 'keine Unterordner vorhanden')
    For $i = 1 To $aTmp[0]
    $tmp = $root & $aTmp[$i] & '\IN'
    If FileExists($tmp) Then FileSetAttrib($tmp & '\*.*', '+R', 1)
    $tmp = $root & $aTmp[$i] & '\OUT'
    If FileExists($tmp) Then FileSetAttrib($tmp & '\*.*', '+R', 1)
    Next

    [/autoit]
  • Lustige Signaturen -Sammlung

    • BugFix
    • 9. Februar 2010 um 20:17

    Hatte ich mal als Signatur (sinngemäß)

    Zitat

    In Berlin hat ein Mann Kindergeld beantragt, obwohl er gar keine Kinder hat. Seine Argumentation: Ich muß GEZ-Gebühren bezahlen, obwohl ich nicht fernsehe nur weil ich das Gerät bereithalte.
    Somit möchte ich Kindergeld, ich habe zwar keine Kinder aber das Gerät dafür...

  • Alle Dateien des Netzwerkordners (incl. Unterordner) schreibschützen?

    • BugFix
    • 9. Februar 2010 um 20:02

    Sollte so funktionieren:

    [autoit]

    #include <file.au3>
    Local $root = '\\85w2t05\prj\'
    Local $aTmp = _FileListToArray($root, '*', 2)
    If @error Then Exit MsgBox(0, '', 'keine Unterordner vorhanden')
    For $i = 1 To $aTmp[0]
    $tmp = $root & $aTmp[$i] & '\IN'
    If FileExists($tmp) Then FileSetAttrib($tmp, '+R', 1)
    $tmp = $root & $aTmp[$i] & '\OUT'
    If FileExists($tmp) Then FileSetAttrib($tmp, '+R', 1)
    Next

    [/autoit]
  • Abkürzungen in SciTE verwalten

    • BugFix
    • 9. Februar 2010 um 18:18

    Versucht mal folgendes:
    In der Funktion _Code2Abbrev() hinter jeder Zeile alle Variablen in die Console ausgeben lassen.
    Dann sollte zumindest ersichtlich werden, welche Funktion dieses Resultat liefert.

  • Wo ist die SciTE "Neu-Datei"?

    • BugFix
    • 8. Februar 2010 um 23:13
    Zitat von qixx

    Ein neues Dokument öffnen und dann

    Das Dokument muß zuerst als *.au3-Datei gespeichert werden. Erst dann kann die Abkürzung erkannt werden.

  • Autoit Magazin

    • BugFix
    • 8. Februar 2010 um 22:55

    Mal als Gedanke: Wenn ihr eine bestimmte UDF/Skript aus dem Forum näher beleuchten möchtet, wendet euch dann einfach an den Autor - der weiß es am Besten. :D
    Würde mich jedenfalls bereit erklären dort erläuternd etwas beizusteuern, falls etwas von mir mal auftaucht. ;)

  • Wo ist die SciTE "Neu-Datei"?

    • BugFix
    • 8. Februar 2010 um 22:16
    Zitat von Pinguin94

    Gibts eine Liste mit allen Abkürzungen irgendwo?

    Verwende einfach meinen Abbrev-Manager.

  • [gelöst] Virensoftware - keine Verbindung zum Server möglich

    • BugFix
    • 7. Februar 2010 um 18:31

    Auch dieses Problem konnte gelöst werden.
    Ursache: Man kann nicht so einfach Updaten. Einmalig muß eine Initialisierung ausgeführt werden, die beim Updaten der SW startet. Und dann braucht man viel Geduld, der Initialisierungsvorgang hat bei mir etwa 15 min gedauert. Da denkt man doch, die Anwendung sei verreckt. :D

  • [gelöst] AVM USB Fernanschluss läßt sich nicht installieren

    • BugFix
    • 7. Februar 2010 um 18:28
    Zitat von Der_Doc

    eigentlich sollte die Software die mit der Box kommt schon funktionieren oder?


    Es ist ja keine Software, sondern nur ein Link (bzw. eine kurzes Skript), den man aus der Box laden kann. Mit dem Link wird die eigentliche Software geladen. Aber während der aktuelle Link nur ein paar KB groß ist, waren das in der alten (funktionierenden) Variante noch > 3 MB. ;)

  • [gelöst] AVM USB Fernanschluss läßt sich nicht installieren

    • BugFix
    • 7. Februar 2010 um 17:47

    Hallo Der_Doc,
    Danke für deine Hilfe, aber das Probleme konnte ich gerade lösen. Mir fiel nämlich ein, dass im Keller ja noch der PC meiner Tochter steht, den sie hatte bevor ich ihr meinen "alten" vererbt habe. Und Glück gehabt: Die Software war noch als EXE drauf, Installation hat auch sofort geklappt.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™