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

Beiträge von Moombas

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 7. Dezember 2023 um 12:55

    hipfzwirgel : Nicht das ich wüsste. Das wäre dann in etwa so:

    AutoIt
    Global $time  = _24Hour('02:19:04 PM')
    Consolewrite($time & @CRLF)
    
    Func _24Hour($time)
    	$Time = StringSplit($time, ":")
    Local       $Hour    = $Time[1]
    Local Const $Minute  = $Time[2]
    Local Const $Second  = StringSplit($Time[3], " ")[1]
    Local Const $AM_PM   = StringSplit($Time[3], " ")[2]
    
    	If $AM_PM = "PM"  AND  $Hour <> "12"   then
    		$Hour = $Hour + 12
    	EndIf
    	If $Hour = "12" then $Hour = "00"
    	Return $Hour & ":" & $Minute & ":" & $Second
    EndFunc
    Alles anzeigen
  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 7. Dezember 2023 um 12:34

    Alina :Wir reden aneinander vorbei^^ Ich habe mich darauf bezogen, das ich eher das vollständige Herunterfahren asl "Default" setzen würde (müsste damit erreicht werden das man den Fastboot abschaltet) anstatt vom Nutzer zu erwarten, das dieser beim Herunter fahren immer die Shift-Taste drückt. Das war ganz unabhängig von der Diskussion über die Genauigkeit.

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 7. Dezember 2023 um 11:46

    Ich würde sagen nur per Stringmanagement, da es überall eben in dem von dir bereits gefundenen Vorgaben erwartet wird.

    Beispiel fürs Datum:

    AutoIt
    Global $date  = Stringsplit('12/07/2023', '/')
    Global $day   = $date[2]
    Global $month = $date[1]
    Global $year  = $date[3]
    
    Consolewrite(_DateTimeFormat($year & '/' & $month & '/' & $day, 2) & @CRLF)
  • Access UDF -Spaltennamen in Array

    • Moombas
    • 7. Dezember 2023 um 11:34

    Das habe ich schon verstanden aber sind die Spaltenüberschriften, nicht im Array wie im Screenshot von Post #7 gmmg ?

    Das wäre ja blöd, diese immer unten zu haben, daher mein Vorschlag in Zeile 37 die 0 durch eine 1 zu ersetzen, dann müssten die Spaltenüberschriften oben stehen.

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 7. Dezember 2023 um 11:04

    Naja, ich kenne niemanden der den PC mit gedrückter Shift-Taste herunter fährt :rofl:.
    Ggf. wird halt per Default der Fastboot deaktiviert, wenn das immer gewünscht ist den PC "richtig" herunterzufahren anstatt jedesmal irgendeine Taste drücken zu müssen wenn man Herunterfahren anklickt.

  • Access UDF -Spaltennamen in Array

    • Moombas
    • 7. Dezember 2023 um 07:55

    Hmm, aber eigentlich gehören die Spaltenüberschriften ja nach oben.

    Das Wollte ich eigentlich mit der Angabe der 0 in ArrayInsert erreichen, sehe aber Gerade das ich lt. Doku einen Fehler gemacht habe ("$vRange can be a string containing the rows above which a row is to to be inserted. ").
    Ersetze die 0 mal mit einer 1 und teste erneut.

  • Access UDF -Spaltennamen in Array

    • Moombas
    • 6. Dezember 2023 um 15:49

    Hab das ja oben als 2. Part hinzugefügt als weitere Möglichkeit.

    Hier mal zusammengefasst (ohne Gewähr):

    AutoIt
    #include <Array.au3>
    Global $oConnection, $aRecordSet, $sQuery, $aRecordSetArr, $Spalten
    Global $sTableName    =  "tblTable1"
    Global $sDatabaseName = "D:\Test-mdb\Test.mdb"
    If Not FileExists($sDatabaseName) Then Exit
    $oConnection   = ObjCreate("ADODB.Connection")
    $oConnection.Open("Driver=Microsoft Access Driver (*.mdb); DBQ=" & $sDatabaseName)
    $oRecordSet    = ObjCreate("ADODB.RecordSet")
    $sQuery        = "Select * From " & $sTableName
    $oRecordSet.Open($sQuery, $oConnection)
    For $i = 0 to $oRecordSet.Fields.Count - 1
    	$Spalten &= $oRecordSet.Fields.Item($i).Name & '|'
    Next
    $Spalten = StringTrimRight($Spalten, 1)
    $aRecordSetArr = $oRecordSet.GetRows
    _ArrayAdd($aRecordSetArr, $Spalten, 0)
    $oRecordSet.Close()
    $oConnection.Close()
    _ArrayDisplay($aRecordSetArr, 'Tabelle = ' & $sTableName)
    Alles anzeigen
  • Access UDF -Spaltennamen in Array

    • Moombas
    • 6. Dezember 2023 um 15:35

    Bzw. $Spalten kannst du in Zeile 11-13 halt wie gezeigt zusammen bauen und dann entsprehend einfügen (entweder für das Arraydisplay oder als extra Zeile im Array).

  • Access UDF -Spaltennamen in Array

    • Moombas
    • 6. Dezember 2023 um 15:21

    Wenn es nur im ArrayDisplay angezeigt werden soll, ersetze Spalte 17 & 18 (ungetestet):

    AutoIt
    $Spalten = ''
    For $Row = 0 to Ubound($aColumnArr)
    	$Spalten &= $aColumnArr[$Row] & '|'
    Next
    $Spalten = StringTrimRight($Spalten, 1)
    _ArrayDisplay($aRecordSetArr, 'Tabelle = ' & $sTableName, Default, Default, Default, $Spalten)

    Edit:

    Willst du Die Überschriften direkt auch im Array haben:

    AutoIt
    $Spalten = ''
    For $Row = 0 to Ubound($aColumnArr)
    	$Spalten &= $aColumnArr[$Row] & '|'
    Next
    $Spalten = StringTrimRight($Spalten, 1)
    _ArrayAdd($aRecordSetArr, $Spalten, 0)
    _ArrayDisplay($aRecordSetArr, 'Tabelle = ' & $sTableName)

    Aber alles ungeprüft.

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 6. Dezember 2023 um 15:09

    hipfzwirgel : Siehe Hilfe:

    [ 2] - Date at which this entry was submitted
    [ 3] - Time at which this entry was submitted
    [ 4] - Date at which this entry was received to be written to the log
    [ 5] - Time at which this entry was received to be written to the log

    Naja selbst wenn nciht zur Erfassung, brauchst du dennoch ja die richtigen und logisch richtig nachvollziehbaren Werte ;)
    Und dafür sind die genannten Eckpunkte wichtig und richtig zu erfassen und wären auch für Arbeitszeiterfassung möglich (ob zulässig weiß ich jedoch nicht^^).

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 6. Dezember 2023 um 14:54

    Warum sollte man beim herunterfahren die Shift-Taste gedrückt halten? -.-

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 6. Dezember 2023 um 14:39

    Ich möchte noch eine Sache zu bedenken geben aber wneiger wegen des Auslesens an sich, sondern der Anwendung dessen.
    Das Skript würde dies auch auslesen und anwenden, wenn dein PC wegen anderen Gründen heruntergefahren und später wieder gestartet wird. Obwohl die Zeit dazwischen ggf. Arbeitszeit war.
    Das erfordert dann eine manuelle Anpassung der Zeiten. Ich bin daher kritisch dem gegenüber genau dieses las Grundlage für die Arbeitszeiten zu nehmen.

    Wäre es nicht Sinnvoller den Sleepmode zu nehmen und diesen zu Plotten?
    - Laptop hochfahren: Arbeitszeit Start (egal ob Homeoffice oder Office)
    - Sleepmode Start = Ende Homeoffice = Unterbrechung der Arbeitszeit start
    - Sleepmode Ende = Unterbrechung der Arbeitszeit Ende
    - Laptop herunter fahren = Arbeitszeit Ende (egal ob Homeoffice oder Office)
    - Spätestes Ende = Laptop hochfahren + 10h + Dauer Unterbrechung (korrigiere mich, wenn ich da nun rechtlich falsch bin oder was vergessen habe)

    Empfehlung: Prüfung, ob die maximal Erlaubte Wochenarbeitszeit (50h bei 5-Tage-Woche/60h bei 6-Tage-Woche) damit nicht überschritten wird, sonst muss vorher Feierabend gemacht werden.
    Empfehlung 2: Prüfung ob die Ruhepause (Arbeits Ende bis Arbeits Start) von 11h eingehalten wurde.

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 6. Dezember 2023 um 14:10

    Alina Wir reden hier von 7 Minuten Versatz, das wird wohl kein Zeitzonenproblem sein :D

    hipfzwirgel : Wenn du den jeweiligen Eintrag kennst: _EventLog__Read()


    Menno AspirinJunkie war schneller ;)

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Moombas
    • 6. Dezember 2023 um 13:44

    Woher diese Differenz kommt weiß ich nicht, aber alternativ drüber nachgedacht beim Shutdown einen Eintrag (Registry/Datei o.ä.) zu machen mit der entsprechenden Zeit und diesen dann auszulesen

  • Aus Dateiname Ordner erstellen

    • Moombas
    • 4. Dezember 2023 um 11:00

    Möp, jetzt weiß ich warum ich das nicht nachvollziehen konnte.
    Ich hatte die vorhandene da_block.png erweitert und getestet.
    Den Ordner "da_block" gab es daher schon (ebenso die entsprechende Datei) und daher auch keine Probleme.

    Ja, schon blöd und du hast recht ;)
    Man sollte die Testumgebung halt frei von solchen Möglichkeiten halten. :saint:

  • Aus Dateiname Ordner erstellen

    • Moombas
    • 4. Dezember 2023 um 10:20

    Ich hab das schon verstanden, die Datei ist ja nur Quelle als Namensgeber, mehr nicht.
    Beispiel:
    Dateiname: da_block.png.test
    Resultierender Ordnername: da_block.png

    Das kann ich nicht nachvollziehen mit meinem Skript (dort ist die Prüfung ja drin ob der entsprechende Ordner bereits existiert).
    Wenn ich jedoch, wie von dir angegeben, "$FC_CREATEPATH" in Filemove verwende (und das dircreate auskommentiere), wird kein Ordner erstellt. > Slashes richtig rum gedreht und geht, war mein Fehler, nachvollziehen kann ich deine obige Aussage jedoch nicht.

  • Aus Dateiname Ordner erstellen

    • Moombas
    • 4. Dezember 2023 um 09:35
    Zitat von AspirinJunkie

    Das würde auch ein weiteres Randphänomen in deinem Skript mit beseitigen:
    Erstelle mal einen Ordner (keine Datei) mit dem Namen Mein.Ordner und schau was mit der DirCreate-Zeile daraus gemacht wird.

    Also als ich das mit einer Datei als basis mit 2 Punkten im Namen gestestet (da_block.png.test) habe (der Ordnername hat dann zwangsläufig auch einen: da_block.png), lief das Einwandfrei.
    Was macht es denn deiner Meinung nach (lerne gerne wieder was dazu ;))?

  • Aus Dateiname Ordner erstellen

    • Moombas
    • 4. Dezember 2023 um 07:56

    Und bei meinenm Beispiel Code war die Prüfung ob ein Ordner existiert bereits drin (sonst wird eben keiner erstellet, nur verschoben; Zeile 21).
    Aber das man vor dem . ein Leerzeichen haben könnte habe ich in der Tat nicht bedacht...auf so eine Idee würde ich nie kommen :Glaskugel:

    Danke an die Anderen, dass sie sich dessen angenommen haben ;)

  • Aus Dateiname Ordner erstellen

    • Moombas
    • 1. Dezember 2023 um 11:32

    Hast du recht an den Parameter occurance hatte ich nicht gedacht XD, habs korrigiert.
    Brauche das aber auch zu selten :rtfm:

  • Aus Dateiname Ordner erstellen

    • Moombas
    • 1. Dezember 2023 um 11:14

    Hab es mal angepasst ;)

    Bleibt noch die Möglichkeit, wenn Punkte im Dateinamen verwendet wurden (z.B. test.txt.old) :P

    Das habe ich dann hier mal mit berücksichtigt:

    AutoIt
    Opt('MustDeclareVars', 1)
    
    #include <MsgBoxConstants.au3>
    
    CreateStructure()
    
    Func CreateStructure()
    Local $sFileName = "", $iResult = 0, $target
    Local Const $hSearch = FileFindFirstFile("*.*")
    	If $hSearch = -1 Then
    		MsgBox($MB_SYSTEMMODAL, "", "Error: No files/directories matched the search pattern.")
            Return False
    	EndIf
    
    	While 1
            $sFileName = FileFindNextFile($hSearch)
    		If @error Then ExitLoop
    
    		If ($sFileName <> @ScriptName) then
    			$target = @ScriptDir & '\' & StringLeft($sFileName, StringinStr($sFileName, '.', Default, -1) - 1) & '\'
    			If not FileExists($target) then DirCreate($target)
    			FileMove(@ScriptDir & '\' & $sFileName, $target & $sFileName)
    		EndIf
    	WEnd
    	FileClose($hSearch)
    EndFunc
    Alles anzeigen

    Edit: Corrected the slashes into correct direction.

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™