Hallo Moombas,
Danke vielmals für den Codeschnipsel. Ich hatte schon befürchtet, dass es auf String-Management herausläuft
Das wird dann für die Uhrzeit auch so sein: Wenn hinten PM dann 10 = 22 per String-Management oder gibt es da etwas eleganteres?
Beiträge von hipfzwirgel
-
-
Hallo Gemeinde,
doch noch eine Frage:
die Rückgabe vom Datum und der Uhrzeit erfolgt nach folgendem Muster: $aEvent[2] = mm/dd/yyyy $aEvent[3] = hh:mm:ss pm
Gibt es funktionen die bei der Formatierung unterstützen, denn um z.B. _DateDiff zu nutzen muss die Formatierung ja
für das Datum so sein: YYYY/MM/DD ?
oder kann man das nur per String-Management umstellen?p.s. ich habe es mit den Date-Management Funktionen versucht aber die laufen alle auf Fehler, da dort die Eingabe bereits in einer bestimmten Form erfolgen muss...
-
Hallo Moombas,
ich gebe dir in all den Punkten grundsätzlich recht.
Da es aber eben nur für mich den bestmöglichen Feierabendzeitpunkt anzeigen soll und das für meine normal strukturierten Arbeitstage,
denke ich, ist es zumindest für mich nicht so wichtig für Rechtskonformität zu sorgen. Letzendlich wird die Arbeitszeit in der Firma per "Stechuhr" oder
per SAP offiziell erfasst. Es ist aber halt immer doof wenn ich aufgrund des Homeoffice dem Chef erklären muss wenns mal später geworden ist...
achja: Danke für deine Erklärung bzgl. des Array.
Shifttaste drücken vor Herunterfahren klicken bewirkt das totale Herunterfahren... Also keine Speicherung i-welcher Daten für Schnellstartmodus, etc.
Schnellstart ist bei unseren Rechnern aber deaktiviert und spielt somit keine Rolle...
Ich denke damit ist der Thread erledigt... Lösung liegt ja vor. -
Hallole moombas,
danke für deinen Hinweis. Da hast du recht. Es geht mir auch eigentlich nur darum anzuzeigen, wann ich Feierabend machen soll wenn ich:
a) meine normale Zeit voll habe,
b) das ich nicht 10 Std überschreite,
und c) wann ich ArbZG-gerecht evtl. auch früher Feierabend machen kann.
Das Tool soll NIEMLASNIENICHT zur Arbeitszeiterfassung dienen!
Es soll nur die "Blöcke" der Arbeitszeiten zusammen rechnen und den wie vor erläuterten Zeitpunkt für den Feierabend anzeigen.
@ Alina: ich habe für die Antworten zu danken! Die Fragen ergeben sich ja ganz natürlich
@ Aspirinjunkie: eine Letzte Frage, so sieht das Array ausRow|Col 0
# 0|True
# 1|143290
# 2|12/06/2023
# 3|02:19:04 PM
# 4|12/06/2023
# 5|02:19:04 PM
# 6|6006
# 7|4
# 8|Information
# 9|0
# 10|EventLog
# 11| Computername
# 12|
# 13|Der Ereignisprotokolldienst wurde beendet.
# 14|{Array[9]}
Weiss tu du evtl. warum die Zeit 02:19:04(Zeitpunkt des Herunterfahrens) zweimal auftaucht oder ist das nicht von Belang? -
hallole,
@ Alina: Das mit der Zeitzone ist insofern klar, als das tatsächlich eine Stunde fehlt. Aber 7 minuten Differenz? Das liegt wohl eher nicht an der Zeitzone.
Zumindest kenne ich nur stundenweise Zeitzonen(natürlich denke ich, das man wissenschaftlich per Längen.- und Breitengrad die tatsächliche Zeit berechnen kann
aber so rechnet unser Arbeitszeittool eher nicht und Windows wohl auch nicht).
@ Aspirinjunkie: HEUREKA dein Script liefert die korrekte Zeit des letzten Herunterfahrens.
Ich teste aber noch was es liefert, wenn man untertägig den Rechner neu startet... -
Hallo Moombas,
zunächst danke für deine Antwort. Nein, die Zeit selber zu erfassen hatte ich nicht im Fokus...
@ alle: Gibt es eine Möglichkeit mit Autoit das Eventlog dahingehend auszulesen? -
Hallo Gemeinde,
aufgrund der strengen Auslegung bei uns im Betrieb, der gesetzlichen Pausenzeiten möchte ich mir einen Feierabendrechner erstellen.
Dazu ist es notwendig den Zeitpunkt des letzten Herunterfahrens zu ermitteln, weil ich oft morgens homeoffice mache und später ins Büro fahre.
Durch diese Teilung ist es mir leider öfters passiert, das ich über die 10-Std-Grenze gekommen bin. Ergo: Chef ist mörderböseIch habe es Dank Vorschlägen des Forums mit folgendem Code versucht:
Code
Alles anzeigen#include<Date.au3> ; Read Value $RegVal = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows", "ShutdownTime") $sShutdown = _filetime2str($RegVal) MsgBox(0, "Shutdown", "Shutdown: " & $sShutdown) ; Read Value Func _filetime2str($RegVal) ; Create a FileTime Struct (in bytes, so you can set value) $FileTime = DllStructCreate("struct; dword hi; dword lo; endstruct") ; set data to struct ;set hi value DllStructSetData($FileTime,1,Binary("0x"&Stringleft($RegVal,8))) ;set lo value DllStructSetData($FileTime,2,Binary("0x"&StringRight($RegVal,8))) ; Convert to String $String = _Date_Time_FileTimeToStr($FileTime) return $String EndFunc
Laut dem Eventlog war aber dieser Zeitpunkt 7 min später. Also statt 14:40 wie obiger Code ergibt, 14:47 (UTC, etc. nicht mit eingerechnet).
Hätte jemand eine Idee wie ich den richtigen Zeipunkt des letzten Herunterfahrens sonst noch auslesen kann? -
Guten Morgen Bugfix,
ich hatte die Abbrevs per Abbrev-Manager eingebunden. So wie es aussieht lag es wohl an der Installation.
Heute morgen habe ich die SciTE4Autoit.exe nochmals von der SciTEe4Autoit-Homepage - https://www.autoitscript.com/site/autoit-sc…itor/downloads/ - heruntergeladen
und installiert. jetzt gehen sogar beide Schalter. CTRL + B oder Space...
Damit ist das Thema für mich erledigt.
Vielen lieben Dank für deine Unterstützung -
Hallo ihr lieben,
meine eigenen Abbrevs gehen nur mit dem Schalter CTRL + b. Gibt es eine Möglichkeit das die auch mit Space-Taste gehen wie die Default-Abbrevs? -
Hallo Mojoeb,
bitte verzeih die lange Antwortzeit. ich bin geschäftlich gerade dermaßen eingespannt,dass ich hierfür kaum noch Zeit finde.
ich schaue mir dein Vorschlag an, wenn es wieder etwas ruhiger ist bei mir. Einstweilen schließe ich das Thema als erledigt...
die ini-Datei sieht so aus (Daten aus Sicherheitsgründen unecht!):die Daten werden zur Laufzeit entschlüsselt und an das Browserfenster mittels Send übergeben.
die Felder dazu im Browserfenster sehen so aus: -
Hallo Schnuffel,
also deine Aussage irritiert: Wofür bieten die KVM-Switche denn dann eine solche Möglichkeit an, die angeschlossenen Zielgeräte remote zu bearbeiten, so als säße man davor?
Da es ich in unserem Fall nicht um Server sondern Testgeräte (Lappis und Desktops) handelt, können die IT-Support-Teams remote auf die Zielgeräte zugreifen und Kunden-Probleme
nachstellen oder alle nötigen Testszenarien durch arbeiten. Die Lösung hierfür ist perfekt. Auch kann dadurch Treiber.- und Softwareintegration remote durchgeführt werden.
Fazit: Es sollte in erster Linie im Forum um die Hilfestellung und Lösungsfindung gehen und nicht darum eine Bewertung abzugeben.
@ Mojoeb:
Die KVM bieten die Möglichkeit, den Zugriff auf ein angeschlossenes Zielgerät, direkt per URL zu öffnen. Mein Proggi stellt je nach verwendetem StandardBrowser, KVM und
Zielgerät (KVM-Port) die Webadresse zusammen und ruft per Shellexecute den URL auf. Das zusammenstellen des URL ist von Hand eine üble Frickelei... vor allem dann wenn man ständig das Zielgerät wechseln mussCode$s_Pfad = "https://IP-Adresse des KVM/dpa.asp?port=" & $s_Portname & "&client=" & $s_Client ; $sClient ist die browserabhängige KVM-Client-Software, ShellExecute($s_Pfad, "", "", "")
Die Login-Seite ist komplett in Java-Script realisiert und bietet nur 2 Inputs für User und Pwd sowie den Enter-Button.
Da ich mich mit xpaths nicht auskenne, weiss ich also nicht ob das hilft... -
Hallole liebe Gemeinde,
ich habe mir ein Programm geschrieben, welches via Browser die KVM-Fenster meiner Zielgeräte öffnet. Hierzu ist aber ein Login
für den KVM-Switch nötig, der übergeben werden muss. Diese Login-Daten sind derzeit verschlüsselt in einer Ini-Datei.
ich definiere also den KVM-Switch(wir haben mehrere), gebe die Portnummer des Zielgerätes ein und das Tool öffnet die dazugehörige Login-Seite im Standard-Browser.
Der Login wird dann via Send-Befehl dort eingetragen. Da es möglich ist, dass nach Öffnung des Browserfensters dieses den Fokus verliert, meine Frage:
Gibt es eine Alternative zum Send-Befehl? Oder kann man die Login-Daten i-wie an das Handle des Browserfenster senden, sodass es egal wäre welches Fenster den Fokus hat?
ich weiss, dass man den Fokus mit WinActivate setzen könnte. Das ist aber nicht Gegenstand meiner Frage und insofern als Antwort nicht erwünscht. -
Sehr Seltsam...
wen ich die Zeile DriveMapAdd(\\Server\Share$\Unterordner) ausführe geht es.
Wenn ich DriveMapAdd(\\Server\Share$\Unterordner, "0", "", "") ausführe verlangt er eine Netzwerkanmeldung... -
Hallo Gemeinde,
um eine Datei in einen Unterordner eines Netzwerklaufwerks zu kopieren, möchte ich diesen zuerst mit DrivemapAdd mappen. Die Routine verlangt aber eine Netzwerkanmeldung.
Wenn ich den Pfad (z.B. \\Server\Share\Unterordner$) im Explorer eingebe wird der Unterordner ohne NW-Anmeldung geöffnet. Warum braucht DriveMapAdd immer eine Anmeldung?
p.s.: Der User ist in beiden Fällen der gleiche und es ist egal ob das Proggi mit oder ohne Adminrechte gestartet wird... -
Hallo Moombas, hallo Peter,
ich habe eine Lösung gefunden:Das erzeugt ein neues Array mit den Inhalten der beiden Indizes 22 und 28. So kann ich dann das neue Array mit _ArraytoString() in die neue Datei schreiben...
Ob das jetzt elegant ist, weiss ich nicht aber es funzt... -
Hallo Moombas,
das ist ja mein Prob: die zu verwendenden Indizes stehen eben nicht untereinander. Also kann ich wie in deinem Beispiel eine Range 1-4 nicht nehmen oder?Das @CRLF soll Delimiter sein, damit der Inhalt der Indizes in eine neue Zeile geschrieben wird...
-
Hallo Peter S. Taler,
Also ich bin mir nicht ganz sicher was du meinst:
Das Array ist ein 1D Arrray und in den Indizes stehen Werte wie "CPU Brand Name: 13th Gen Intel(R) Core(TM) i5-13500" (ist z.B. Index 22) -
Hallo Gemeinde,
ich soll aus einem Hardwarereport(Textfile) nur bestimmte Werte herauslesen und in ein neues Textfile schreiben.C
Alles anzeigen#include <Constants.au3> #include <WindowsConstants.au3> #include <File.au3> #include <Array.au3> Global $sFilePath1 = "E:\bla\blupp\rechnername.LOG" $hFileOpen1 = FileOpen($sFilePath1, 1) If $hFileOpen1 = -1 Then MsgBox($MB_SYSTEMMODAL, "", "Es ist während dem Öffnen der 1. Datei ein Fehler aufgetreten.") EndIf _CI_GetCPU() Func _CI_GetCPU() ; zu verwendende Indizes: 22,28,31,32,33,38,42 Local $aArray1 = 0 _FileReadToArray($sFilePath1, $aArray1) Local $s_Text = _ArrayToString($aArray1, @CRLF, ;??????? ) EndFunc ;==>_CI_GetCPU
Wie müsste ich die zu verwenden Indizes bei den Fragezeichen eintragen, bzw. geht das überhaupt so?
-
Hallo Water,
vielen lieben Dank für die Info. Schaue ich mir an... -
Hallo Gemeinde,
ich habe schon Anfang des Jahres mein Autoit auf die im Betreff genannte Version geupdatet. Alles funktioniert soweit. Ich habe jetzt aber eine Frage zu _ArrayDisplay():
In den vorherigen Versionen bot das Anzeigefenster z.B. die Möglichkeit den Inhalt des Arrays als Text zu speichern. Ebenso war ein kleines aber sehr nützliches "Menü" da.
Ist es möglich dieses "Menü" auch in der aktuellen Version anzeigen zu lassen?