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. name22

Beiträge von name22

  • [Ideen-Sammlung] Computerfernsteuerung

    • name22
    • 9. Mai 2010 um 23:13

    Ich würde auch gern mithelfen falls ihr mich braucht :D. Um Pixelveränderungen zu überprüfen könnte man vielleicht mit Checksummen arbeiten. ?(

  • GDI+ ImageCrypt

    • name22
    • 9. Mai 2010 um 21:37
    Zitat

    wie kommt man nur auf sowas :whistling:


    Viiiieeel Langeweile, und den ständigen Drang in jedes Script ein #include<GDIPlus.au3> an den Anfang zu setzen. :rofl:

  • GDI+ ImageCrypt

    • name22
    • 9. Mai 2010 um 21:33
    Zitat

    also diese punkte beeinhalten den string oda wie?


    Ja, die Punkte sind der String. Jeder Punkt steht für ein Zeichen. ;)

  • Do Schleife wird nicht verlassen???

    • name22
    • 9. Mai 2010 um 21:32
    Zitat

    Aber is an der stelle unnütz


    Deswegen ja: "Nichts". ^^ Was die normalerweise bringen weiß ich schon. :rolleyes:

  • GDI+ ImageCrypt

    • name22
    • 9. Mai 2010 um 21:29
    Zitat

    ich begreifs nich xD
    iwie macht es punkte xD


    Gut beobachtet...
    Es wandelt einen beliebigen String mit einem Schlüssel in ein Bild um und kann auch ein Bild mit diesem Schlüssel wieder in Stringform bringen.
    Was das bringt? Keine Ahnung, aber mir war langweilig :P.

  • Higggiii stellt sich vor!

    • name22
    • 9. Mai 2010 um 21:27

    Von mir auch ein verspätetes herzliches Willkommen. :D

  • GDI+ ImageCrypt

    • name22
    • 9. Mai 2010 um 21:25
    Zitat

    Ähm, meines Wissens nach kann man ein Bild einfach per FileRead auslesen und dann mit der passenden Endung per filewrite abspeichern...


    Hast du dir mal angesehen was mein Script überhaupt macht? :D

  • Do Schleife wird nicht verlassen???

    • name22
    • 9. Mai 2010 um 21:24
    Zitat

    Was bringen die Klammern?


    Nichts :P.

  • GDI+ ImageCrypt

    • name22
    • 9. Mai 2010 um 21:19

    Mit dieser UDF kann man Strings in Bildform umwandeln und selbstverständlich auch wieder zurück ;). Ein Schlüssel kann zufällig erstellt, in einer Datei abgespeichert oder aus einer Datei eingelesen werden.
    Alle Funktion sind beschrieben und ein Beispiel ist auch mit dabei.
    Und wieder wird die GDIP.au3 benötigt... :D
    Die GDIP.au3, die UDF und ein Beispiel befinden sich im Anhang.

    UDF:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ImageCrypt_GenerateImage
    ; Beschreibung ..: Erstellt eine Bitmap aus den angegebenen Daten und dem angegebenen Schlüssel. Benötigt: '#include <GDIP.au3>'
    ; Syntax ........: _ImageCrypt_GenerateImage($sData, $aColorKey, $iCryptImageSize, [$sFilePath = ""])
    ; Parameter .....: $sData - Die Daten die in die Bitmap geschrieben werden
    ; $aColorKey - Array das den Schlüssel enthält
    ; $iCryptImageSize - Höhe/Breite der Bitmap
    ; $sFilePath - [Optional] Speicherort der Bitmap (Wird ein leerer String "" angegeben, gibt die Funktion ein Bitmap Handle zurück
    ; Rückgabewerte .: Success - Gibt ein Bitmap Handle bzw. den Rückgabewert von _GDIPlus_ImageSaveToFile zurück
    ; Failure - -1 und setzt @error
    ; |@error = 1 - $sData ist ein leerer String
    ; |@error = 2 - $aColorKey ist kein Array
    ; |@error = 3 - Der Datenstrang ist zu groß für die Bitmap
    ; Bemerkungen ...: Benötigt _GDIPlus_Startup. Das Bild darf nicht verkleinert/vergrößert oder komprimiert werden, da es sonst nicht mehr korrekt entschlüsselt werden kann
    ; ===============================================================================================================================
    Func _ImageCrypt_GenerateImage($sData, $aColorKey, $iCryptImageSize, $sFilePath = "")
    If $sData = "" Then Return SetError(1, 0, -1)
    If Not IsArray($aColorKey) Then Return SetError(2, 0, -1)

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

    Local $aDataSplit = StringSplit($sData, "")
    If $aDataSplit[0] > $iCryptImageSize ^ 2 Then Return SetError(3, 0, -1)

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

    Local $hCryptGraphicsTmp = _GDIPlus_GraphicsCreateFromHWND(WinGetHandle(AutoItWinGetTitle()))
    Local $hCryptBitmapTmp = _GDIPlus_BitmapCreateFromGraphics($iCryptImageSize, $iCryptImageSize, $hCryptGraphicsTmp)
    Local $hBitmapGraphicsContextTmp = _GDIPlus_ImageGetGraphicsContext($hCryptBitmapTmp)

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

    _GDIPlus_GraphicsClear($hBitmapGraphicsContextTmp, 0xFFFFFFFF)

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

    Local $iJ = 0
    For $iY = 0 To $iCryptImageSize - 1
    For $iX = 0 To $iCryptImageSize - 1
    $iJ += 1
    For $iI = 1 To $aColorKey[0][0]
    If $iJ > $aDataSplit[0] Then ExitLoop 3
    If $aDataSplit[$iJ] == $aColorKey[$iI][0] Then
    _GDIPlus_BitmapSetPixel($hCryptBitmapTmp, $iX, $iY, "0xFF" & $aColorKey[$iI][1])
    ExitLoop
    EndIf
    Next
    Next
    Next

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

    _GDIPlus_GraphicsDispose($hCryptGraphicsTmp)
    _GDIPlus_GraphicsDispose($hBitmapGraphicsContextTmp)

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

    If $sFilePath <> "" Then
    Local $iReturn = _GDIPlus_ImageSaveToFile($hCryptBitmapTmp, $sFilePath)
    _GDIPlus_BitmapDispose($hCryptBitmapTmp)
    Return $iReturn
    EndIf
    Return $hCryptBitmapTmp
    EndFunc ;==>_ImageCrypt_GenerateImage

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ImageCrypt_DecryptImage
    ; Beschreibung ..: Entschlüsselt ein Bild mit dem angegebenen Schlüssel. Benötigt: '#include <GDIP.au3>'
    ; Syntax ........: _ImageCrypt_DecryptImage($sImagePath, $aColorKey, [$iCryptImageSize = 0])
    ; Parameter .....: $sImagePath - Die Daten die in die Bitmap geschrieben werden
    ; $aColorKey - Array das den Schlüssel enthält
    ; $iCryptImageSize - [Optional] Höhe/Breite der Bitmap. Falls 0, so wird die Größe mit _GDIPlus_ImageGetWidth ausgelesen
    ; Rückgabewerte .: Success - Gibt den entschlüsselten Datenstrang zurück
    ; Failure - -1 und setzt @error
    ; |@error = 1 - $sImagePath ist ein leerer String
    ; |@error = 2 - $aColorKey ist kein Array
    ; Bemerkungen ...: Benötigt _GDIPlus_Startup.
    ; ===============================================================================================================================
    Func _ImageCrypt_DecryptImage($sImagePath, $aColorKey, $iCryptImageSize = 0)
    If $sImagePath = "" Then Return SetError(1, 0, -1)
    If Not IsArray($aColorKey) Then Return SetError(2, 0, -1)

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

    Local $hCryptBitmapTmp = _GDIPlus_BitmapCreateFromFile($sImagePath)
    If $iCryptImageSize <= 0 Then $iCryptImageSize = _GDIPlus_ImageGetWidth($hCryptBitmapTmp)

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

    Local $sReturnData = ""
    For $iY = 0 To $iCryptImageSize - 1
    For $iX = 0 To $iCryptImageSize - 1
    $iPixelColorTmp = StringTrimLeft(Hex(_GDIPlus_BitmapGetPixel($hCryptBitmapTmp, $iX, $iY)), 2)
    If $iPixelColorTmp = "FFFFFF" Then ExitLoop 2
    For $i = 1 To $aColorKey[0][0]
    If $iPixelColorTmp == $aColorKey[$i][1] Then
    $sReturnData &= $aColorKey[$i][0]
    ExitLoop
    EndIf
    Next
    Next
    Next

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

    _GDIPlus_BitmapDispose($hCryptBitmapTmp)

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

    Return $sReturnData
    EndFunc ;==>_ImageCrypt_DecryptImage

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ImageCrypt_CreateRandomKey
    ; Beschreibung ..: Erstellt einen zufälligen Schlüssel für die spätere Verwendung
    ; Syntax ........: _ImageCrypt_CreateRandomKey()
    ; Parameter .....: Keine
    ; Rückgabewerte .: Success - Gibt den erstellten Schlüssel zurück
    ; Failure - ""
    ; Bemerkungen ...: Keine
    ; ===============================================================================================================================
    Func _ImageCrypt_CreateRandomKey()
    Local $aRandomKey[102][2]
    $aRandomKey[0][0] = 101
    For $i = 1 To 26
    $aRandomKey[$i][0] = Chr($i + 64)
    Next
    For $i = 27 To 52
    $aRandomKey[$i][0] = Chr($i + 70)
    Next
    For $i = 53 To 62
    $aRandomKey[$i][0] = Chr($i - 5)
    Next
    $aRandomKey[63][0] = " "
    $aRandomKey[64][0] = "?"
    $aRandomKey[65][0] = "!"
    $aRandomKey[66][0] = "."
    $aRandomKey[67][0] = ","
    $aRandomKey[68][0] = ";"
    $aRandomKey[69][0] = ":"
    $aRandomKey[70][0] = "("
    $aRandomKey[71][0] = ")"
    $aRandomKey[72][0] = '"'
    $aRandomKey[73][0] = "'"
    $aRandomKey[74][0] = "%"
    $aRandomKey[75][0] = "&"
    $aRandomKey[76][0] = "$"
    $aRandomKey[77][0] = "ß"
    $aRandomKey[78][0] = "="
    $aRandomKey[79][0] = "+"
    $aRandomKey[80][0] = "-"
    $aRandomKey[81][0] = "_"
    $aRandomKey[82][0] = "*"
    $aRandomKey[83][0] = "/"
    $aRandomKey[84][0] = "\"
    $aRandomKey[85][0] = "@"
    $aRandomKey[86][0] = "#"
    $aRandomKey[87][0] = "~"
    $aRandomKey[88][0] = "{"
    $aRandomKey[89][0] = "}"
    $aRandomKey[90][0] = "§"
    $aRandomKey[91][0] = "^"
    $aRandomKey[92][0] = "°"
    $aRandomKey[93][0] = "<"
    $aRandomKey[94][0] = ">"
    $aRandomKey[95][0] = "|"
    $aRandomKey[96][0] = "ä"
    $aRandomKey[97][0] = "ö"
    $aRandomKey[98][0] = "ü"
    $aRandomKey[99][0] = "Ä"
    $aRandomKey[100][0] = "Ö"
    $aRandomKey[101][0] = "Ü"
    For $i = 1 To 101
    Do
    $bUnique = True
    $aRandomKey[$i][1] = Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2)
    For $j = 1 To 101
    If $j <> $i And $aRandomKey[$j][1] = $aRandomKey[$i][1] Or $aRandomKey[$i][1] = "FFFFFF" Then $bUnique = False
    Next
    Until $bUnique
    Next
    Return $aRandomKey
    EndFunc ;==>_ImageCrypt_CreateRandomKey

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ImageCrypt_SaveKeyToFile
    ; Beschreibung ..: Speichert einen Schlüssel in einer Datei
    ; Syntax ........: _ImageCrypt_SaveKeyToFile($aColorKey, $sFilePath)
    ; Parameter .....: $aColorKey - Der Schlüssel der gespeichert werden soll
    ; $sFilePath - Pfad zur Zieldatei
    ; Rückgabewerte .: Success - 1
    ; Failure - -1 und setzt @error
    ; |@error = 1 - $sFilePath ist ein leerer String
    ; |@error = 2 - $aColorKey ist kein Array
    ; Bemerkungen ...: Falls die Datei bereits existiert wird ihr Inhalt überschrieben
    ; ===============================================================================================================================
    Func _ImageCrypt_SaveKeyToFile($aColorKey, $sFilePath)
    If Not IsArray($aColorKey) Then Return SetError(2, 0, -1)
    If $sFilePath = "" Then Return SetError(1, 0, -1)

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

    $hCryptKeyFile = FileOpen($sFilePath, 2)
    If $hCryptKeyFile = -1 Then Return SetError(3, 0, -1)

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

    $sKeyTmp = ""
    For $iI = 1 To $aColorKey[0][0]
    $sKeyTmp &= $aColorKey[$iI][0] & "=" & $aColorKey[$iI][1] & ";"
    Next
    FileWrite($hCryptKeyFile, StringTrimRight($sKeyTmp, 1))
    FileClose($hCryptKeyFile)
    $sKeyTmp = ""

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

    Return 1
    EndFunc

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ImageCrypt_LoadKeyFromFile
    ; Beschreibung ..: Lädt einen Schlüssel aus einer Datei
    ; Syntax ........: _ImageCrypt_LoadKeyFromFile($sFilePath)
    ; Parameter .....: $sFilePath - Pfad zur Datei
    ; Rückgabewerte .: Success - Gibt den Schlüssel aus der Datei zurück
    ; Failure - -1 und setzt @error
    ; |@error = 1 - $sFilePath ist ein leerer String
    ; Bemerkungen ...: Keine
    ; ===============================================================================================================================
    Func _ImageCrypt_LoadKeyFromFile($sFilePath)
    If $sFilePath = "" Then Return SetError(1, 0, -1)

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

    $aKeySplitTmp = StringSplit(FileRead($sFilePath), ";")
    Local $aColorKey[$aKeySplitTmp[0] + 1][2]
    $aColorKey[0][0] = $aKeySplitTmp[0]

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

    For $i = 1 To $aColorKey[0][0]
    $aSplitTmp = StringSplit($aKeySplitTmp[$i], "=", 2)
    $aColorKey[$i][0] = $aSplitTmp[0]
    $aColorKey[$i][1] = $aSplitTmp[1]
    Next

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

    Return $aColorKey
    EndFunc

    [/autoit]


    Ich hoffe es hilft irgendjemandem bei... was auch immer... :D

    Und so sieht das nachher aus:

    Dateien

    ImageCrypt + GDIP + Beispiel.zip 97,64 kB – 361 Downloads test.bmp 454 Byte – 377 Downloads
  • [Ideen-Sammlung] Computerfernsteuerung

    • name22
    • 9. Mai 2010 um 20:23
    Zitat

    Du kannst das Bild per _FileRead auslesen


    Zu langsam :P. Wenn dann direkt im Speicher verschlüsseln und als String verschicken.
    Vielleicht könnte man die Überprüfung ob sich im Bild bestimmte Pixel verändert haben in eine DLL auslagern... ?(

  • Neue Spamart: Spams über Skype

    • name22
    • 9. Mai 2010 um 15:59

    Ein Bekannter hat mal wegen seines Handyvertrages (kein Scherz) SMSe von einer gewissen "Olga" bekommen die sich scheinbar sehr für ein Treffen engagierte. :D
    Also ich könnte das ja verstehen wenn man z.B. auf diese Jamba Werbung am Seitenrand hereinfällt, aber durch einen "seriösen" Vertragsanbieter? 8|

  • Client Position eines Fensters!

    • name22
    • 9. Mai 2010 um 15:05
    Zitat von name22

    Ich hab ja gesagt du musst das irgendwie mit WinGetPos kombinieren...


    Das wäre jetzt das dritte Mal :rolleyes: ...

  • Neue Spamart: Spams über Skype

    • name22
    • 9. Mai 2010 um 15:02

    Wenn ich da an meine Müll Email denke... :D
    Erst letztens habe ich wieder eine gekriegt in dem mir irgendwelche "asiatischen" "Frauen" Bilder von sich geschickt haben und eigenartigerweise alle sehr europäisch aussehen... :rolleyes:

  • Variablenübergabe von laufenden Script an laufendes Script

    • name22
    • 9. Mai 2010 um 13:52
    Zitat

    Ok, dann bitte einen Tip. Steh am Schlauch.


    Du kannst z.B. beide Scripts aus seinem Post kombinieren ;). Das erste Beispiel von ihm ließt Daten aus einem Script das zweite sendet Daten an ein Script.

  • Variablenübergabe von laufenden Script an laufendes Script

    • name22
    • 9. Mai 2010 um 13:47
    Zitat

    Wenn ich´s richtig verstanden habe, würde das doch auch nur von Script1 nach Script2 funktionieren, aber nicht andersrum, oder ?


    Doch, klar würde das gehen ;). Schau dir sein Script noch einmal an.

  • Variablenübergabe von laufenden Script an laufendes Script

    • name22
    • 9. Mai 2010 um 13:17
    Zitat

    Funktioniert nur bei AutoIt Scripten die mit Run bzw. RunWait aufgerufen werden. Wenn´s stimmt, dann bringt´s mir nix, da Script1 läuft, Script2 zwar per Run gestartet wird, aber Script2 soll ja Werte an Script1 übergeben, welches ja nicht mit Run gestartet wurde.


    Dann mach es über eine Ini oder eine Textdatei oder die Registry oder TCP... Es gibt genug Möglichkeiten ;).

    eukalyptus Darauf wäre ich nicht gekommen... Genial danke! :D (Das kann ich auch noch gebrauchen).

  • Variablenübergabe von laufenden Script an laufendes Script

    • name22
    • 9. Mai 2010 um 12:56
    Zitat

    Ne, nur Spass. Funktioniert halt nicht der Link. Hattest Programme + kommunizieren als Suchbegriff, oder


    Jup :D .
    Im ersten Ergebnis steht genau das wonach du suchst ;).

  • Variablenübergabe von laufenden Script an laufendes Script

    • name22
    • 9. Mai 2010 um 12:37
    Zitat

    Sag ja immer, dass mich dir Forensuch nicht mag. Hab vorher gesucht, naja, und nix gefunden. Egal, dank dir


    Wenn man weiß nach was man suchen muss ;).

  • "Herausgeber: Unbekannt" ÄNDERN!

    • name22
    • 9. Mai 2010 um 12:20

    Ich bin mir nicht sicher ob das damit geht und kamm mir kaum vorstellen, dass Microsoft das möchte ;).
    Schließlich könnte dann jeder "trottel" seinen Spaßvirus als verifiziertes Programm anzeigen lassen und seine eigene Signatur einblenden. :D

  • Variablenübergabe von laufenden Script an laufendes Script

    • name22
    • 9. Mai 2010 um 12:18

    Verwende EnvSet und EnvGet ;).
    Solche Threads gibt es hier zu genüge, benutze einfach mal die Forensuche.

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™