18 ist wie eine neue Geburt, nur das man keine Glatze hat
Feier schön und genieße deine neuen Rechte
Beiträge von BadBunny
-
-
Sieht sehr toll aus und würde sich sicher gut als Bildschirmschoner eignen.
Ich kenn mich nicht sehr gut mir Dlls aus etc, aber du benutzt sehr viele Dlls Calls und Structs, könntest du mir evtl erklären wozu die alle sind und was das für Vorteile bringt?
GrußEdit// Bei mir stürzt es nicht ab. Win7 64Bit
-
Herzlichen Glückwunsch und feier schön. Genieße DEINEN Tag
-
Das hab ich mir auch mal angeschaut (Den QR Code) und hab auch etwas in AU3 gecodet, ist noch nicht viel und es wird noch nicht gezeichnet.
http://martinstoev.de/public/article…ng/qrcode2.html
http://www.thonky.com/qr-code-tutorial/part-1-encode-data/Die haben mir sehr geholfen!
Mein bisheriger Code:
Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GDIPlus.au3>
#include <GDIP.au3>
#include <Array.au3>;; http://martinstoev.de/public/article…ng/qrcode2.html
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;; die dunklen Module der binären 1 und die hellen Module der binären 0 entsprechen.
;; http://www.thonky.com/qr-code-tutorial/part-1-encode-data/Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $nWidth = 21 * 4
[/autoit] [autoit][/autoit] [autoit]
Global $nHeight = 21 * 4$hWnd = GUICreate("QR Code Creater", $nWidth, $nHeight)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3, "_Exit", $hWnd)
GUISetState()$hDC = _WinAPI_GetDC($hWnd)
[/autoit] [autoit][/autoit] [autoit]
$hDC_Buffer = _WinAPI_CreateCompatibleDC($hDC)
$hGDI_Bitmap = _WinAPI_CreateCompatibleBitmap($hDC, $nWidth, $nHeight)
_WinAPI_SelectObject($hDC_Buffer, $hGDI_Bitmap)
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDC_Buffer)
_GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)$hQRBitmap = _CreateQRBitmap("HELLO WORLD")
[/autoit] [autoit][/autoit] [autoit]While Sleep(20)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)_GDIPlus_GraphicsDrawImageRect($hGraphics, $hQRBitmap, 0, 0, $nWidth, $nHeight)
[/autoit] [autoit][/autoit] [autoit]_WinAPI_BitBlt($hDC, 0, 0, $nWidth, $nHeight, $hDC_Buffer, 0, 0, 0x00CC0020)
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _CreateQRBitmap($sData, $Version = 1)
[/autoit] [autoit][/autoit] [autoit]
;; Aufbau: Mode Indicator +CCI + Daten + Terminator + Füllbits
Local $hBitmap, $hBackbuffer ;; GDI
Local $BinaryString = "";; Mode Indicator +CCI + Daten + Terminator + Füllbits
Local $ModeIndicator ;; Mode Indicator
Local $BitMAXLength, $CCI ;; Max. Length of Data typ|||Character Count Identifier
Local $Daten ;; Was wohl
Local $Terminator ;; Terminator (Eig immer Mode 0000)
;; Füllbits-> die letzten 0len bis isInt (AUFBAU/8)$hBitmap = _GDIPlus_BitmapCreateFromScan0(20, 20, 0, $GDIP_PXF32ARGB)
[/autoit] [autoit][/autoit] [autoit]
$hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)#region Generating binary string
[/autoit] [autoit][/autoit] [autoit]
;; Mode Indicator
; -> Numeric MODE: 0001
If Not StringRegExp($sData, "[a-zA-Z]") Then
MsgBox(0, "", "Numeric")
$ModeIndicator = "0001"; -> Alphanumeric MODE: 0010
[/autoit] [autoit][/autoit] [autoit]
ElseIf StringRegExp($sData, "[a-zA-Z]") Then
MsgBox(0, "", "Alphanumeric")
$ModeIndicator = "0010"; -> Binary Mode MODE: 0100
[/autoit] [autoit][/autoit] [autoit]
ElseIf IsBinary($sData) Then ;; Unschön ....
MsgBox(0, "", "Binary")
$ModeIndicator = "0100"; -> Japanese Mode MODE: 100
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]$BinaryString &= $ModeIndicator
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];; ###Ecode the Length of the Data###
[/autoit] [autoit][/autoit] [autoit]
;; Bis jetzt nur Version 1 (21x21)
Switch $Version
Case 1 ;; Version 1 (21x21 Felder/Module)
Switch $ModeIndicator
Case "0001" ;; Wenn es Numeric ist
$BitMAXLength = 10
$CCI = _TranslateBase(StringLen($sData), 10, 2) ;; Int in Binär
_FillBinaryUntilMAX($CCI, $BitMAXLength)
$BinaryString &= $CCI;; Encode of Numeric: http://martinstoev.de/public/article…ng/qrcode3.html
[/autoit] [autoit][/autoit] [autoit]
Case "0010" ;; Wenn es Alphanumeric ist
$BitMAXLength = 9
$CCI = _TranslateBase(StringLen($sData), 10, 2) ;; Int in Binär
_FillBinaryUntilMAX($CCI, $BitMAXLength)
$BinaryString &= $CCI
;; ###Encode the data###
;; Typspezific Ecode
;; Alphanumeric ->
#cs
To encode our alphanumeric data, we break up the string into pairs of characters: HE,LL,O ,WO,RL,D.
For each pair of characters, we take the ASCII value of the first character and multiply it by 45. Then we add that number to the ASCII value of the second character. Then we convert the result into an 11-bit binary string. Refer to the table of alphanumeric values to get the ASCII value of each alphanumeric character.
If you are encoding an odd number of characters, as we are here, take the ASCII value of the final character and convert it into a 6-bit binary string.
As a side note, keep in mind that for the other modes (numeric, binary, and Japanese,) we would use a different method to encode the data. The method that I explained above is only for alphanumeric mode. Later, I will add information about how to encode data in other modes.
QUELLE: http://www.thonky.com/qr-code-tutorial/part-1-encode-data/ Datum: 03.01.2012
#ce
_EncodeTheData_Alphanumeric($sData, $BinaryString)Case "0100" ;; Wenn es Binary Mode ist
[/autoit] [autoit][/autoit] [autoit]
$BitMAXLength = 8
$CCI = _TranslateBase(StringLen($sData), 10, 2) ;; Int in Binär
_FillBinaryUntilMAX($CCI, $BitMAXLength)
$BinaryString &= $CCI
Case "1000" ;; Wenn es Japanese Mode ist
$BitMAXLength = 8
$CCI = _TranslateBase(StringLen($sData), 10, 2) ;; Int in Binär
_FillBinaryUntilMAX($CCI, $BitMAXLength)
$BinaryString &= $CCI
EndSwitch
EndSwitch;; ###Terminate## (Nach http://www.denso-wave.com/qrcode/vertable1-e.html -> Version1, ECC Level Q = 104!
[/autoit] [autoit][/autoit] [autoit]
If StringLen($BinaryString) + 4 <= 104 Then ;; Wenn <= als 104 dann 4 0len dranhängen (Wenn die 4 0len dadurch die Größe von 104 überschreitetn : Weniger 0len (z.B. 3 bei 101)
$BinaryString &= "0000" ;; Terminate
ElseIf StringLen($BinaryString) + 4 > 104 Then
If 104 - StringLen($BinaryString) > 0 Then
Switch 104 - StringLen($BinaryString)
Case 1
$BinaryString &= "0"
Case 2
$BinaryString &= "00"
Case 3
$BinaryString &= "000"
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]
EndIf;; ###Delimit the string into 8-bit words, then pad with 0s if necessary###
[/autoit] [autoit][/autoit] [autoit]
;; Einteilen nicht nötig (Wir gucken nur ob es durch 8 Teilbar ist, den Rest hängen wir dran)
If Mod(StringLen($BinaryString), = 0 Then ;; Wenns durch 8 Teilbar ist
;; NIX
Else
For $i = 7 To Mod(StringLen($BinaryString), Step -1
$BinaryString &= "0"
Next
EndIf;; AUFGEFÜLLT!!
[/autoit] [autoit][/autoit] [autoit];; ###Add words at the end if the string is too short###
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;; Wir müssen 104 / 8 = !13! 8Bit Blöcke (1 Byte) haben.
;; Temporär ablegen
$tempBinaryString = $BinaryString
If StringLen($BinaryString) / 8 < 104 / 8 Then
For $i = (StringLen($tempBinaryString) / + 1 To 104 / 8
;; Abwechselnd 11101100 und 00010001 zum füllen
$tempi = $i - ((StringLen($tempBinaryString) / + 1) ;; Um den durchlauf der Schleife zu bekommen
If Mod($tempi, 2) = 0 Then;; Wenn gerade
$BinaryString &= "11101100"
Else
$BinaryString &= "00010001"
EndIf
Next
EndIf;; Jetzt alles in 8Bit Packete umwandeln
[/autoit] [autoit][/autoit] [autoit]
$aBinaryString = _BinarySplitInByte($BinaryString)_ArrayDisplay($aBinaryString)
[/autoit] [autoit][/autoit] [autoit];; FERTIG!!
[/autoit] [autoit][/autoit] [autoit]
#endregion Generating binary string#region Generating Error Correction Code Words
[/autoit] [autoit][/autoit] [autoit]
;; ###Find out how many error correction code words you need to generate###
;; Nach der Error correction Tabelle benutzen wir bei Version 1, error correction Level Q, 13 Datenblöcke (Die wir auch im ersten Schritt erstellt haben (104/8)
;; ###Create your message polynomial###
;; Die 13 Byte Blöcke in Dezimal umwandeln
Dim $aDec[UBound($aBinaryString)]
For $i = 0 To UBound($aDec) - 1
$aDec[$i] = _TranslateBase($aBinaryString[$i], 2, 10)
Next;; Term zum erstellen (Beispiel: 32x25 + 91x24 + 11x23 + 120x22 + 209x21 + 114x20 + 220x19 + 77x18 + 67x17 + 64x16 + 236x15 + 17x14 + 236x13
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;; Erste Potenz wird gebildet: (number of data blocks) + (number of error correction code words) - 1_ArrayDisplay($aDec)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#endregion Generating Error Correction Code Words
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDrawRect($hBackbuffer, 0, 0, 10, 10)
[/autoit] [autoit][/autoit] [autoit]
Return $hBitmap
EndFunc ;==>_CreateQRBitmapFunc _BinarySplitInByte($Binary)
[/autoit] [autoit][/autoit] [autoit]
Dim $aTempBinary[StringLen($Binary) / 8] ;; Array mit dem benötigten Speicher
For $i = 1 To StringLen($Binary) / 8 ;; Die Runden (Auch Anzahl der 8er Blöcke/Bytes)
$aTempBinary[$i - 1] = StringLeft($Binary, ;; $i-1 weil $i nicht 0 basierend ist
$Binary = StringTrimLeft($Binary,
Next
Return $aTempBinary
EndFunc ;==>_BinarySplitInByteFunc _EncodeTheData_Alphanumeric($sData, ByRef $sBinaryString)
[/autoit] [autoit][/autoit] [autoit]
;; Array mit den benötigten Char Werten
Dim $aChar[45] = _ ;; http://www.thonky.com/qr-code-tutorial/alphanumeric-table/ !!!!
["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", _ ;; Zahlen
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", _ ;; Alphabet
" ", "$", "%", "*", "+", "-", ".", "/", ":"] ;; Sonderzeichen
$aData = StringSplit($sData, "", 2)
Dim $aCharvalue[UBound($aData)] ;; Array in dem die Werte der Chars stehen
For $i = 0 To UBound($aData) - 1
For $j = 0 To UBound($aChar) - 1
If $aData[$i] = $aChar[$j] Then ;; Wenn Char übereinstimmen
$aCharvalue[$i] = $j ;; Setzt den Wert des Chars (Value)
ContinueLoop
EndIf
Next
Next;; Bits setzen!!
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aCharvalue) - 1 Step 2 ;; Bei ungraden Zahlen muss der Letzte Buchstabe auch mit einbezogen werden! (Als 6 Bit)
If $i + 1 < UBound($aCharvalue) Then ;; Damits bei einem nicht hängen bleibt
$sBinary = _TranslateBase(($aCharvalue[$i] * 45) + $aCharvalue[$i + 1], 10, 2) ;; Integer Wert wieder in Binärcode umwandeln
_FillBinaryUntilMAX($sBinary, 11) ;; 11 Bit Binary String
$sBinaryString &= $sBinary
EndIf
If $i + 1 >= UBound($aCharvalue) Then ;; Wenn letzter Buchstabe (Einzeln)
$sBinary = _TranslateBase($aCharvalue[$i], 10, 2) ;; Integer Wert wieder in Binärcode umwandeln
_FillBinaryUntilMAX($sBinary, 6) ;; 6 Bit Binary String
$sBinaryString &= $sBinary
EndIf
NextEndFunc ;==>_EncodeTheData_Alphanumeric
[/autoit] [autoit][/autoit] [autoit]Func _FillBinaryUntilMAX(ByRef $Binary, $BitMAXLength)
[/autoit] [autoit][/autoit] [autoit]
If StringLen($Binary) < $BitMAXLength Then
For $i = 1 To $BitMAXLength - StringLen($Binary)
$Binary = "0" & $Binary
Next
ElseIf StringLen($Binary) > $BitMAXLength Then
Return SetError(1, 1)
EndIf
EndFunc ;==>_FillBinaryUntilMAXFunc _TranslateBase($sNumber, $iOldBase = 10, $iNewBase = 2)
[/autoit] [autoit][/autoit] [autoit]
;!!by eukalyptus!!
If $iOldBase < 2 Or $iOldBase > 36 Or $iNewBase < 2 Or $iNewBase > 36 Then Return SetError(1, 1, False)
Local $iNum, $aRes, $tChr = DllStructCreate("char[64];")
If $iOldBase <> 10 Then
$aRes = DllCall("msvcrt.dll", "uint64:cdecl", "_strtoui64", "str", $sNumber, "ptr", 0, "int", $iOldBase)
If @error Then Return SetError(1, 2, False)
$iNum = $aRes[0]
Else
$iNum = Int($sNumber)
EndIf
$aRes = DllCall("msvcrt.dll", "ptr:cdecl", "_i64toa", "int64", $iNum, "ptr", DllStructGetPtr($tChr), "int", $iNewBase)
If @error Then Return SetError(1, 3, False)
Return DllStructGetData($tChr, 1)
EndFunc ;==>_TranslateBaseFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
;; WinApi
_WinAPI_ReleaseDC($hWnd, $hDC)
_WinAPI_DeleteDC($hDC_Buffer)
_WinAPI_DeleteObject($hGDI_Bitmap);; GDI+
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_BitmapDispose($hQRBitmap)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_Exit -
Zitat von name22
Dann leg mal los ;).
Warum ich wenns jeder machen kann Ich hab mal ein kleines Prog. zum erstellen von L-System-(Fraktalen?) gebastelt.Aufgebaut werden die (Fraktale?) mit dem Turtle Prinzip.
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Global $nWidth = 500
[/autoit] [autoit][/autoit] [autoit]
Global $nHeight = 700$hWnd = GUICreate("Fraktal", $nWidth, $nHeight)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3, "_Exit", $hWnd)
GUISetState()_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($nWidth, $nHeight, $hGraphics)
$hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2);; FRAKTAL MALEN!!!
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($hBackbuffer, 0xFFFFFFFF)_Fraktal($hBackbuffer, "F[+F[+F]-F][-F[+F]-F]", 10, 60, 5)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $nWidth, $nHeight)
[/autoit] [autoit][/autoit] [autoit]
While Sleep(300)
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $nWidth, $nHeight)
WEndFunc _Exit()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_ExitFunc _Fraktal($Graphic, $action, $d, $delta, $n = 1)
[/autoit] [autoit][/autoit] [autoit]
Local $pi = 3.14159265358979
Local $Turtle_X = 250
Local $Turtle_Y = 350
Local $Turtle_Rot = -90Dim $aTurtleStack[1][3]
[/autoit] [autoit][/autoit] [autoit]
;; [n][0] = X
;; [n][1] = Y
;; [n][2] = Rot$tempAction = $action
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To $n - 1
$action = StringReplace($action, "F", $tempAction, 0, 1)
Next$aActions = StringSplit($action, "", 2)
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($aActions) - 1
[/autoit] [autoit][/autoit] [autoit]
;; Unterschiedliche Aktionen bei anderen Zeichen;####F######
[/autoit] [autoit][/autoit] [autoit][/autoit]
If $aActions[$i] == "F" Then ;; <- Geht um die Länge d in Richtung $Turtle_Rot und zieht EINEN Strich
$tempX = $Turtle_X
$tempY = $Turtle_Y
$Turtle_X += (Cos($Turtle_Rot * $pi / 180) * $d)
$Turtle_Y += (Sin($Turtle_Rot * $pi / 180) * $d)
_GDIPlus_GraphicsDrawLine($Graphic, $tempX, $tempY, $Turtle_X, $Turtle_Y)
EndIf
;####f######
If $aActions[$i] == "f" Then ;; <- Geht um dei Länge d in Richtung $Turtle_Rot und zieht KEINEN Strich
$Turtle_X += (Cos($Turtle_Rot * $pi / 180) * $d)
$Turtle_Y += (Sin($Turtle_Rot * $pi / 180) * $d)
EndIf
;####+######
If $aActions[$i] == "+" Then ;; <- Linksdrehung um den Winkel Delta
$Turtle_Rot -= $delta
EndIf
;####-######
If $aActions[$i] == "-" Then ;; <- Rechtsdrehung um den Winkel Delta
$Turtle_Rot += $delta
EndIf
;####[######
If $aActions[$i] == "[" Then ;; <- Legt den Turtle-Zustand (Position+Rotation) auf den "Stack"
ReDim $aTurtleStack[UBound($aTurtleStack) + 1][3]
$tempN = UBound($aTurtleStack) - 1
$aTurtleStack[$tempN][0] = $Turtle_X
$aTurtleStack[$tempN][1] = $Turtle_Y
$aTurtleStack[$tempN][2] = $Turtle_Rot
EndIf
;####]######
If $aActions[$i] == "]" Then ;; <- Nimmt den Turtle-Zustand (Position+Rotation) vom "Stack"
$tempN = UBound($aTurtleStack) - 1
$Turtle_X = $aTurtleStack[$tempN][0]
$Turtle_Y = $aTurtleStack[$tempN][1]
$Turtle_Rot = $aTurtleStack[$tempN][2]
ReDim $aTurtleStack[$tempN][3] ;; <- Löscht den letzten "Stack"-Eintrag von oben
EndIf
Next
EndFunc ;==>_FraktalIn der Funktion _Fraktal (Obwohl ich jetzt lieber (Fraktal?) genommen hätte :D) könnt ihr die Einstellungen übergeben.
Mit F geht die Turtle in die Blickrichtung und zeichnet ihren Weg. Mit f tut sie das selbe, zeichnet ihren Weg aber nicht.
Mit + wird die Schildkröte um DELTA nach LINKS bewegt, bei - nach RECHTS.
Durch die Klammern [ und ] wird der Status der Turtle gespeichert ([) oder wieder abgerufen (])Das Beispiel was ich im Moment drin hab ist nicht sonderlich schön, aber vllt könnte ihr ja was schönes draus machen und dann mit Parameterangabe hier posten
Viel Spaß damit und frohes Coden.
BBPS: Wer sich fragt warum ich Fraktale immer in Klammer geschrieben hab:
Ich bin mir nicht sicher ob man das als Fraktal bezeichnet, muss die Definition noch nachschauen -
Sieht genial aus Ich find Fraktale, vorallem mit dem L-System, genial. Man müsste mal eine eigene Form erstellen^^
-
Die Frage ist dann natürlich: 20 Hex Codes oder wiederum nur ein Binärcode mit den 20 Bildern Man kann es ja kombinieren, also das "Massenbild" als Binärstring in den Quellcode abspeichern, dafür gibts viele Funktionen im Forum, ich benutze immer die von BF.
-
1:15 war mein Rekord, ist aber auch schon gut 2 Jahre her Und altmodisch sidn die Dinger bestimmt nicht, ich lös den heute noch aus langeweile^^.
-
Wieso willst du denn die Grafiken in einer Txt als Binärcode abspeichern? Wenn es "Schützen" soll die Dateien zu modden dann ist es nicht sehr gut (Und für dich schwerer zu bearbeiten)
Ich empfehle die 1-Bild Methode (Hab ja auch mal eine kleine UDF dafür gepostet ) Aber je nach größe des Bildes kann es dann schon eine Weile dauern bis alle Pixel durchlaufen sind. Für ein Bild mit 30 kleinen Bildern die alle 500x500 Pixel haben bräuchte meine Funktion sicher sehr lange. Es gibt natürlich die Möglichkeit das alles über FASM etc zu verschnellern. -
Wie die Zeit vergeht^^ herzlichen Glückwunsch, feier schön und lass es dir gut gehn.
-
GDI+? GUIImage? Als GUI? In Einem GUI? Bitte mehr Infos!!
In GDI+ musst du es einfach als letztes malen, da du dann über alles malst.
-
[autoit]
GUISetState(@SW_MINIMIZE)
[/autoit] -
Die angaben der Position einfach leer lassen oder auf Default stellen.
-
Herzlichen Glückwunsch, feier schön, lass dich feiern und hab Spaß
-
Zur Optimierung eig. nichts direktes, aber um den Rechner nicht unnötig zu belasten würde ich nicht While 1 benutzen sondern Whole Sleep (30) oder so, das verringert die Belastung sehr.
-
Hab das hier grade gefunden: http://de.wikipedia.org/wiki/Registrierungsdatenbank
Ich denke mal im Abschnitt Nachteile werden ein paar deiner Fragen beantwortet. Ob der PC jedoch Schäden dadurch bekommen kann weiß ich nicht, tut mir Leid. -
Einfach mal die SuFu benutzen, da kommen 10000 treffer...
[autoit]
Ich antworte jetzt noch aus Höflichkeit:
Wenn (Nach deiner leider sehr kurzen Beschreibung) ein AU3 Script die Exen starten soll dann musst du mit einer If Frage immer gucken ob die derzeitige Uhrzeit (@Hour, @Min, @Sec) einen gewissen Wert beträgt z.B. um 3 Uhr morgens:If @Hour = 3 and @Min = 0 Then Run ();; Oder auch ShellExecute
[/autoit]
Zu beachten ist, das du eine Art "Schalter" einbaust die verhindert das die Exe eine Minute lang geöffnet wird. -
Das mit Dec() ist wirklich nicht sehr toll gemacht, du musst das 0x aus dem String entfernen (StringReplace ($sHex, "0x", "")) und dann einfach den Hinterteil an Dec übergeben. Dec ("0C") sollte... 12 sein oder so
-
Les dir am besten mal das GDI+ Tut von Ubuntu durch und schau dir
[autoit]GUIRegisterMsg ( msgID, "function" )
[/autoit]mit WM_PAINT als msgID an, dadurch kannst du immer malen wenn Das Fenster sich bewegt oder so.
Gdi+ Tutorial [Part 5] -