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

Beiträge von Jantastic

  • RSA Verschlüsselung per DLL

    • Jantastic
    • 13. April 2015 um 20:32

    Hallo Community,

    ich arbeite Momentan an einem Client-Server Projekt welches über das Internet Daten verschickt, diese möchte ich gerne hybrid verschlüsseln. Der symetrische Part dabei macht mir keine Probleme, mehr die RSA-Verschlüsselung für den symetrischen Key.
    Dabei bin ich neben der DLL von peethebee aus dem Jahre 2007 (die man mittlerweile nicht mehr downloaden kann) nur auf diesen Thread gestoßen. Also hab ich mich versucht mit dieser DLL-Datei ein Schlüsselpaar zu generieren, und einen Text mit dem öffentlichen Schlüssel zu verschlüsseln. Jedoch, bin ich mir nicht sicher wie ich den DllCall gestalten soll, villeicht kann mir da einer von euch weiterhelfen der sich schon mehr damit beschäftigt hat.

    Funktionsheader zu RSA_encrpt:
    unsigned long __stdcall RSA_encrypt(unsigned char *source, unsigned long source_size,
    unsigned char *result, unsigned long result_size,
    unsigned char *pubkey_content, unsigned long pubkey_content_size)


    Wie muss ich den DllCall Aufruf gestalten, das die Funktions ordnungsgemäß funktioniert, und kann ich das ganze dann so auslesen wie ich es hier versucht habe? (Also per GetData aus dem DllStruct heraus?)


    Vielen Dank für die Hilfe


    [autoit]


    #include <Array.au3>

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

    Dim $sStringPlain = "hallotest123", $sStringEncoded = ""
    Dim $hRSA_Dll = DllOpen("rsa.dll")
    Dim $aRet = DllCall($hRSA_Dll, "ULONG", "RSA_generate_keys", "str", "test.privkey", "str", "test.pubkey", "ULONG*", "2048", "ULONG*", "2048")
    Dim $sPrivateKey = $aRet[1]
    Dim $sPublicKey = $aRet[2]

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

    ConsoleWrite($sPrivateKey & @CRLF & @CRLF & @CRLF)
    ConsoleWrite($sPublicKey & @CRLF & @CRLF & @CRLF)

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

    Dim $tagStruct = "struct;str source; ulong source_size;str result;ulong result_size;str pubkey_content;ulong pubkey_content_size;endstruct"
    Dim $tStruct = DllStructCreate($tagStruct)
    DllStructSetData($tStruct, "source", $sStringPlain)
    DllStructSetData($tStruct, "pubkey_content", $sPublicKey)

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

    $aRet = DllCall($hRSA_Dll, "ULONG", "RSA_encrypt", _
    "str", DllStructGetPtr($tStruct,"source"), "ULONG", StringLen(DllStructGetData($tStruct,"source")), _
    "str", DllStructGetPtr($tStruct,"result"), "ULONG", 1000, _
    "str", DllStructGetPtr($tStruct,"pubkey_content"), "ULONG", StringLen(DllStructGetData($tStruct,"pubkey_content")))
    ConsoleWrite("@error = " & @error &@CRLF)

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

    _ArrayDisplay($aRet)

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

    $sStringEncoded = DllStructGetData($tStruct, "result")

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

    ConsoleWrite(">" & $sStringEncoded & "< " &@CRLF)

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

    ;~ unsigned long __stdcall RSA_encrypt(unsigned char *source, unsigned long source_size,
    ;~ unsigned char *result, unsigned long result_size,
    ;~ unsigned char *pubkey_content, unsigned long pubkey_content_size)

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

    Dateien

    rsa.7z 215,17 kB – 562 Downloads
  • GUI Während der Laufzeit in der Taskbar verstecken/anzeigen

    • Jantastic
    • 24. März 2013 um 19:22

    Ach klar, @SW_HIDE .Ja damit funktionierts genauso wie ich wollte. Danke !

  • GUI Während der Laufzeit in der Taskbar verstecken/anzeigen

    • Jantastic
    • 24. März 2013 um 19:15

    Hi Com,

    komme grade bei meinem Programm nicht weiter. Ich habe eine GUI. Wenn man diese minimiert soll diese einfach in der Taskleiste bleiben zum maximieren. Wenn man allerdings auf das X drückt soll diese in den Systemtray minimiert werden, sodass man sie nur da wieder maximieren kann. D.h. die GUI muss in der dabei jenachdem in der Taskbar verschwinden und wieder auftauchen.
    Ich hab versucht beim minimieren den Stil $WS_EX_TOOLWINDOW zu setzen damit das Fenster nicht mehr in der Taskbar auftaucht, allerdings ändert sich nur der Rahmen der GUI. Gibt es eine andere Möglichkeit das zu realisieren?

    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode",1)

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

    $hGUI = GUICreate("titel",300,300,-1,-1)

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

    GUISetOnEvent($GUI_EVENT_CLOSE,"_EventClose")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE,"_EventMaximize")

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

    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _EventClose()
    GUISetState(@SW_MINIMIZE)
    GUISetStyle(-1,$WS_EX_TOOLWINDOW)
    EndFunc

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

    Func _EventMaximize()
    GUISetStyle(-1,0)
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Namen für 2D Array generieren?!?

    • Jantastic
    • 11. März 2013 um 21:18

    Eigentlich würde das ja auch mit nem 3Dimensionalem Array gehen.

    [autoit]

    $var[array-id,element-id,sub-id]

    [/autoit]

    Wär halt jenachdem was man machen will nicht so leicht zu handlen.

  • SciTe: AU3Check deaktivieren ?

    • Jantastic
    • 10. März 2013 um 02:20

    Oh Danke Leute, auf die Wrapper-Directive hät ich glaube auch kommen können. Jetz wird der Fehler im SciTe Fenster zwar immernoch angezeigt, jedoch läuft das Script jetz und das is ja die Hauptsache ^^

    Und zu Assign, das benutz ich auch eigentlich kaum/nie aber ich hab ein bischen rumprobiert mit Eval und Assign und da ist mir das aufgefallen. Das sollte auch ja eig net so sein..

    Trotzdem Danke, auch von mir ne gute Nacht ;)

  • SciTe: AU3Check deaktivieren ?

    • Jantastic
    • 10. März 2013 um 01:54

    Hi Com,

    vor ein paar Tagen hab ich mir die neuste SciTe Version (3.2.0) geholt. (Ja, ich weiß das sie schon über n halbes Jahr draussen ist, aber irgendwie hab ich nie nach nem Update geschaut). Jedenfalls ist mir dabei was aufgefallen: In dieser Version wird vor dem eigentlichen Scriptstart noch n paar andere Sachen gestartet. Dabei prüft der AU3Check (soweit ich das ganze verstehe) das Script auf einige Dinge die zu Errorn führen können ab. Unter anderem wohl auch ob alle Veriablen wenn nötig vorher deklariert wurden. Dabei vermute ich hat der Entwickler etwas nicht ganz eingeschlossen, undzwar für den Fall wenn ich per Assign eine Variable deklariere:

    [autoit]

    Assign("var",123)

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

    ConsoleWrite($var)

    [/autoit]

    Wenn man dies ausm Explorer her ausführt, funktioniert es, da praktisch "nur" das Script ausgeführt wird. Wenn man das aber ausm SciTe heraus testen will, bricht er es schon vorher hab da angeblich die Variable $var nicht deklariert wurde. Meine Frage ist nun, ob ich diesen AU3 Check irgendwie deaktivieren kann, oder man das irgendwo ändern kann das er Assigns richtig erkennt. Hab mich schon in den Einstellungen vom SciTe und im Internet umgeschaut, hab aber nix brauchbares gefunden..

    E: Errors sind btw folgende:
    WARNING: $var: possibly used before declaration.
    ERROR: $var: undeclared global variable.

    Danke ;)

  • Sonderzeichen und Umlaute ersetzen

    • Jantastic
    • 7. März 2013 um 21:27

    Wieso nicht einfach mit StringReplace?

    [autoit]

    For $i = 0 To UBound($aChars) - 1
    $sString = StringReplace($sString,$aChars[$i][0], $aChars[$i][1])
    Next

    [/autoit]

    Es ist mMn. einfacher im Gebrauch, und wie Celeri aus'm englischen Forum mal festgestellt hat auch schneller.

  • AutoItDrawObject ( Nachfolger von QuickDraw )

    • Jantastic
    • 2. März 2013 um 23:10

    Kann man irgendwie erreichen, das der User die Größe des Fensters nicht verändern kann ?

    Normalerweise geht das ja über den GUI Stil, aber den kann man ja hier nicht ändern.

    Code
    $oAutoitObjectDevice = $oAutoitObject.CreateDevice( "AutoItDrawObject v0.6", $WIDTH, $HEIGHT, 400, 0, $FULLSCREEN, 8, $ADO_NoVsync, 0 )

    Und kann man irgendwas machen das die Koordinaten für das Fenster nicht mehr relativ zwischen -1 und 1 angegeben werden müssen, sondern ganz normal als absolute Koordinaten?

  • GUI immer in den Hintergrund stellen? | GDI+ Strings weicher rendern (AA)

    • Jantastic
    • 23. September 2012 um 16:50

    Danke! Funktioniert beides genau so wie es soll :)

    Jan

  • GUI immer in den Hintergrund stellen? | GDI+ Strings weicher rendern (AA)

    • Jantastic
    • 22. September 2012 um 18:44

    Hallo Com,

    die Lage ist wie folgt:
    Seit längerem benutze ich, für die die es kennen das Desktop-Erweiterungsprogramm "Rainmeter". Nun möchte ich es durch eine eigene GUI mit ein paar Funktionen erweitern. Das ganze ist ansich auch schon fertig, nur fehlt noch eine Eigenschaft: Und zwar soll die GUI immer im Hintergrund sein, das heisst selbst wenn man drauf klickt sollen andere Fenster diese GUI noch überlappen.

    [Blockierte Grafik: http://s1.directupload.net/images/120922/t7o3ccup.png]

    Rechts die GUI, so wie es links ist (Rainmeter) soll es sein..


    Ausserdem wollte ich nachfragen wie ich Strings, die per GDI+ gezeichnet werden weicher zeichnen kann (Antialiasing). Ich hab schon alle Varianten mit _GDIPlus_GraphicsSetSmoothingMode die mir eingefallen sind benutzt, aber es hat nie etwas verändert. Wo muss die Funktion hin ?

    [autoit]

    $graphic = _GDIPlus_GraphicsCreateFromHWND($hwnd)

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

    For $i = 1 To $dat[0][0]
    _GDIPlus_GraphicsDrawStringColor($graphic,$dat[$i][0],$dat[$i][1],$dat[$i][2],$link_font,$link_size,0,$link_color)
    ; _GDIPlus_GraphicsDrawStringColor(Grafik-Handle,Text,X-Position,Y-Position,Schriftart,Schriftgröße,FormatFarbe)
    Next

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

    ; ...

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

    Func _GDIPlus_GraphicsDrawStringColor($hGraphics, $sString, $nX, $nY, $sFont = "Arial", $nSize = 10, $iFormat = 0, $iBrush = 0xFF000000)
    Local $hBrush, $iError, $hFamily, $hFont, $hFormat, $aInfo, $tLayout, $bResult
    $hBrush = _GDIPlus_BrushCreateSolid($iBrush)
    $hFormat = _GDIPlus_StringFormatCreate($iFormat)
    $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    $hFont = _GDIPlus_FontCreate($hFamily, $nSize)
    $tLayout = _GDIPlus_RectFCreate($nX, $nY, 0, 0)
    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
    $bResult = _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
    $iError = @error
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    Return SetError($iError, 0, $bResult)
    EndFunc ;==> _GDIPlus_GraphicsDrawStringColor()

    [/autoit]
  • Stream länger als 7 Sec. aufnehmen

    • Jantastic
    • 26. Januar 2012 um 15:31

    Naja hab ich auch erst gedacht, aber aufrecht erhalten wird er ja, beim testen per Sleep(), ansonsten is das Program ja größer und hat ebenfalls ne Schleife die es aufrecht erhält,daher kann es eigentlich nicht daran liegen. Und das in der Schleife ist ja eigentlich nur zum anzeigen wie weit es ist, aber das geht ja hier nicht da ein Internet Stream ja "unendlich" ist..

  • Stream länger als 7 Sec. aufnehmen

    • Jantastic
    • 26. Januar 2012 um 15:08

    Hi Com,

    ich arbeite momentan an einem Script, mit dem ich Internet Streams aufnehmen kann.
    Dazu hab ich diesen Thread benutzt und dann auf Internet Streams abgewandelt.

    Das Problem ist allerdings, egal wielang ich die Aufnahme laufen lasse, es werden trotzdem nur genau 7 Sekunden, bzw. 111 KB gespeichert..

    Wie kann ich erreichen das es länger bzw. größer geht?

    Benutze die bass.dll, basswma.dll, bass_aac.dll, bassext.dll

    [autoit]

    Func _Record($state)
    If $state = 1 Then
    $buffer = _BASS_EXT_MemoryBufferCreate()
    $channel_record = _BASS_StreamCreateURL($info[$csi][1],0,$BASS_STREAM_DECODE,$BASS_EXT_DownloadProc,$buffer[0])
    $csr = 1
    ElseIf $state = 0 Then
    $size = _BASS_EXT_MemoryBufferGetSize($buffer)
    $data = _BASS_EXT_MemoryBufferGetData($buffer,$size)

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

    $hFile = FileOpen(@ScriptDir & "\Download.mp3", 18)
    FileWrite($hFile,$data)
    FileClose($hFile)

    _BASS_StreamFree($channel_record)
    _BASS_EXT_MemoryBufferDestroy($buffer)

    $csr = 0
    EndIf
    EndFunc

    [/autoit]
  • progandy hat Geburtstag!

    • Jantastic
    • 11. Oktober 2011 um 15:51

    Herzlichen Glückwunsch Andy ;D

  • AutoIT - Multidesktop Unterstützung?

    • Jantastic
    • 10. Oktober 2011 um 14:46

    Hmm, danke für den Tipp, ich hab das mal versucht. Allerdings erkennt er bei mir nur den Hauptbildschirm, aber nicht meinen 2. :/

    [autoit]

    #include <CompInfo.au3>
    #include <Array.au3>

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

    Dim $mon

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

    _ComputerGetMonitors($mon)

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

    _ArrayDisplay($mon)

    [/autoit]
  • AutoIT - Multidesktop Unterstützung?

    • Jantastic
    • 10. Oktober 2011 um 03:27

    Hey Com,

    hab da mal ne Frage. Das Problem ist ganz einfach erklärt, ich möchte auslesen wieviel Monitore an den PC angeschlossen sind, welche Ausmasse sie haben, und wo sie liegen (z.b. liegt Desktop 2 rechts neben Desktop 1). Ich denke das wird man irgendwie über irgendeine DLL auslesen können, aber da kenn ich mich jetz nich so aus ;) Und die beiden Makros @DesktopHeight und @DesktopWidth bringen ja jetzt nur Daten über den Haupt-Monitor. Optimal wäre es noch, wenn ich noch die Farbtiefe und die Frequenz der zusätzlichen Bildschirme auslesen könnte (passend zu @DesktopRefresh und @DesktopDepth).

    Ryan

  • _FileListToArray mit mehreren Filter

    • Jantastic
    • 12. September 2011 um 22:43

    Meinst du sowas in etwa: ?

    Hat glaub ich Bugfix mal gepostet.
    Die Einteilung ist so ähnlich wie bei FileOpenDialog.
    Bsp:

    [autoit]

    _FileListToArrayMultiSelect(@ScriptDir,"*.jpg,*.jpeg,*.png,*.bmp",",",1)

    [/autoit][autoit]

    Func _FileListToArrayMultiSelect($dir,$searchlist,$Separator,$iFlag = 0)
    Local $FileList[1] = [0], $Filelist1, $iN, $Num, $search
    $search = StringSplit($searchlist, $Separator)
    If $search[0] > 0 Then
    For $iN = 1 To $search[0]
    $Filelist1 = _FileListToArray($dir, $search[$iN], $iFlag)
    If Not @error Then
    $Num = UBound($FileList)
    _ArrayConcatenate($FileList, $Filelist1)
    $FileList[0] = $FileList[0] + $FileList[$Num]
    _ArrayDelete($FileList, $Num)
    EndIf
    Next
    EndIf
    Return $FileList
    EndFunc

    [/autoit]
  • GDI+ Bild (komplett) Transparent machen

    • Jantastic
    • 11. September 2011 um 02:08

    Hmm ich habs jetz mal ausprobiert und nach einen Schwierigkeiten funktioniert das jetzt endlich.

    Danke ;)

    PS: Frag mich nur warum ich den Thread net gefunden hab 8|

  • GDI+ Bild (komplett) Transparent machen

    • Jantastic
    • 11. September 2011 um 01:46

    Hey Com,

    Ich arbeite momentan an einem Programm das unter anderem 2 Bilder übereinander legt, das einzige weas noch fehlt ist eine Funktion die das 2. Bild was ja über das 1. gelegt wird so transparent zu machen das man das andere dadrunter halt noch teilweise sieht. (Am besten so das man es von 0 (= komplett transparent) bis 100 = (überhaupt nicht transparent) machen kann.) Man kann sich das ungefähr so vorstellen als ob man 2 GUI's mit den jeweiligen Bildern hätte, diese sind beide an der gleichen Position aber die eine wurde per WinSetTrans so gemacht das man halt beide sieht. Es ist jedoch wichtig das man den Vorgang nicht sieht und alles "unsichtbar" passiert.

    Bisheriger Code:

    [autoit]

    For $i = 1 To 9
    $image1 = _GDIPlus_ImageLoadFromFile($pic_old)
    $image2 = _GDIPlus_ImageLoadFromFile($pic_new)
    $width = _GDIPlus_ImageGetWidth($image1)
    $height = _GDIPlus_ImageGetHeight($image1)
    $graphic = _GDIPlus_ImageGetGraphicsContext($image1)
    _DrawInsert($graphic,$image2,0,0,0,$width,$height)
    _GDIPlus_ImageSaveToFile($image1,@ScriptDir & "\temp\" & $i & ".bmp")
    _GDIPlus_ImageDispose($image1)
    _GDIPlus_ImageDispose($image2)
    Next

    [/autoit]

    Könnt ihr mir villeicht helfen?
    Habe bisher noch nichts gefunden..

    E: --> Gelöst

    Ryan

  • Fensterzugriff unmöglich

    • Jantastic
    • 6. August 2011 um 01:48

    Kanns sein das das eine Msgbox ist, die auf einer Website von Javascript aufgerufen wird?

    Und was sagt die Autoit Window Info?

  • Welche Rechte stehen einem zu?

    • Jantastic
    • 4. August 2011 um 21:42

    Ausserdem kann ich dir mit Sicherheit sagen das das nicht jeder Noob der um die Ecke kommt schafft, dafür muss man schon sehr erfahren sein in so Sachen ;)

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™