Beiträge von peethebee
-
-
Alles Gute, liebe(r/s?) Schnitzel :)!
Feier ausgiebig und behalt dein Alter weiter für dich :D.
-
Irgendwie krumm, aber doch keine Primzahl…
Alles Gute zum Geburtstag, Andy :). Auf dass uns deine Geschichten aus alten Tagen erhalten bleiben und du gesund und munter!
Johannes
-
Na klar :).
Hätte ich schon gleich am Anfang tun sollen, aber hole es jetzt wenigstens nach:Spoiler anzeigen
[autoit]#include "Logging.au3"
[/autoit] [autoit][/autoit] [autoit]; Einstellungen treffen
[/autoit] [autoit][/autoit] [autoit]
$log_level = $LOG_ALL
$log_target = $LOG_TARGET_CONSOLE; Fehler, der immer angezeigt werden soll
[/autoit] [autoit][/autoit] [autoit]
_Log("Schlimmer Fehler", "Loggen nicht getestet!", $LOG_ERROR)
; Nicht so schwerer Fehler, wird angezeigt, weil $LOG_ALL gesetzt ist
_Log("Debug-Information soundso", "", $LOG_DEBUG)
$log_level = $LOG_ERROR
; Nicht so schwerer Fehler, wird diesmal nicht angezeigt, weil $LOG_ERROR als Level gesetzt ist
_Log("Debug-Information soundso noch einmal", "", $LOG_DEBUG); Ausgaben auf MsgBoxen umstellen:
[/autoit]
$log_target = $LOG_MSGBOX
_Log("Debug-Information soundso noch einmal", "", $LOG_DEBUG)
_Log("Schlimmer Fehler", "Loggen nicht getestet!", $LOG_ERROR)Johannes
-
Das Problem ist nach wie vor, dass ich es dann nicht starten kann, wenn sein Skript läuft. Von daher ist es wohl leider immer noch nutzlos :(.
-
Nicht möglich, nicht geplant. AutoIt ist eine interpretierte Sprache, was DLL-Entwicklung ziemlich grundsätzlich entgegensteht.
Wozu möchtest du DLLs haben?
Johannes
-
-
-
Wenn du dort jetzt wohnst, kannst du die Leitung doch für dich beanspruchen, würde ich sagen. Dann muss die Telekom sie befreien (und dir dann einen neuen Vertrag machen). Ob der Vorbesitzer des Anschlusses dann einen Vertrag zahlt, zu dem keine Leistung mehr existiert (was rechtlich mMn möglich ist wegen der Laufzeit), kann dir egal und der Telekom recht sein.
Bin aber leider kein Jurist -- sonst würde ich dir mein Briefpapier leihen!Johannes
-
Von Herzen alles, alles Gute, Oscar!
Du gehörst wirklich zu den angenehmsten Erscheinungen in unserem Forum :).
Feier den halb-runden Geburtstag gebührend und auf gehts ins zweite Drittel ;D.Johannes
-
ResHacker z.B.
-
Hi,
Eine Mini-Funktion zum Logging, die so ähnlich aufgebaut ist wie in anderen Sprachen (Log-Level und Log-Targets).
Nutzung ist unter MIT-Lizenz erlaubt.
[autoit]; ##############################################################################
[/autoit][autoit][/autoit][autoit]
; Logging
; ##############################################################################
#include <Date.au3>; Konstanten
[/autoit][autoit][/autoit][autoit]
Global Enum $LOG_ALL, $LOG_DEBUG, $LOG_WARN, $LOG_ERROR, $LOG_FIX
Global Enum $LOG_TARGET_CONSOLE, $LOG_TARGET_TRAYTIP, $LOG_TARGET_MSGBOX, $LOG_TARGET_FILE
; Default
Global $log_level = $LOG_ALL
Global $log_target = $LOG_TARGET_CONSOLE
Global $log_filename = ""
Global $log_enable_timing = TrueFunc _Log($msg_title, $msg = "", $level = $LOG_ERROR)
[/autoit][autoit][/autoit][autoit]
; Log-Level beachten
If $level < $log_level Then Return
Local $tCur = _Date_Time_GetLocalTime(); Log-Typ beachten
[/autoit]
Switch $log_target
Case $LOG_TARGET_CONSOLE
If $log_enable_timing Then
$msg_title = StringFormat("[%s] %s", _Date_Time_SystemTimeToDateTimeStr($tCur), $msg_title)
EndIf
If $msg = "" Then
ConsoleWrite(StringFormat("%s\n", $msg_title))
Else
ConsoleWrite(StringFormat("%s: %s\n", $msg_title, $msg))
EndIf
Case $LOG_TARGET_TRAYTIP
If $log_enable_timing Then
$msg_title = StringFormat("%s [%s]", $msg_title, _Date_Time_SystemTimeToDateTimeStr($tCur))
EndIf
TrayTip($msg_title, $msg, 20)
Case $LOG_TARGET_MSGBOX
If $log_enable_timing Then
$msg_title = StringFormat("%s [%s]", $msg_title, _Date_Time_SystemTimeToDateTimeStr($tCur))
EndIf
MsgBox(64 + 4096 + 262144, $msg_title, $msg)
Case $LOG_TARGET_FILE
If $log_enable_timing Then
$msg_title = StringFormat("[%s] %s", _Date_Time_SystemTimeToDateTimeStr($tCur), $msg_title)
EndIf
If $log_filename == "" Then
; Schreibrechte prüfen
Local $log_file_paths[3] = [@ScriptDir & "\lastrun.log", @UserProfileDir & "\lastrun.log", @TempDir & "\lastrun.log"]
For $i = 0 To UBound($log_file_paths) - 1
$log_filename = $log_file_paths[$i]
If FileWrite($log_filename, "") == 1 Then ExitLoop
Next
ConsoleWrite("Schreibe Log nach " & $log_filename & @CRLF)
FileDelete($log_filename)
EndIf
Local $f = FileOpen($log_filename, 1) ; Write mode (append to end of file)
If $f <> -1 Then
If $msg = "" Then
FileWrite($f, StringFormat("%s\n", $msg_title))
Else
FileWrite($f, StringFormat("%s: %s\n", $msg_title, $msg))
EndIf
EndIf
FileClose($f)
EndSwitch
EndFunc ;==>_LogEdit 01.05.2012:
- Logging in Datei hinzugefügt
- Optionale Zeitstempel eingeführtJohannes
-
Hallo,
Eine kleine UDF, um ein eigenes Datenformat für Einstellungen einzulesen. Das Format soll so einfach sein, dass es auch Anwender editieren können. Daher ist es relativ "fehlertolerant" (man kann viele übliche Zeichen für die Trennung oder einen Kommentar verwenden).
Wer es brauchen kann, darf es unter MIT-Lizenz nutzen.
settings.au3
[autoit]; ##############################################################################
[/autoit] [autoit][/autoit] [autoit]
; Einstellungsverwaltung
; ###############################################################################include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global $__settings_content
[/autoit] [autoit][/autoit] [autoit]Func _readSettings($filename)
[/autoit] [autoit][/autoit] [autoit]
$__settings_content = ObjCreate("System.Collections.Hashtable")
Local $filecontent = FileRead($filename)
If @error Then Return False
ConsoleWrite($filecontent & @CRLF)Local $array, $key, $value, $nOffset = 0
[/autoit] [autoit][/autoit] [autoit]
While 1
$array = StringRegExp($filecontent, "(?m)^\s*((""([^""\n]*)"")|('([^'\n]*)')|([^#;/%].*?))\s*[:>|=]\s*((""([^""]*|\n*)"")|('([^'\n]*|\n*)')|([^\n]*))", 1, $nOffset)If @error = 0 Then
[/autoit] [autoit][/autoit] [autoit]
$nOffset = @extended
Else
ExitLoop
EndIfif $array[2] <> "" Then $key = $array[2]
[/autoit] [autoit][/autoit] [autoit]
if $array[4] <> "" Then $key = $array[4]
if $array[5] <> "" Then $key = $array[5]
$key = StringLower($key)
if UBound($array) > 11 and $array[11] <> "" Then $value = $array[11]
if UBound($array) > 10 and $array[10] <> "" Then $value = $array[10]
if $array[8] <> "" Then $value = $array[8]If $__settings_content.Contains($key) Then $__settings_content.remove($key)
[/autoit] [autoit][/autoit] [autoit]
$__settings_content.add($key, $value)
WEnd
Return True
EndFunc ;==>_readSettingsFunc _debugSettings()
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_debugSettings
[/autoit] [autoit][/autoit] [autoit]Func _getBooleanSetting($name, $default = False)
[/autoit] [autoit][/autoit] [autoit]
Local $nameInternal = StringLower($name)
If $__settings_content.Contains($nameInternal) Then
If $__settings_content($nameInternal) = "True" Or $__settings_content($nameInternal) = "Ja" Or $__settings_content($nameInternal) == "1" Or $__settings_content($nameInternal) == "Yes" Then Return True
Return False
EndIf
Return $default
EndFunc ;==>_getBooleanSettingFunc _getStringSetting($name, $default = "")
[/autoit] [autoit][/autoit] [autoit]
Local $nameInternal = StringLower($name)
If $__settings_content.Contains($nameInternal) Then
Return $__settings_content($nameInternal)
EndIf
Return $default
EndFunc ;==>_getStringSettingFunc _getIntegerSetting($name, $default = 0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $nameInternal = StringLower($name)
If $__settings_content.Contains($nameInternal) Then
Return Int($__settings_content($nameInternal))
EndIf
Return Int($default)
EndFunc ;==>_getIntegerSetting;~ _test()
[/autoit]
Func _test()
_readSettings(@ScriptDir & "\Einstellungen_Test.txt")
_debugSettings()
ConsoleWrite('TestBool: ' & _getBooleanSetting('testbool') & @CRLF)
ConsoleWrite('TestStr: ' & _getStringSetting('TestStr') & @CRLF)
ConsoleWrite('TestInt: ' & _getIntegerSetting('TestINT') & @CRLF)
ConsoleWrite('Übergangs-Test: ' & _getStringSetting('Übergangs-Test') & @CRLF)
EndFunc ;==>_testEinstellungen_Test.txt
Code
Alles anzeigen# Einstellungen für mein Tool # Kommentare stehen hinter # ; % oder / # Einstellungsnamen und -werte können in " und " oder ' und ' eingefasst werden # Als Trennzeichen zwischen Name und Wert sind : = > | zulässig # Testwerte TestBool = 'Ja' "TestINT" : 104 TestStr > "Mein Wert > Dein Wert" TestStr | Mein neuer WertSpeichern ist bewusst nicht implementiert, es ist eher so gedacht wie bei Apache, dass man in der Textdatei von Hand konfiguriert und damit das Tool steuert, sobald es gestartet wird.
Happy Coding!
Johannes -
Ports mit Nummern von 1 bis 1023 sind unter UNIX traditionell den Administratoren vorbehalten und werden von der IANA (?) für einzelne Dienste "fest" vergeben. Das könnte hier zu Problemen führen, wenn du nicht mit #RequireAdmin entsprechende Rechte besorgst.
Ich habe den Thread nicht im Detail nachvollzogen, muss also nicht unbedingt die Erklärung sein ;).Selbstverständlich ist ein Post mit der eigenen Lösung leider nicht :S.
Johannes
-
Folgender Ansatz:
Kompiliere es mit der Einstellung "Skript in den Resourcen-Dateien unterbringen". Das dürfte die "Langversion" (mit Includes) sein, die dann letztendlich kompiliert wird. Demnach müsste die Zeilennummer hier stimmen. Mit ResHacker kannst du den Quelltext aus der Exe-Datei rausholen (wenn du eben so kompiliert hast).Viel Erfolg,
Johannes -
Danke, dass du deine Lösung für alle bereitgestellt hast!

-
Weder noch, GUICTRLCreatePic ;).
Man muss sagen, dass das nicht (mehr) State of the Art ist, besser (weil viel flexibler) wäre tatsächlich ein GDI(+)-basierter Ansatz. Wer mag, darf seine Portierung der Algorithmen gerne hier posten :).
-
Auf die gerade aktuelle AutoIt-Version (im Moment 3.3.8.0) upgedatet (siehe erster Post).
Johannes
p.s. Rekordthread: 9 Posts in 4 Jahren!?
-
Bitte, bitte!
Manchmal braucht man halt noch mal einen Schubs von außen ;). -
[autoit]
Func _ButtonChangeColor($gImg,$sImg1,$sImg2)
[/autoit]
If _IsPressed(01) = 1 Then ;Wenn die linke Maustaste gedrückt wird, dann...
GUICtrlSetImage($gImg,$sImg2, -1) ;das Bild solange...
Do ;erneuere...
Sleep(10)
Until _IsPressed(01) = 0 ;bis die linke Maustaste nicht mehr gedrückt wird.
EndIf
GUICtrlSetImage($gImg,$sImg1, -1) ;danach soll das Bild wieder durch das alte ersetzt werden.
EndFuncAuf den ersten Blick eher so…