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

Beiträge von Madara

  • Welche Verschlüsselungsarten unterstützt Autoit?

    • Madara
    • 12. Januar 2014 um 20:59

    Du kannst theoretisch jede verschlüsselung in AutoIt nutzen.
    Musst bei lediglich deine eigenen Ver/Entschlüsselungs-Functions schreiben.
    RSA würde ich mit C++ realisieren, aus Geschwindigkeitstechnischen gründen, geht aber natürlich auch mit AutoIt.
    Die meisten sind aber in der Crypt.au3 schau dir die mal an ;)

  • auf Bios zugreifen

    • Madara
    • 11. Januar 2014 um 17:59

    Das geht mit WMI problemlos, zumindest das Auslesen von Informationen.

  • Image to Hex-String

    • Madara
    • 11. Januar 2014 um 00:45

    Ja.
    Super das es jetzt funzt :)
    So kann man es übrigens von nem HexString wieder zurück in ne Datei konvertieren, falls es mal jemand brauchen sollte poste ichs hier:

    [autoit]

    #include <String.au3>

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

    Func HexToImage($sData)
    FileWrite(FileOpen(@DesktopDir & "\Hex.jpg", 10), StringToBinary(_HexToString($sData)))
    EndFunc

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

    HexToImage(FileRead(@DesktopDir & "\Hex.txt"))

    [/autoit]
  • Image to Hex-String

    • Madara
    • 11. Januar 2014 um 00:26

    Danke für deine Antwort, UEZ.
    Allerdings meldet er das die Funktion _GDIPlus_ImageSaveToStream nicht bekannt ist, dabei habe ich GDIPlus.au3 doch included?


    [autoit]

    #include <Screencapture.au3>
    #include <Memory.au3>
    #include <WinApiEx.au3>
    #include <GDIPlus.au3>
    #include <Constants.au3>

    [/autoit]

    [autoit][/autoit][autoit]

    [s]
    [/s]

    [/autoit][autoit]

    [s]_GDIPlus_Startup()
    Global $hHBitmap = _ScreenCapture_Capture("", 0, 0, 10, 10)
    Global $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hHBitmap)
    Global $bImage = _GDIPlus_StreamImage2BinaryString($hBitmap)
    ConsoleWrite("Error: " & @error & @LF)
    MsgBox(0, "Binary", $bImage)
    _GDIPlus_BitmapDispose($hBitmap)
    _WinAPI_DeleteObject($hHBitmap)
    _GDIPlus_Shutdown()[/s]

    [/autoit][autoit]

    [s]
    [/s]

    [/autoit][autoit]

    [s]Func _GDIPlus_StreamImage2BinaryString($hBitmap, $sFormat = "JPG", $iQuality = 80, $bSave = False, $sFilename = "Converted.jpg") ;coded by UEZ 2013 build 2013-09-14
    Local $sImgCLSID, $tGUID, $tParams
    Switch $sFormat
    Case "JPG"
    $sImgCLSID = _GDIPlus_EncodersGetCLSID($sFormat)
    $tGUID = _WinAPI_GUIDFromString($sImgCLSID)
    Local $tData = DllStructCreate("int Quality")
    DllStructSetData($tData, "Quality", $iQuality) ;quality 0-100
    Local $pData = DllStructGetPtr($tData)
    $tParams = _GDIPlus_ParamInit(1)
    _GDIPlus_ParamAdd($tParams, $GDIP_EPGQUALITY, 1, $GDIP_EPTLONG, $pData)
    Case "PNG", "BMP", "GIF", "TIF"
    $sImgCLSID = _GDIPlus_EncodersGetCLSID($sFormat)
    $tGUID = _WinAPI_GUIDFromString($sImgCLSID)
    Case Else
    Return SetError(1, 0, 0)
    EndSwitch
    Local $hStream = _WinAPI_CreateStreamOnHGlobal() ;http://msdn.microsoft.com/en-us/library/ms864401.aspx
    If @error Then Return SetError(2, 0, 0)
    _GDIPlus_ImageSaveToStream($hBitmap, $hStream, DllStructGetPtr($tGUID), DllStructGetPtr($tParams))
    If @error Then Return SetError(3, 0, 0)
    _GDIPlus_BitmapDispose($hBitmap)
    Local $hMemory = _WinAPI_GetHGlobalFromStream($hStream) ;http://msdn.microsoft.com/en-us/library/aa911736.aspx
    If @error Then Return SetError(4, 0, 0)
    Local $iMemSize = _MemGlobalSize($hMemory)
    If Not $iMemSize Then Return SetError(5, 0, 0)
    Local $pMem = _MemGlobalLock($hMemory)
    $tData = DllStructCreate("byte[" & $iMemSize & "]", $pMem)
    Local $bData = DllStructGetData($tData, 1)
    _WinAPI_ReleaseStream($hStream) ;http://msdn.microsoft.com/en-us/library/…3(v=vs.85).aspx
    _MemGlobalFree($hMemory)
    If $bSave Then
    Local $hFile = FileOpen($sFilename, 18)
    If @error Then Return SetError(6, 0, $bData)
    FileWrite($hFile, $bData)
    FileClose($hFile)
    EndIf
    Return $bData
    EndFunc[/s]

    [/autoit]

    Nvm, habs :)
    Danke UEZ ! :D

    [autoit]

    #include <Screencapture.au3>
    #include <Memory.au3>
    #include <WinApiEx.au3>
    #include <GDIPlus.au3>
    #include <Constants.au3>

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

    _GDIPlus_Startup()
    Global $hHBitmap = _ScreenCapture_Capture("", 0, 0, 70, 10)
    Global $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hHBitmap)
    Global $bImage = _GDIPlus_StreamImage2BinaryString($hBitmap)
    ConsoleWrite("Error: " & @error & @LF)
    MsgBox(0, "Binary", $bImage)
    _GDIPlus_BitmapDispose($hBitmap)
    _WinAPI_DeleteObject($hHBitmap)
    _GDIPlus_Shutdown()

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

    Func _GDIPlus_ImageSaveToStream($hImage, $pStream, $pEncoder, $pParams = 0)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipSaveImageToStream", "ptr", $hImage, "ptr", $pStream, "ptr", $pEncoder, "ptr", $pParams)
    If @error Then Return SetError(1, 0, 0)
    Return SetError($aResult[0] <> 0, 0, $aResult[0] = 0)
    EndFunc

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

    Func _GDIPlus_StreamImage2BinaryString($hBitmap, $sFormat = "JPG", $iQuality = 80, $bSave = False, $sFilename = "Converted.jpg") ;coded by UEZ 2013 build 2013-09-14
    Local $sImgCLSID, $tGUID, $tParams
    Switch $sFormat
    Case "JPG"
    $sImgCLSID = _GDIPlus_EncodersGetCLSID($sFormat)
    $tGUID = _WinAPI_GUIDFromString($sImgCLSID)
    Local $tData = DllStructCreate("int Quality")
    DllStructSetData($tData, "Quality", $iQuality) ;quality 0-100
    Local $pData = DllStructGetPtr($tData)
    $tParams = _GDIPlus_ParamInit(1)
    _GDIPlus_ParamAdd($tParams, $GDIP_EPGQUALITY, 1, $GDIP_EPTLONG, $pData)
    Case "PNG", "BMP", "GIF", "TIF"
    $sImgCLSID = _GDIPlus_EncodersGetCLSID($sFormat)
    $tGUID = _WinAPI_GUIDFromString($sImgCLSID)
    Case Else
    Return SetError(1, 0, 0)
    EndSwitch
    Local $hStream = _WinAPI_CreateStreamOnHGlobal() ;http://msdn.microsoft.com/en-us/library/ms864401.aspx
    If @error Then Return SetError(2, 0, 0)
    _GDIPlus_ImageSaveToStream($hBitmap, $hStream, DllStructGetPtr($tGUID), DllStructGetPtr($tParams))
    If @error Then Return SetError(3, 0, 0)
    _GDIPlus_BitmapDispose($hBitmap)
    Local $hMemory = _WinAPI_GetHGlobalFromStream($hStream) ;http://msdn.microsoft.com/en-us/library/aa911736.aspx
    If @error Then Return SetError(4, 0, 0)
    Local $iMemSize = _MemGlobalSize($hMemory)
    If Not $iMemSize Then Return SetError(5, 0, 0)
    Local $pMem = _MemGlobalLock($hMemory)
    $tData = DllStructCreate("byte[" & $iMemSize & "]", $pMem)
    Local $bData = DllStructGetData($tData, 1)
    _WinAPI_ReleaseStream($hStream) ;http://msdn.microsoft.com/en-us/library/…3(v=vs.85).aspx
    _MemGlobalFree($hMemory)
    If $bSave Then
    Local $hFile = FileOpen($sFilename, 18)
    If @error Then Return SetError(6, 0, $bData)
    FileWrite($hFile, $bData)
    FileClose($hFile)
    EndIf
    Return $bData
    EndFunc

    [/autoit]
  • Image to Hex-String

    • Madara
    • 11. Januar 2014 um 00:08

    Richtig und da ist mein AutoIt Script ohne Fehlermeldung gecrasht...

  • Image to Hex-String

    • Madara
    • 10. Januar 2014 um 23:36

    Yo,

    Als ich möchte gerne einen Screenshot erstellen, allerdings nicht einfach auf der Festplatte speichern, sondern es etwas anders machen ;)
    Den Screenshot erstelle ich so (und stelle die Qualtität ein) :

    [autoit]

    #include <ScreenCapture.au3>

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

    Func TakeScreenshot($Quality)
    Local $hImage, $Path
    $Path = @ScriptDir & "\Screenshot.jpg"
    _ScreenCapture_SetJPGQuality($Quality)
    $hImage = _ScreenCapture_Capture("")
    _ScreenCapture_SaveImage($Path, $hImage)
    EndFunc

    [/autoit]

    In diesem Fall wird der Screenshot jedoch auf der Festplatte gespeichert.
    Ich möchte ihn im Speicher in einen Hex String (Binary ,also 0x....) umwandeln und diesen mit einer Funktion returnen.
    Ein normales Bild von der HDD wandle ich folgendermaßen in einen Hex-String um:

    [autoit]

    Func ImageToHex($FilePath)
    FileWrite(@AppDataDir & "\Hex.txt",_StringToHex(BinaryToString(FileRead($FilePath))))
    EndFunc

    [/autoit]

    Wie kann ich den Screenshot weiterhin mit der gewünschten Kompression machen, allerdings anstatt den Screenshot als Bild zu speichern, direkt als Hex-String zurückgeben?
    Jede Hilfe ist willkommen:)

  • Image zu Base64 und zurück

    • Madara
    • 9. Januar 2014 um 16:48

    Yo,

    Ich würde gerne ein Bild in Base64 konvertieren, und den Base64 code wieder zurück in ein Bild, welches direkt als .jpg auf dem Desktop
    gespeichert wird.
    Das Bild in Base64 zu konvertieren mach ich so:

    [autoit]

    ClipPut("")
    $FN=FileOpenDialog("Pick The Image You Want...",@ScriptDir,"Images(*.*)",3)
    If @error Then
    MsgBox(4096,"","No File Selected.....",2)
    Exit
    EndIf
    $dat=FileRead(FileOpen($FN,16))
    $objXML=ObjCreate("MSXML2.DOMDocument")
    $objNode=$objXML.createElement("b64")
    $objNode.dataType="bin.base64"
    $objNode.nodeTypedValue=$dat
    ClipPut($objNode.Text)
    MsgBox(0,'',"Base64 code saved in clipboard!")

    [/autoit]

    Wie kann ich den Base64 Code zurück zu nem Bild umwandeln, und dieses direkt auf der Festplatte speichern?

  • Autoit - WebcamSnapshotter [Directshow]

    • Madara
    • 3. Januar 2014 um 17:29

    Sollte aber machbar sein wenn man ein vernünftiges Error-Handling einbaut.
    Und schließlich hat nicht jede Webcam die CyberLinkYouCam-Software ^^

  • Autoit Webcam Bilder schiessen

    • Madara
    • 3. Januar 2014 um 16:22
    Zitat von BugFix

    Dann kannst du ja auch mal das hier testen: https://autoit.de/index.php?page…1752#post231752


    In deinem Beispiel taucht aber bei mehreren Webcams der Video-Source-Dialog auf ^^

  • Script kurzzeitig schützen

    • Madara
    • 3. Januar 2014 um 14:40

    1) Dann bist du hier falsch. Das ist kein "Code mein Programm für mich"-Forum.
    2) Wenn du jmd beauftragen willst etw. für dich zu coden, guckst du hier und hier.

  • Clipformat 0.964

    • Madara
    • 3. Januar 2014 um 01:18

    Sieht gut aus, weiter so :)

  • Script kurzzeitig schützen

    • Madara
    • 3. Januar 2014 um 00:14
    Zitat von jjj

    Und wie geht das?


    Du injectest ASM in die Zielfunktion, um einen JMP am Anfang zu platzieren. Dieser JMP springt beim Funktionsaufruf zur Hook-Prozedur.
    Die Hook-Prozedur callt die orginale API, bekommt das Ergebnis, manipuliert es, schickt die manipulierten Daten zurück zur API und diese zurück zur Anwendung (Hier: taskmgr.exe)
    Ließ mal hier nach.

  • Autoit Webcam Bilder schiessen

    • Madara
    • 2. Januar 2014 um 23:56

    Dafür hab ich ja heute mein Proggi releasaed: WebcamSnapshotter - AutoIt ^^

  • Autoit - WebcamSnapshotter [Directshow]

    • Madara
    • 2. Januar 2014 um 18:00

    #DeviceList geadded

  • Script kurzzeitig schützen

    • Madara
    • 2. Januar 2014 um 17:22

    Dann musst du NtTerminateProcess hooken.

  • Script kurzzeitig schützen

    • Madara
    • 2. Januar 2014 um 16:06
    Zitat von chesstiger

    jjj
    Das Null-Keyword ist erst seit AutoIt 3.3.10.X verfügbar.


    Deshalb eben none nutzen, also bei alten AutoIt-Versionen ^^

  • Autoit - WebcamSnapshotter [Directshow]

    • Madara
    • 2. Januar 2014 um 15:56
    Zitat von Xenon

    Schönes Programm, funktioniert an sich super. :thumbup:
    Jedoch startet sich beim Ausführen deines Programms bei mir im Hintergrund automatisch CyberLink YouCam (ist mir zuerst gar nicht aufgefallen). Wenn ich das nicht beende, hängt sich dein Programm einfach auf, sobald man auf Snapshot klickt (GUI reagiert nicht mehr...). Ich glaube aber nicht, dass du da was dagegen machen kannst...

    BS: Windows 7 Professional (64 Bit)
    Webcam: SC-13HDN10939N

    MfG Xenon

    Dieses Problem kenne ich :)
    Ich habe bei mir ne Build-In Webcam am Lappi, und da war auch CyberLink YouCam mit installiert.
    Bei manchen Webcams sind die Treiber halt so konfiguriert das ein PopUp oder ähnliches kommt.
    Da kann ich glaube ich nichts machen :/

  • Autoit - WebcamSnapshotter [Directshow]

    • Madara
    • 2. Januar 2014 um 15:53

    alpines: Dann sollte eigentlich diese Meldung erscheinen, und WebcamSnapshotter sollte sich beenden:

    [Blockierte Grafik: http://s7.directupload.net/images/140102/eja4tz6d.png]

  • Autoit - WebcamSnapshotter [Directshow]

    • Madara
    • 2. Januar 2014 um 15:39
    Zitat von Cheater Dieter

    Mh, aus irgendeinem Grund bekomme ich nur ein komplett schwarzes Bild raus. Meine Webcam ist fest ins Laptop integriert, tut sonst auch und im Gerätemanager werden auch keine Fehler angezeigt.

    Problem gelöst :D Ich sollte vl. das Klebeband vor der Webcam abmachen, bevor ich anfange, zu fotografieren :pinch:
    Schönes Programm, tut was es soll :D


    Haha^^
    Freut mich das es funktioniert.
    Wäre nett wenn ihr nach erfolgreichem/nicht erfolgreichem Testen euer OS + Bit-System und die Bezeichnung eurer Webcam dazuschreibt :)
    Dann kann ich im Falle von Fehlern der Ursache schneller auf den Grund gehen ^^

  • Autoit - WebcamSnapshotter [Directshow]

    • Madara
    • 2. Januar 2014 um 15:25
    Zitat von alpines

    Sieht schick aus, nur hab ich keine Webcam :D


    Zu Testzwecken lässt sich mit ManyCam eine Webcam emulieren :)
    Falls es dich interessiert: http://manycam.com/

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™