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

Beiträge von ip_trainer

  • Transparente Bilder einfach einfügen.

    • ip_trainer
    • 7. Mai 2011 um 12:57

    Hallo zusammen,

    hier ist meine Funktion, bzw. mein Include ("PNG_Extender.au3"):

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <GDIPlus.au3>

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

    Func GUICtrlCreatePng($src, $top="", $left="")

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

    Local Const $STM_SETIMAGE = 0x0172

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

    Local $Pic = GUICtrlCreatePic("", $left, $top)

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

    _GDIPlus_Startup ()
    Local $image = _GDIPlus_ImageLoadFromFile($src)
    Local $hBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    GUICtrlSendMsg($Pic, $STM_SETIMAGE, 0, $hBmp)
    _WinAPI_DeleteObject($hBmp)
    _GDIPlus_ImageDispose($image)
    _GDIPlus_Shutdown()

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

    Return $Pic

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

    EndFunc

    [/autoit]


    Und hier ein Beispiel-Skript:

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <PNG_Extender.au3>
    #include <GUIConstants.au3>

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

    $hMainWindow = GUICreate("Test", 320, 256)
    $ok = GUICtrlCreatePng("ok.png", 20, 20)
    $cancel = GUICtrlCreatePng("cancel.png", 20, 60)
    GUISetState()

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

    ;Bilder löschen...
    MsgBox("", "", "Bild 1 löschen...")
    GUICtrlDelete($ok)

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

    MsgBox("", "", "Bild 2 löschen...")
    GUICtrlDelete($cancel)

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

    ;Warten auf das Ende
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    GUIDelete()
    Exit
    EndSelect

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

    Sleep(50)
    WEnd

    [/autoit]


    Gruß Trainer

  • Transparente Bilder einfach einfügen.

    • ip_trainer
    • 7. Mai 2011 um 11:41

    Hi Leute,

    erst mal danke für eure Antworten und sorry für meinen Tonfall gestern - es war spät und ich war müde :S ...

    Ich werde mal versuchen, das bereits gepostete in eine Funktion zu packen, so dass man z.B. mit "GUICtrlCreatePng()" oder so einfach nur einen Einzeiler braucht. Falls jemand diesbezüglich noch einen Codeschnipsel oder eine URL zu einem Forumsbeitrag hat, dann wäre es natürlich schön.

    Ansonsten würde ich die Entwickler bitten, das mal in die ToDo für eine der kommenden Beta-Versionen mit aufzunehmen. Diese Funktionalität ist - so finde ich - doch echt wichtig für ein Programm mit dem man GUIs erstellen kann, oder nicht? Sogar der "kleine Bruder" Autohotkey macht das ohne zu murren!

    Gruß
    Trainer

  • Transparente Bilder einfach einfügen.

    • ip_trainer
    • 7. Mai 2011 um 02:59

    Hi Funkey,

    erst mal danke für deine Antwort...

    Klär mich auf, was habe ich übersehen? In diesem Beispiel werden doch 2 GUIs übereinander gelegt, oder?

    Gruß
    Trainer

  • Transparente Bilder einfach einfügen.

    • ip_trainer
    • 7. Mai 2011 um 01:55

    Hallo zusammen,

    ist es eigentlich mit einfachen Mitteln möglich, ein transparentes GIF oder PNG in einer GUI zu platzieren (z.B. ein rotes Kreuz neben dem Abbrechen-Button) - so wie man es z.B. in HTML machen kann?

    Sprich ohne irgendwie GUIs übereinanderzuschachteln oder GDI-Funktionen zu gebrauchen? Einfach so, mit einer Function à la GUICtrlCreatePic()...

    In der Hilfe steht zwar ein Beispiel (s.u.), aber das kann doch - ehrlich gesagt - nicht wirklich wahr sein, dass man das für jedes einzelne Bild machen muss, oder? :rolleyes:

    Vielen Dank für Tips.

    Gruß
    Trainer

    Das Beispiel aus der Hilfe:

    Spoiler anzeigen
    [autoit]

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

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

    Global $hGUI, $hImage, $hGraphic, $hImage1

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

    ; GUI erstellen
    $hGUI = GUICreate("PNG zeigen", 250, 250)

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

    ; PNG Bild laden
    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile("cancel.png")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

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

    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    GUISetState()

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    ; Ressourcen aufräumen
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

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

    ; PNG Bild zeichnen
    Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    _WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_PAINT

    [/autoit]
  • Download aus htaccess geschützem Verzeichnis

    • ip_trainer
    • 3. Mai 2011 um 13:26

    Hi,

    ich habe das ganze mal noch in eine Funktion gepackt, die alles für einen erledigt:

    Spoiler anzeigen
    [autoit]

    Func download_data ($host, $remote_file, $local_file="", $use_ssl=False, $htaccess_user="", $htaccess_pass="", $proxy="auto")

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

    ;===========================================================================
    ;Beispiel
    ;===========================================================================

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

    ;$host = "irgendeine-domain.de"
    ;$remote_file = "/verzeichnis/gewuenschte_download_datei.zip"
    ;$local_file = Pfad und Dateiname unter welchem die Datei gespeichert werden soll (falls leer, wird @ScriptDir + Remote-Dateiname verwendet)

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

    ;$use_ssl = True / False (*Default)

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

    ;$htaccess_user = "benutzer_name"
    ;$htaccess_pass = "benutzer_passwort"

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

    ;$proxy = "auto" (holt sich - falls vorhanden - die IE-Einstellungen) / explizite Angabe (z.B. 192.168.178.1:8080)

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

    ;----------------------------------------------------------------

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

    ;AUFRUF: $ergebnis = download_data ($host, $remote_file [, $local_file] [, $use_ssl] [, $htaccess_user] [, $htaccess_pass] [, $proxy])
    ;ERGEBNIS: Pfad+Dateiname der geschriebenen Datei (als String) bzw. False

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

    ;===========================================================================

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

    ;---------------------------------------------------------------------

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

    ;Proxy-Konfiguration
    If($proxy = "auto") Then

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

    ;Internet-Explorer-Einstellungen laden
    $proxy_config = _WinHttpGetIEProxyConfigForCurrentUser()

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

    ;Eine Angabe für alle Proxies vorhanden --> einfach
    If $proxy_config[2] <> "" And Not StringInStr($proxy_config[2], "=") Then
    $proxy = $proxy_config[2]
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)

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

    ;Ausdifferenzierte Proxy-Angaben vorhanden (passenden Proxy herausfiltern)
    ElseIf StringInStr($proxy_config[2], "=") Then

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

    $all_proxies =StringSplit($proxy_config[2], ";")

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

    ;SSL wird verwendet --> nach https-Proxy suchen
    If $use_ssl = True Then
    ;Anagbe für https-Proxy existiert --> diese nehemen
    If StringInStr($proxy_config[2], "https=") Then
    For $i = 1 To UBound($all_proxies) -1
    If StringInStr($all_proxies[$i], "https=") Then
    $proxy= StringTrimLeft($all_proxies[$i], 6)
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)
    EndIf
    Next

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

    ;Keine gesonderte Angabe--> keinen Proxy verwenden
    Else
    $proxy = ""
    $open = _WinHttpOpen()
    EndIf

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

    ;SSL wird NICHT verwendet --> nach http-Proxy suchen
    Else
    ;Angabe für http-Proxy existiert --> diese nehemen
    If StringInStr($proxy_config[2], "http=") Then
    For $i = 1 To UBound($all_proxies) -1
    If StringInStr($all_proxies[$i], "http=") Then
    $proxy= StringTrimLeft($all_proxies[$i], 5)
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)
    EndIf
    Next

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

    ;Keine gesonderte Angabe--> keinen Proxy verwenden
    Else
    $proxy = ""
    $open = _WinHttpOpen()
    EndIf
    EndIf

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

    ;Automatische Einstellung (aber kein Proxy vorhanden)
    Else
    $proxy = ""
    $open = _WinHttpOpen()

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

    EndIf

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

    ;Adresse explizit angegeben
    Else
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)
    EndIf

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

    ;Verbindung herstellen
    $connect = _WinHttpConnect($open, $host)

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

    ;SSL-Handshake (oder auch nicht - je nach Konfiguration)
    If $use_ssl = True Then
    Local $request = _WinHttpOpenRequest($connect, "POST", $remote_file, Default, $WINHTTP_NO_REFERER, Default, BitOR($WINHTTP_FLAG_SECURE, $WINHTTP_FLAG_ESCAPE_DISABLE))
    Else
    Local $request = _WinHttpOpenRequest($connect, "POST", $remote_file, Default, $WINHTTP_NO_REFERER)
    EndIf

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

    If Not $request Then
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)
    Return 0
    EndIf

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

    ;htaccess-Authentifizierung (falls gewünscht)
    If $htaccess_user <> "" And $htaccess_pass <> "" Then _WinHttpSetCredentials($request, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, $htaccess_user, $htaccess_pass)

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

    ;Anfrage starten
    _WinHttpSendRequest($request)
    If @error Then
    _WinHttpCloseHandle($request)
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)
    Return 0
    EndIf

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

    ;Antwort empfangen
    _WinHttpReceiveResponse($request)
    If @error Then
    _WinHttpCloseHandle($request)
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)
    Return 0
    EndIf

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

    ;Antwort auswerten
    Local $answer = _WinHttpSimpleReadData($request, 2)

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

    _WinHttpCloseHandle($request)
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)

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

    ; ++++++++ Anwort in Datei schreiben +++++++++++

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

    ;Remote-Dateiname übernehmen?
    If $local_file = "" Then
    $local_file = StringSplit($remote_file, "/", 1)
    $local_file = @ScriptDir & "\" & $local_file[$local_file[0]]
    EndIf

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

    Local $file_to_write = FileOpen($local_file, BitOR(16, 2))

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

    ;Datei konnte nicht zum Schreiben geöffnet werden
    If $file_to_write = -1 Then
    Return False
    Else
    FileWrite($file_to_write, $answer)
    FileClose($file_to_write)
    Return $local_file
    EndIf

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

    EndFunc

    [/autoit]

    Viel Spass damit :) ...

    Gruß
    Trainer

  • Download aus htaccess geschützem Verzeichnis

    • ip_trainer
    • 3. Mai 2011 um 12:02

    Hallo,

    ich hab's rausgefunden...

    Wenn man in obenstehendem Skript in Zeile 189:

    [autoit]

    Local $answer = _WinHttpSimpleReadData($request, 0)

    [/autoit]


    das Flag von 0 auf 2 setzt (also binäre Daten statt ASCII empfangen), dann erhält man als Antwort einen Hex-Wert, z.B. "0x504B03040A00000000000215A33E58290BB50E0000000E00 [...]".

    Diesen Wert kann man nun binär in eine Datei schreiben:

    [autoit]

    $bin = "0x504B03040A00000000000215A33E58290BB50E0000000E00 [...] "
    $hFile = FileOpen("test.zip", BitOR(16, 2))
    FileWrite($hFile, $bin)
    FileClose($hFile)

    [/autoit]

    :D Gruß Trainer

  • Download aus htaccess geschützem Verzeichnis

    • ip_trainer
    • 3. Mai 2011 um 03:03

    Also: mit meiner "selbstgebastelten" Upload-Funktion klappt es immerhin schon mal, eine Text-Datei herunterzuladen, indem man anstelle eines empfangendes PHP-Skripts ($script) die zu ladende Datei angibt. Mit FileWrite kann ich das ganze dann in eine Text-Datei schreiben. Das klappt. Bei einer Zip-Datei treten allerdings Probleme auf. Als Antwort vom Server bekomme ich "seltsame Zeichen" (z.B. PK...), die ich versucht habe mit StringToBinary umzuwandeln und zu schreiben - aber das klappt nicht. Außerdem kommen zu wenig Daten an (Datei ist viel zu klein).

    Vielleicht hilft es ja...

    Gruß Trainer

    Spoiler anzeigen
    [autoit]

    #include-once
    #include "WinHTTP.au3"

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

    Func http_talk ($host, $script, $post_fields="", $upload_file="", $use_ssl=False, $htaccess_user="", $htaccess_pass="", $proxy="auto")

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

    ;===========================================================================
    ;Beispiel
    ;===========================================================================

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

    ;$host = "irgendeine-domain.de"
    ;$script = "/verzeichnis/script.php"

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

    ;--------------- Ab hier ist alles optional (es kann auch einfach ein Skript ohne Informationsaustausch angestoßen werden) ---------------------

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

    ;POST-Daten:
    ;Dim $post_fields[3][2] (die erste Dimension (hier: 3) muss an die Anzahl der verwendeten Felder angepasst werden)

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

    ;$post_fields[0][0] = "FeldName_1"
    ;$post_fields[0][1] = "FeldWert_1"

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

    ;$post_fields[1][0] = "FeldName_2"
    ;$post_fields[1][1] = "FeldWert_2"

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

    ;$post_fields[2][0] = "FeldName_3"
    ;$post_fields[2][1] = "FeldWert_3"

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

    ;Attachment:
    ;$upload_file = "datei.zip"

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

    ;$use_ssl = True / False (*Default)

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

    ;$htaccess_user = "benutzer_name"
    ;$htaccess_pass = "benutzer_passwort"

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

    ;$proxy = "auto" (holt sich - falls vorhanden - die IE-Einstellungen) / explizite Angabe (z.B. 192.168.178.1:8080)

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

    ;----------------------------------------------------------------

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

    ;AUFRUF: $ergebnis = http_talk ($host, $script [, $post_fields] [, $upload_file] [, $use_ssl] [, $htaccess_user] [, $htaccess_pass] [, $proxy])
    ;ERGEBNIS: Rückgabewert der Funktion (von der Bildschirmausgabe des aufgerufenen Skripts abhängig)

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

    ;BEMERKUNG: Upload-Dateien landen in $_FILES['file_upload']

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

    ;===========================================================================

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

    $boundary = "--------WinHTTPMultiPaRtEXAMPLE"
    $header = "Content-Type: multipart/form-data; boundary=" & $boundary & @CRLF
    $data = "--" & $boundary & @CRLF

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

    ;POST-Datenfelder
    If $post_fields <> "" Then

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

    ;Array durchlaufen
    For $i = 0 To UBound($post_fields,1) -1

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

    If ($post_fields[$i][0] <> "" AND $post_fields[$i][1] <> "") Then

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

    $data &= 'Content-Disposition: form-data; name="' & $post_fields[$i][0] & '"' & @CRLF & @CRLF & $post_fields[$i][1] & @CRLF & @CRLF
    $data &= "--" & $boundary & @CRLF

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

    EndIf

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

    Next

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

    EndIf

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

    ;Attachment
    If $upload_file <> "" Then

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

    $data &= __WinHttpFileContent("", "file_upload", $upload_file)

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

    EndIf

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

    $data &= "--" & $boundary & "--" & @CRLF

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

    ;---------------------------------------------------------------------

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

    ;Proxy-Konfiguration
    If($proxy = "auto") Then

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

    ;Internet-Explorer-Einstellungen laden
    $proxy_config = _WinHttpGetIEProxyConfigForCurrentUser()

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

    ;Eine Angabe für alle Proxies vorhanden --> einfach
    If $proxy_config[2] <> "" And Not StringInStr($proxy_config[2], "=") Then
    $proxy = $proxy_config[2]
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)

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

    ;Ausdifferenzierte Proxy-Angaben vorhanden (passenden Proxy herausfiltern)
    ElseIf StringInStr($proxy_config[2], "=") Then

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

    $all_proxies =StringSplit($proxy_config[2], ";")

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

    ;SSL wird verwendet --> nach https-Proxy suchen
    If $use_ssl = True Then
    ;Anagbe für https-Proxy existiert --> diese nehemen
    If StringInStr($proxy_config[2], "https=") Then
    For $i = 1 To UBound($all_proxies) -1
    If StringInStr($all_proxies[$i], "https=") Then
    $proxy= StringTrimLeft($all_proxies[$i], 6)
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)
    EndIf
    Next

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

    ;Keine gesonderte Angabe--> keinen Proxy verwenden
    Else
    $proxy = ""
    $open = _WinHttpOpen()
    EndIf

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

    ;SSL wird NICHT verwendet --> nach http-Proxy suchen
    Else
    ;Angabe für http-Proxy existiert --> diese nehemen
    If StringInStr($proxy_config[2], "http=") Then
    For $i = 1 To UBound($all_proxies) -1
    If StringInStr($all_proxies[$i], "http=") Then
    $proxy= StringTrimLeft($all_proxies[$i], 5)
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)
    EndIf
    Next

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

    ;Keine gesonderte Angabe--> keinen Proxy verwenden
    Else
    $proxy = ""
    $open = _WinHttpOpen()
    EndIf
    EndIf

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

    ;Automatische Einstellung (aber kein Proxy vorhanden)
    Else
    $proxy = ""
    $open = _WinHttpOpen()

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

    EndIf

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

    ;Adresse explizit angegeben
    Else
    $open = _WinHttpOpen(Default, $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $proxy)
    EndIf

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

    ;Verbindung herstellen
    $connect = _WinHttpConnect($open, $host)

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

    ;SSL-Handshake (oder auch nicht - je nach Konfiguration)
    If $use_ssl = True Then
    Local $request = _WinHttpOpenRequest($connect, "POST", $script, Default, $WINHTTP_NO_REFERER, Default, BitOR($WINHTTP_FLAG_SECURE, $WINHTTP_FLAG_ESCAPE_DISABLE))
    Else
    Local $request = _WinHttpOpenRequest($connect, "POST", $script, Default, $WINHTTP_NO_REFERER)
    EndIf

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

    If Not $request Then
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)
    Return 0
    EndIf

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

    ;htaccess-Authentifizierung (falls gewünscht)
    If $htaccess_user <> "" And $htaccess_pass <> "" Then _WinHttpSetCredentials($request, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, $htaccess_user, $htaccess_pass)

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

    ;Anfrage starten
    _WinHttpSendRequest($request, $header, $data)
    If @error Then
    _WinHttpCloseHandle($request)
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)
    Return 0
    EndIf

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

    ;Antwort empfangen
    _WinHttpReceiveResponse($request)
    If @error Then
    _WinHttpCloseHandle($request)
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)
    Return 0
    EndIf

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

    ;Antwort auswerten
    Local $answer = _WinHttpSimpleReadData($request, 0)

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

    _WinHttpCloseHandle($request)
    _WinHttpCloseHandle($connect)
    _WinHttpCloseHandle($open)

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

    Return $answer

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

    EndFunc

    [/autoit]
  • Download aus htaccess geschützem Verzeichnis

    • ip_trainer
    • 3. Mai 2011 um 02:12

    Hallo,

    ich muss mal wieder nerven, mit meinm ssl-htaccess-Gedöns :rolleyes: ...

    In folgendem Thread

    [ gelöst ] Datei via SSL an ein htaccess-geschütztes PHP-Skript senden

    habe ich es - dank der Hilfe einiger kompetenter und hilfsbereiter Leute - ja schon geschafft eine Datei ssl-verschlüsselt an eine php-Datei in einem htaccess-geschützten Verzeichnis zu schicken.

    WOW, das war echt heftig. "Andersherum" - so dachte ich - wäre es einfacher. Aber jetzt hänge ich wieder fest :( ...

    Hat vielleicht jemand einen Ansatz, wie man (z.B.) eine Zip-Datei ssl-verschlüsselt aus einem htaccess-geschützten Verzeichnis heraus runterladen kann? Mit InetGet() geht es zwar ssl-verschlüsselt, aber halt ohne SetCredentials. FTP ginge zwar am htaccess-Schutz vorbei, aber Klartextübertragung kommt natürlich nicht in Frage (Whireshark etc. macht's möglich :D ).

    Bitte, bitte ihr Profis :rolleyes: ...

    Ich sag schon mal Danke für's Lesen.
    Gruß Trainer

  • FileWriteLine mal andersherum :-)

    • ip_trainer
    • 27. April 2011 um 12:58

    Super, ich danke euch!

  • FileWriteLine mal andersherum :-)

    • ip_trainer
    • 27. April 2011 um 12:54

    Hallo,

    hat jemand von euch zufällig schon mal eine kleine Routine geschrieben (oder kennt einen Trick) wie man eine Text-Datei so beschreiben kann, dass neue Zeilen oben und nicht unten angefügt werden?

    Falls nicht, werde ich wohl selbst ran müssen :wacko: ...

    Vielen Dank schon mal...

    Gruß
    Trainer

  • Tray-Menü UND Doppelklick

    • ip_trainer
    • 18. April 2011 um 12:12

    Meiner Meinung nach ist das schon ein Kontext-Menü - aber du hast Recht, es ist egal. Eigentlich geht es um was anderes.

    Also ich habe immer alle Tray-Symbole eingeblendet, ich hab keinen Bock immer auf den kleinen Pfeil zu klicken, wenn ich da was sehen will. Daran kann es also eigentlich auch nicht liegen. Aber dass es mit Win7 zu tun hat war auch mein erster Verdacht. Kommt halt so oft vor - vor allem bei der 64Bit-Variante (bei mir im Einsatz).

    Na ja, ist unbefiriedigend - aber trotzdem danke für deine Hilfe.

    Ich lasse den Thread mal auf "offen" stehen, vielleicht ergibt sich ja noch was.

    Gruß
    Trainer

  • Tray-Menü UND Doppelklick

    • ip_trainer
    • 18. April 2011 um 11:59

    Hi Raupi,

    was meinst du damit, dass das nichts damit zu tun hat?

    Bei mir funtioniert das Skript leider nicht: Exit funktioniert, aber der Doppelklick nicht... :wacko: .

    Seltsam, oder?

    Gruß
    Trainer

  • Tray-Menü UND Doppelklick

    • ip_trainer
    • 18. April 2011 um 11:44

    Hi Raupi,

    steht doch im Quelltext (Zeile 7-9) und unten die Funktion.

    Trainer

  • Tray-Menü UND Doppelklick

    • ip_trainer
    • 18. April 2011 um 11:38

    Hi zusammen,

    irgendwie stehe ich wohl gerade auf dem Schlauch :rolleyes:... Ich versuche (eventbasiert, nicht via TrayGetMsg), für ein TrayIcon sowohl ein Kontext-Menü als auch eine Doppelklick-Funktion zu basteln. Aber leider funktioniert die Doppelklick-Funktion nicht mehr, sobald ich das Kontextmenü mit dazu nehme. Kann mir jemand einen Tip geben, was ich da falsch mache...?

    Hier der Code:

    Spoiler anzeigen
    [autoit]

    #include "Constants.au3"

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

    ;+++++++++++ Tray-Menü anpassen +++++++++++
    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)

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

    ;Menü-Eintrag erstellen
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitEvent")

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

    ;Doppelklick abfangen
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "Test")

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

    ;Zirkeln
    While 1
    Sleep(100)
    WEnd

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

    ;+++++++++++++++++++++++++
    Func ExitEvent()
    Exit
    EndFunc

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

    ;+++++++++++++++++++++++++
    Func Test()
    MsgBox(0, "", "Test")
    EndFunc

    [/autoit]


    Gruß
    Trainer

  • Format für GuiCtrlCreateAvi()

    • ip_trainer
    • 8. April 2011 um 14:09

    Hallo,

    also, mit VirtualDub hat es jetzt geklappt. Einfach Video-Datei öffen (öffnet auch GIFs) --> als AVI speichern und fertig. Die AVIs sind zwar "etwas" größer jetzt (Faktor 100) als die GIFs, aber dafür läuft alles ohne Latenzen, auch auf langsamen Rechnern...

    Hier mein funktionierender Beispiel-Code:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <AVIConstants.au3>

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

    $main_gui = GUICreate("AVI-TEST", 500, 500, 100,100)
    GUISetState(@SW_SHOW)

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

    $avi = GUICtrlCreateAvi("DATEINAME.avi", 0, 34,40, "", "", $ACS_NONTRANSPARENT)
    GUICtrlSetState($avi, $GUI_AVISTART)

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

    Sleep(5000)

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

    GUICtrlSetState($avi, $GUI_AVICLOSE)

    [/autoit]

    Gruß
    Trainer

  • IconDock - Mac style Icon toolbar

    • ip_trainer
    • 8. April 2011 um 12:32

    Cool... :P

  • Format für GuiCtrlCreateAvi()

    • ip_trainer
    • 8. April 2011 um 11:16

    Hallo zusammen,

    habe den Thread noch mal auf offen gesetzt. Das Handlig der GIFAnimation.au3 klappt soweit wunderbar. Das Abspielen eines großen gifs ist - prinzipiell - nun kein Problem mehr. Und diese UDF ist echt der Hammer :P ...

    Dennoch bleibt ein kleiner Wermutstropfen: beim Strart eines relativ großen GIFs entsteht immer noch eine Timeout, je nach Geschwindigkeit (oder Anzahl ?) der CPU(s). Auf meinem Server z.B. (Athlon, 1800MHz, 512MB) dauert es gut über zwei Sekunden, bis mein GIF (514 Kb) letztendlich anläuft. Auf meinem stärkern Arbeitsrechner geht es hingegen sofort los. Danach geht die Prozessorlast zwar runter (und bleibt auch dort), was einen reibungslosen Ablauf des restlichen Programms gewährleistet, aber meine Animation ist genau auf die Ansteuerung eines mechanischen Vorgangs abgestimmt (Motoransteuerung mit Endlagenschalter) - und da ist diese Verzögerung natürlich doof :rolleyes: ...

    Also: falls doch jemand die korrekten Parameter für das Erzeugen eines GUI-AVIs kennt (oder weiß wie man es rausfinden kann), dann wäre das klasse!

    Gruß
    Trainer

  • Format für GuiCtrlCreateAvi()

    • ip_trainer
    • 6. April 2011 um 23:24

    Ups, mach ich sonst immer :rolleyes: ... vergessen!

    Jo, hat mir den Abend irgend wie gerettet, jetzt... :thumbup:

  • Format für GuiCtrlCreateAvi()

    • ip_trainer
    • 6. April 2011 um 23:08

    Hi,

    danke noch mal für den Hint! Das war allerdings genau das, was ich runtergeladen hatte.

    Ich habe es jetzt zum Laufen gebracht, allerdings muss ich in der GIFAnimation.au3 die Zeilen

    199 - 204

    Spoiler anzeigen
    [autoit]


    If @error Then
    Local $hGIFFile = FileOpen($vData)
    $vData = FileRead($hGIFFile)
    FileClose($hGIFFile)
    $pBitmap = _GIF_CreateBitmapFromBinaryImage($hGDIP, $hMemGlobal, $vData, $iWidth, $iHeight)
    EndIf

    [/autoit]


    und 409 - 418

    Spoiler anzeigen
    [autoit]


    If @error Then ; try some more options
    Local $hGIFFile = FileOpen($vData)
    $vData = FileRead($hGIFFile)
    FileClose($hGIFFile)
    $pGIF = _GIF_Create_pGIF($vData, $iWidthDef, $iHeightDef, $hGIFControl, $iLeft, $iTop, $iForcedARGB)
    If @error Then ; finally maybe it's GIF content passed as string
    $pGIF = _GIF_Create_pGIF(Binary($vGIF), $iWidthDef, $iHeightDef, $hGIFControl, $iLeft, $iTop, $iForcedARGB)
    If @error Then Return SetError(1, @extended = True, 0) ; Nothing worked, Invalid input or Gdip failure.
    EndIf
    EndIf

    [/autoit]


    auskommentieren, sonst bekomme ich das Beispiel "Example1..." nicht zum Laufen.

    Also nochmal vielen Dank!
    Trainer

  • Format für GuiCtrlCreateAvi()

    • ip_trainer
    • 6. April 2011 um 20:06

    Hi Schnuffel,

    das scheint genau das richtige zu sein!

    Ich hab's runtergeladen, bekomme aber kein einziges Beispiel zum Laufen :S ... Es kommt immer (mindestens) ERROR: FileOpen() [built-in] called with wrong number of args.
    Ich sehe nur leider den Fehler nicht. Naja, vielleicht brauche ich auch mal ne Pause. Ich schau's mir später noch mal an.

    Trotzdem schon mal vielen Dank für den Link!

    Trainer

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™