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

Beiträge von Greek

  • E-MAil versenden

    • Greek
    • 2. Juni 2009 um 22:09
    Zitat von Alina

    Hallo Greek.

    Leider kommt folgende Meldung:
    C:\test\test.au3(65,31) : WARNING: $x: possibly used before declaration.
    $S_Files2Attach[$x]
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\test\test.au3(65,31) : ERROR: $x: undeclared global variable.
    $S_Files2Attach[$x]
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\test\test.au3 - 1 error(s), 1 warning(s)

    Alles anzeigen

    Continue Anyway anklicken ;)

    Du scheinst die Funktion wohl nicht zu mögen? [ gelöst ] MailVersand :rofl:

    Zitat

    hi greek,

    da kommen wir dann aber schon zum zweiten Problem. Das Script habe ich auch schon aus probiert. Das das ganze als Dienst läuft kann dieses Script nicht so recht die Ini auslesen.

    MFG thomasB

    Hm, versteh jetzt ehrlich gesagt nicht so was du meinst, warum kann das Script nicht Funktionieren wenn als Dienst läuft? ( Dienste sieht man doch nur bei den Prozessen nicht, oder? )

  • E-MAil versenden

    • Greek
    • 2. Juni 2009 um 21:48

    Benutzt doch einfach die Funktion, die brauch auch kein Outlook:

    Spoiler anzeigen
    [autoit]

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "")
    $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Cc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
    Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
    For $ex = 1 To $S_Files2Attach[0]
    $S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
    SetError(1)
    return 0
    EndIf
    Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    ;Authenticated SMTP
    If $s_Username <> "" Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Sent the Message
    $objEmail.Send
    if @error then
    SetError(2)
    return $oMyRet[1]
    EndIf
    EndFunc;==>_INetSmtpMailCom
    ;
    ;
    ; Com Error Handler
    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description,3)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
    EndFunc;==>MyErrFunc

    [/autoit]

    Beispiel:

    Spoiler anzeigen
    [autoit]

    ;~ Greek

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

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Email versender", 396, 294, 1153, 185)
    $Input1 = GUICtrlCreateInput("", 8, 40, 121, 21)
    $Input2 = GUICtrlCreateInput("", 248, 40, 121, 21)
    $Label1 = GUICtrlCreateLabel("Mail sever: Für http://www.web.de ist er smtp.web.de ", 8, 16, 229, 17)
    $Label2 = GUICtrlCreateLabel("Name des Absenders", 248, 16, 105, 17)
    $Label3 = GUICtrlCreateLabel("Absender email addresse", 8, 72, 122, 17)
    $Input3 = GUICtrlCreateInput("", 8, 96, 121, 21)
    $Input4 = GUICtrlCreateInput("", 248, 96, 121, 21)
    $Label4 = GUICtrlCreateLabel("Empfänger email addresse", 248, 72, 128, 17)
    $Input5 = GUICtrlCreateInput("", 8, 152, 121, 21)
    $Label5 = GUICtrlCreateLabel("Betreff", 8, 128, 35, 17)
    $Label6 = GUICtrlCreateLabel(" Text ", 248, 128, 34, 17)
    $Input6 = GUICtrlCreateInput("", 248, 152, 121, 21)
    $Label7 = GUICtrlCreateLabel("Nochmal Absender email", 8, 184, 121, 17)
    $Input7 = GUICtrlCreateInput("", 8, 208, 121, 21)
    $Input8 = GUICtrlCreateInput("", 248, 208, 121, 21)
    $Label8 = GUICtrlCreateLabel("Passwort der Absender email", 248, 184, 140, 17)
    $Button1 = GUICtrlCreateButton("Email versenden", 152, 248, 100, 25, 0)
    $Button2 = GUICtrlCreateButton("Abbrechen", 312, 256, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $rc = _INetSmtpMailCom(GUICtrlRead( $Input1),GUICtrlRead($Input2),GUICtrlRead($Input3), GUICtrlRead($Input4), GUICtrlRead($Input5), GUICtrlRead($Input6), "", "","", GUICtrlRead($Input7), GUICtrlRead($Input8))
    If @error then
    msgbox(0,"Error sending message","Error code:" & @error & " Description:" & $rc)
    EndIf
    Case $Button2
    Exit
    EndSwitch
    WEnd

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

    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "")
    $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Cc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
    Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
    For $ex = 1 To $S_Files2Attach[0]
    $S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
    SetError(1)
    return 0
    EndIf
    Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    ;Authenticated SMTP
    If $s_Username <> "" Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Sent the Message
    $objEmail.Send
    if @error then
    SetError(2)
    return $oMyRet[1]
    EndIf
    EndFunc;==>_INetSmtpMailCom
    ;
    ;
    ; Com Error Handler
    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description,3)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
    EndFunc;==>MyErrFunc

    [/autoit]
  • MouseMove+ Bild geht das?

    • Greek
    • 1. Juni 2009 um 21:57

    Hm komisch, wo liegt das den?

    Wenn das Script im selben Ordner mit dem Bild liegt, müsste das eigentlich gehen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $pic=GUICtrlCreatePic ( @ScriptDir &"\l0g0ut1.jpg", 20, 20, 73, 27 )
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $pic
    _PrimaryDownFunc()
    EndSwitch
    WEnd

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

    Func _PrimaryDownFunc()
    MouseMove ( 100, 100 )
    EndFunc

    [/autoit]
  • MouseMove+ Bild geht das?

    • Greek
    • 1. Juni 2009 um 21:24

    Ups, so gehts ja auch:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    ;~ #include <GUICtrlSetOnHover_UDF.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $pic=GUICtrlCreatePic ( "l0g0ut1.jpg", 20, 20, 73, 27 )
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;~ _GUICtrl_SetOnHover($pic , Default , Default , "_PrimaryDownFunc" )

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $pic
    _PrimaryDownFunc()

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

    EndSwitch
    WEnd

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

    Func _PrimaryDownFunc()
    MouseMove ( 100, 100 )
    EndFunc

    [/autoit]
  • MouseMove+ Bild geht das?

    • Greek
    • 1. Juni 2009 um 21:20

    So z.B.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUICtrlSetOnHover_UDF.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $pic=GUICtrlCreatePic ( "l0g0ut1.jpg", 20, 20, 73, 27 )
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    _GUICtrl_SetOnHover($pic , Default , Default , "_PrimaryDownFunc" )

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _PrimaryDownFunc()
    MouseMove ( 100, 100 )
    EndFunc

    [/autoit]

    Die include gibts hier:

    http://www.autoitscript.com/forum/index.php?showtopic=55120&hl=_GUICtrl_SetOnHover

  • Cod4 Server Starten

    • Greek
    • 1. Juni 2009 um 21:13

    Mich interessiert warum Shellexecute nicht geht :D

    Kann ich mal sehen wie du es aufgerufen hast? :>

  • Desktop an/aus [+BlockMouse]

    • Greek
    • 31. Mai 2009 um 17:48

    Hat einer im Englischen Forum schon geschrieben: http://www.autoitscript.com/forum/index.php?showtopic=57559

  • brauche dringend hilfe

    • Greek
    • 31. Mai 2009 um 17:18
    Spoiler anzeigen
    [autoit]

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

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

    $Fenster_x = 251
    $Fenster_y = 149
    $Winpos_x = @DesktopWidth / 2 - $Fenster_x / 2
    $Winpos_y = @DesktopHeight / 2 - $Fenster_y / 2

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

    GUICreate("KeyGen", $Fenster_x, $Fenster_y, $Winpos_x, $Winpos_y, BitOR($WS_POPUP, $WS_DLGFRAME), $WS_EX_TOPMOST)
    $Pic = GUICtrlCreatePic("pic.jpg",0,0, $Fenster_x, $Fenster_y,BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$Ws_Disabled))
    $Input = GUICtrlCreateInput("", 22, 40, 205, 21)
    $Generate = GUICtrlCreateButton("Generate", 86, 88, 75, 25, 0)
    $Beenden = GUICtrlCreateButton("X", 232, 0, 19, 17, 0)
    $Label1 = GUICtrlCreateLabel("© by F!resale | 2009", 73, 128, 97, 13)
    GUISetState(@SW_SHOW)

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

    Dim $ARRAY[7] = ['29 A' , '34 B' , '5 C' , '12 D', '19 E', '50 F', '80 F']

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Beenden
    Exit
    Case $Generate
    GUICtrlSetData ( $Input, $ARRAY[Random(0,6,1)] )
    EndSwitch
    WEnd

    [/autoit]

    So dann, oder wie? Für wasn das gut?

  • Shoutbox Chat

    • Greek
    • 30. Mai 2009 um 17:05

    Alle Fehler und Bugs behoben, sollte bei jedem jetzt einwandfrei Funktionieren.
    Wenn ihr noch was findet oder Verbesserungen habt, meldet euch =)

    Viel Spaß damit :D

  • Shoutbox Chat

    • Greek
    • 30. Mai 2009 um 15:49

    Update, neue Version

    - Smilies gehen jetzt.
    - Mit Enter versenden.
    - Ganzer Chat wird im _IECreateEmbedded angezeigt.

  • Shoutbox Chat

    • Greek
    • 30. Mai 2009 um 14:34

    Hiho,

    Shoutbox Chat Version 2.4 !

    Von Progandy und Greek

    Bild:
    [Blockierte Grafik: http://img91.imageshack.us/img91/9057/bildshoutboxchat2.jpg]

    Neues:
    Version 2.0
    - Ihr musst euch nur ein einziges mal einloggen! Beim nächsten Start einfach warten bis er fertig geladen hat und ihr seit eingelogt ( Also nicht ausloggen! ).
    - Online Liste.
    - Chat speichern.
    - Mehrere Zeilen schreiben. ( Zeilenumbruch mit Shift + Enter )
    Version 2.1
    - Online Liste auf und zu klappen.
    - Fehler behoben
    Version 2.2
    - Bug mit farbigen Namen behoben
    Version 2.3
    - Bug mit Freunden behoben
    Version 2.4
    - Wenn der Shoutbox Client minimiert ist, werdet ihr per TrayTip benachrichtigt wenn jemand geschrieben hat.

    Die beiden includes braucht ihr:

    WinHTTPConstants.au3
    WinHTTP.au3

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Version=beta
    #AutoIt3Wrapper_Icon=ShoutBoxClient.ico
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Run_Obfuscator=y
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; ShoutboxChat Version 2.4

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

    ;#BETA
    #include <ButtonConstants.au3>
    #include <WinHTTP.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <String.au3>
    #include <Date.au3>
    #include <IE.au3>
    #include <Array.au3>
    #include <WinAPI.au3>

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

    Global $__LASTMESSAGE = 0, $hw_connect, $hw_open, $LogOutLink = ""
    Global $_LOGIN_Cookie = IniRead("ShoutBoxClient.ini", "Data", "LogInData", "")
    DirCreate(@ScriptDir & "\ShoutBoxLog\")
    #region ### START Koda GUI section ### Form=
    Opt("GUIResizeMode", 802)
    $MainGUI = GUICreate("AutoIt Shoutbox Chat -- © by Greek und Prog@ndy", 709, 374, @DesktopWidth / 2 - 300, @DesktopHeight / 2 - 250, BitOR($GUI_SS_DEFAULT_GUI, $WS_CLIPCHILDREN))
    $oIE = _IECreateEmbedded()
    $ChatAnzeige = GUICtrlCreateObj($oIE, 16, 16, 522, 261)
    $Benutzername = GUICtrlCreateInput(IniRead("ShoutBoxClient.ini", "Data", "User", ""), 416, 286, 121, 21)
    $Passwort = GUICtrlCreateInput("", 416, 310, 121, 21, $ES_PASSWORD)
    $Einloggen = GUICtrlCreateButton("Einloggen", 440, 335, 81, 25)
    $Ausloggen = GUICtrlCreateButton("Ausloggen", 440, 335, 81, 25)
    GUICtrlSetState($Ausloggen, $GUI_HIDE)
    $Absenden = GUICtrlCreateButton("&Absenden", 16, 338, 75, 25)
    GUICtrlSetState($Absenden, $GUI_DISABLE)
    $Aktualisieren = GUICtrlCreateButton("Aktualisieren (F5)", 116, 338, 100, 25)
    $Speichern = GUICtrlCreateButton("Speichern", 226, 338, 100, 25)
    $Text = GUICtrlCreateEdit("", 16, 286, 385, 45, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL))

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

    $btnExpandHide = GUICtrlCreateButton("<", 538, 16, 15, 343)
    GUICtrlCreateLabel("Flüstern an:", 553, 16, 80, 20)
    $WhisperList = GUICtrlCreateList("", 553, 36, 150, 330)
    $TopMost = GUICtrlCreateCheckbox("TopMost", 640, 16, 60, 15)
    If IniRead("ShoutBoxClient.ini", "Data", "OnTop", "") = "True" Then
    WinSetOnTop($MainGUI, "", 1)
    GUICtrlSetState($TopMost, $GUI_CHECKED)
    EndIf
    If IniRead("ShoutBoxClient.ini", "Data", "ShowOnline", "True") = "False" Then
    _ShowOnlineList(False)
    EndIf

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

    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    $ClearDUMMY = GUICtrlCreateDummy()
    Local $Accels[4][2] = [["^{F5}", $Aktualisieren],["{F5}", $Aktualisieren],["{ENTER}", $Absenden],["{ESC}", $ClearDUMMY]]
    GUISetAccelerators($Accels)

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

    Global $hw_open = _WinHttpOpen("AutoIt ShoutBoxClient")
    Global $hw_connect = _WinHttpConnect($hw_open, "autoit.de")
    OnAutoItExitRegister("CloseAllHandles")

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

    _IENavigate($oIE, "about:blank")
    _IEDocWriteHTML($oIE, '<html><head><script type="text/javascript">document.oncontextmenu = function(e){return false;};</script><base href="http://autoit.de/"><link rel="stylesheet" type="text/css" media="screen" href="wcf/style/style-3.css" /></head><body style="margin:0px; padding:0px;"><div class="shoutboxMessageFrame shoutboxFrameInner container-2" style="margin:0px; padding:0px; position:absolute; top:0px; left:0px; width:100%; height:100%;"><div id="shoutboxcontent" class="shoutboxMessageFrame shoutboxFrameInner container-2 smallFont" style="text-align:left; margin:0px; padding:0px;"></div></div></body></html>');
    Global $oShoutBox = _IEGetObjById($oIE, "shoutboxcontent")

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

    _TryLogInCookie()
    _GetNewestPost()
    $FirstStart = False

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

    AdlibRegister("_GetNewestPostAd", 5000)

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

    Func _SaveLog()
    $LogPath = @ScriptDir & "\ShoutBoxLog\" & @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & "-" & @MIN & "-" & @SEC & ".htm"
    FileWrite($LogPath, _IEDocReadHTML($oIE))
    EndFunc ;==>_SaveLog
    Global $rLastText = ""
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Einloggen
    $u = GUICtrlRead($Benutzername)
    $p = GUICtrlRead($Passwort)
    _Login($u, $p)
    Case $Ausloggen
    _LogOut()
    Case $Absenden
    If BitAND(GUICtrlGetState($Absenden), $GUI_DISABLE) = $GUI_DISABLE Then
    $u = GUICtrlRead($Benutzername)
    $p = GUICtrlRead($Passwort)
    _Login($u, $p)
    Else
    $rText = GUICtrlRead($Text)
    If $rText <> "" And $rText <> $rLastText Then
    $rLastText = StringRegExpReplace($rText, "\A(\/w)+", "")
    GUICtrlSetData($Text, "")
    GUICtrlSetData($WhisperList, "-------------")
    _Nachricht($rText)
    ControlFocus($MainGUI, "", $Text)
    EndIf
    EndIf
    Case $Aktualisieren
    _GetNewestPost()
    Case $ClearDUMMY
    GUICtrlSetData($WhisperList, "-------------")
    GUICtrlSetData($Text, "")
    Case $Speichern
    _SaveLog()
    Case $WhisperList
    $WTarget = GUICtrlRead($WhisperList)
    If $WTarget = "-------------" Or $WTarget = "" Then
    GUICtrlSetData($Text, StringRegExpReplace(GUICtrlRead($Text), '\A\/w ".*?"\h?', ""))
    ;~ GUICtrlSetData($Text, StringRegExpReplace(GUICtrlRead($Text),'\A".*?"\h?',""))
    Else
    GUICtrlSetData($Text, '/w "' & $WTarget & '" ' & StringRegExpReplace(GUICtrlRead($Text), '\A\/w ".*?"\h?', ""))
    ;~ GUICtrlSetData($Text, '"' & $WTarget&'" '&StringRegExpReplace(GUICtrlRead($Text),'\A".*?"\h?',""))
    EndIf
    Case $TopMost
    Local $Attrib = BitAND(GUICtrlRead($TopMost), $GUI_CHECKED) = $GUI_CHECKED
    IniWrite("ShoutBoxClient.ini", "Data", "OnTop", $Attrib)
    WinSetOnTop($MainGUI, "", $Attrib)
    Case $btnExpandHide
    Switch GUICtrlRead($btnExpandHide)
    Case "<"
    _ShowOnlineList(False)
    Case ">"
    _ShowOnlineList(True)
    EndSwitch
    EndSwitch
    WEnd
    Func _ShowOnlineList($Show)
    Local $pos = WinGetPos($MainGUI)
    Switch $Show
    Case False
    GUICtrlSetData($btnExpandHide, ">")
    WinMove($MainGUI, "", $pos[0], $pos[1], $pos[2] - 156, $pos[3])
    GUICtrlSetState($WhisperList, @SW_HIDE)
    GUICtrlSetState($TopMost, @SW_HIDE)
    Case True
    GUICtrlSetData($btnExpandHide, "<")
    WinMove($MainGUI, "", $pos[0], $pos[1], $pos[2] + 156, $pos[3])
    GUICtrlSetState($WhisperList, @SW_SHOW)
    GUICtrlSetState($TopMost, @SW_SHOW)
    EndSwitch
    IniWrite("ShoutBoxClient.ini", "Data", "ShowOnline", $Show = True)
    EndFunc ;==>_ShowOnlineList
    Func _Reconnect()
    ; Prog@ndy
    _WinHTTPCloseHandle($hw_connect)
    Global $hw_connect = _WinHttpConnect($hw_open, "autoit.de")
    Global $_LOGIN_Cookie = IniRead("ShoutBoxClient.ini", "Data", "LogInData", "")
    EndFunc ;==>_Reconnect

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

    Func CloseAllHandles()
    _WinHTTPCloseHandle($hw_connect)
    _WinHTTPCloseHandle($hw_open)
    EndFunc ;==>CloseAllHandles

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

    Func _AddLogIn($hRequest)
    If $_LOGIN_Cookie Then _WinHTTPAddRequestHeaders($hRequest, $_LOGIN_Cookie, BitOR($WINHTTP_ADDREQ_FLAG_ADD, $WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON))
    EndFunc ;==>_AddLogIn
    Func _ShowLogOut()
    GUICtrlSetState($Einloggen, $GUI_HIDE)
    GUICtrlSetState($Ausloggen, $GUI_SHOW)
    GUICtrlSetState($Benutzername, $GUI_DISABLE)
    GUICtrlSetState($Passwort, $GUI_DISABLE)
    GUICtrlSetState($Absenden, $GUI_ENABLE)
    GUICtrlSetState($Text, $GUI_ENABLE)
    EndFunc ;==>_ShowLogOut
    Func _LogOut()
    $h_openRequest = _WinHttpOpenRequest($hw_connect, "GET", $LogOutLink, "HTTP/1.1")
    _AddLogIn($h_openRequest)
    _WinHttpSendRequest($h_openRequest)
    _WinHttpReceiveResponse($h_openRequest)
    _WinHTTPCloseHandle($h_openRequest)
    GUICtrlSetState($Einloggen, $GUI_SHOW)
    GUICtrlSetState($Ausloggen, $GUI_HIDE)
    GUICtrlSetState($Benutzername, $GUI_ENABLE)
    GUICtrlSetState($Passwort, $GUI_ENABLE)
    GUICtrlSetState($Absenden, $GUI_DISABLE)
    GUICtrlSetState($Text, $GUI_DISABLE)
    $_LOGIN_Cookie = ""
    IniWrite("ShoutBoxClient.ini", "Data", "LogInData", "")
    EndFunc ;==>_LogOut
    Func _TryLogInCookie()
    $h_openRequest = _WinHttpOpenRequest($hw_connect, "GET", "index.php", "HTTP/1.1")
    _AddLogIn($h_openRequest)

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

    _WinHttpSendRequest($h_openRequest)
    _WinHttpReceiveResponse($h_openRequest)
    Local $data
    Do
    $data &= _WinHTTPReadData($h_openRequest, 1)
    Until @extended = 0
    If $data = "" Then
    MsgBox(16, 'AutoIt ShoutBox Chat - Fehler', "Fehler bei der Verbindung zu http://www.autoit.de. Das Programm wird beendet")
    Exit
    EndIf
    _WinHTTPCloseHandle($h_openRequest)
    $LogOutLink = StringRegExp($data, "(action=UserLogout&(?:amp;)?t=[a-zA-Z0-9]+)", 3)
    If Not @error Then
    _ShowLogOut()
    $LogOutLink = "/index.php?" & $LogOutLink[0]
    Else
    $LogOutLink = ""
    EndIf
    EndFunc ;==>_TryLogInCookie
    Func _Login($user, $pw)
    Local $post = "loginUsername=" & _URIEncode($user) & "&loginPassword=" & _URIEncode($pw) & "&url=%2Findex.php%3Fform%3DUserLogin&&x=7&y=7&useCookies=1"
    Local $h_openRequest = _WinHttpOpenRequest($hw_connect, "POST", "/index.php?form=UserLogin", "HTTP/1.1", "http://www.autoit.de/")
    _WinHttpSendRequest($h_openRequest, "Content-Type: application/x-www-form-urlencoded" & @CRLF, $post)
    _WinHttpReceiveResponse($h_openRequest)
    Local $header = "", $Index = 0
    Do
    $header &= _WinHttpQueryHeadersEx($h_openRequest, $WINHTTP_QUERY_SET_COOKIE, $WINHTTP_HEADER_NAME_BY_INDEX, $Index)
    $Index = @extended
    Until $Index = 0
    $header = StringRegExp($header, "(wcf_.*?;)", 3)
    Local $CookieString = "Cookie:"
    For $i = 0 To UBound($header) - 1
    $CookieString &= " " & $header[$i]
    Next
    IniWrite("ShoutBoxClient.ini", "Data", "LogInData", $CookieString)
    IniWrite("ShoutBoxClient.ini", "Data", "User", $user)
    _WinHTTPCloseHandle($h_openRequest)
    _TryLogInCookie()
    EndFunc ;==>_Login

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

    Func _URIEncode($sData)
    ; Prog@ndy
    Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
    Local $nChar
    $sData = ""
    For $i = 1 To $aData[0]
    ;~ ConsoleWrite($aData[$i] & @CRLF)
    $nChar = Asc($aData[$i])
    Switch $nChar
    Case 45, 46, 48 - 57, 65 To 90, 95, 97 To 122, 126
    $sData &= $aData[$i]
    Case 32
    $sData &= "+"
    Case Else
    $sData &= "%" & Hex($nChar, 2)
    EndSwitch
    Next
    Return $sData
    EndFunc ;==>_URIEncode

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

    Func _URIDecode($sData)
    ; Prog@ndy
    Local $aData = StringSplit(StringReplace($sData, "+", " ", 0, 1), "%")
    $sData = ""
    For $i = 2 To $aData[0]
    $aData[1] &= Chr(Dec(StringLeft($aData[$i], 2))) & StringTrimLeft($aData[$i], 2)
    Next
    Return BinaryToString(StringToBinary($aData[1], 1), 4)
    EndFunc ;==>_URIDecode

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

    Func _GetNewestPostAd()
    _GetNewestPost()
    EndFunc ;==>_GetNewestPostAd

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

    Func _GetNewestPost($hRequest = -1)
    If $hRequest = -1 Then
    $hRequest = _WinHttpOpenRequest($hw_connect, "GET", "/index.php?page=ShoutboxContent&output=xml&since=" & $__LASTMESSAGE, "HTTP/1.1", "http://www.autoit.de/")
    _AddLogIn($hRequest)
    _WinHttpSendRequest($hRequest)
    EndIf
    _WinHttpReceiveResponse($hRequest)
    Local $data
    Do
    $data &= _WinHTTPReadData($hRequest, 1)
    Until @extended = 0
    _WinHTTPCloseHandle($hRequest)
    Local $LASTMESSAGE = StringRegExp($data, "<last>(.*?)</last>", 1)
    If IsArray($LASTMESSAGE) And $LASTMESSAGE[0] <> $__LASTMESSAGE Then
    $__LASTMESSAGE = $LASTMESSAGE[0]
    Local $messages = StringRegExp($data, "(?s)<line><!\[CDATA\[(.*?)\]\]></line>", 3)
    Local $insert = ""
    For $i = 0 To UBound($messages) - 1
    $insert &= $messages[$i] & "<br />" & @CRLF
    Next
    If StringLen($insert) Then
    _IEDocInsertHTML($oShoutBox, $insert)
    $oIE.Document.parentwindow.Scroll(0, 99999)
    $state = WinGetState("AutoIt Shoutbox Chat -- © by Greek und Prog@ndy")
    If BitAND($state, 16) Then
    $result = StringRegExp($insert, "javascript\:parent\.sbWhisperTo\('(.*?)'\);", 1)
    If IsArray($result) Then
    TrayTip("Shoutbox Client", "Neue Nachricht von: " & $result[0], 2, 1)
    Sleep(2000)
    EndIf
    EndIf
    EndIf
    _ReadOnlineList($data)
    EndIf
    EndFunc ;==>_GetNewestPost

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

    Func _ReadOnlineList(ByRef $data)
    Local $temp = GUICtrlRead($WhisperList)
    $data = StringRegExp($data, "(?s)<onlineList>.*?<a(.*)</onlineList>", 1)
    $data = StringRegExp($data[0], '">(?:<[^>]*>)*(.+?)(?:</[^>]*>)*?</a>', 3)
    GUICtrlSetData($WhisperList, "|-------------|" & _ArrayToString($data), $temp)
    EndFunc ;==>_ReadOnlineList

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

    Func _Nachricht($Text)
    $Text = _URIEncode($Text)
    ;$iDateCalc = _DateDiff( 's',"1970/01/01 00:00:00",_NowCalc())
    $h_openRequest2 = _WinHttpOpenRequest($hw_connect, "POST", "/index.php?page=ShoutboxContent&output=xml", "HTTP/1.1", "http://www.autoit.de/")
    _AddLogIn($h_openRequest2)
    _WinHttpSendRequest($h_openRequest2, "Content-Type: application/x-www-form-urlencoded; charset=UTF-8", "since=" & $__LASTMESSAGE & "&message=" & $Text)
    _GetNewestPost($h_openRequest2)
    EndFunc ;==>_Nachricht

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

    Func _WinHttpQueryHeadersEx($hRequest, $iInfoLevel = $WINHTTP_QUERY_RAW_HEADERS_CRLF, $sName = $WINHTTP_HEADER_NAME_BY_INDEX, $Index = $WINHTTP_NO_HEADER_INDEX)
    Local $tpName = "wstr"
    If $sName = $WINHTTP_HEADER_NAME_BY_INDEX Then $tpName = "ptr"
    Local $struct = DllStructCreate("dword")

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

    Local $a_iCall = DllCall("winhttp.dll", "int", "WinHttpQueryHeaders", _
    "hwnd", $hRequest, _
    "dword", $iInfoLevel, _
    $tpName, $sName, _
    "ptr", 0, _
    "ptr", DllStructGetPtr($struct), _
    "dword*", $Index)

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

    If @error Or $a_iCall[0] Then
    Return SetError(1, 0, 0)
    EndIf

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

    Local $i_size = DllStructGetData($struct, 1)

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

    If Not $i_size Then
    Return SetError(0, 0, "")
    EndIf

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

    Local $lpBuffer = DllStructCreate("wchar[" & $i_size & "]")

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

    $a_iCall = DllCall("winhttp.dll", "int", "WinHttpQueryHeaders", _
    "hwnd", $hRequest, _
    "dword", $iInfoLevel, _
    $tpName, $sName, _
    "ptr", DllStructGetPtr($lpBuffer), _
    "ptr", DllStructGetPtr($struct), _
    "dword*", $Index)

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

    If @error Or Not $a_iCall[0] Then
    Return SetError(2, 0, 0)
    EndIf

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

    Return SetError(0, $a_iCall[6], DllStructGetData($lpBuffer, 1))

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

    EndFunc ;==>_WinHttpQueryHeadersEx

    [/autoit]

    Update: 17.1.10

    Greek & Prog@ndy

  • GUI soll ausweichen

    • Greek
    • 28. Mai 2009 um 18:56

    Ist doch bei Winmove im Parameter dabei?

    Spoiler anzeigen
    [autoit]

    $x = 200
    $y = 200

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

    $hwnd = GUICreate("Fang mich", $x, $y)

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

    GUISetState()

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

    While 1
    $Pos = GUIGetCursorInfo($hwnd)
    If $Pos[0] < $x And $Pos[0] > 0 And $Pos[1] < $y And $Pos[1] > 0 Then
    While 1
    $Pos = GUIGetCursorInfo($hwnd)
    If $Pos[0] < $x And $Pos[0] > 0 And $Pos[1] < $y And $Pos[1] > 0 Then
    WinMove($hwnd, "", Random(0, @DesktopWidth, 1) - $x - 20, Random(0, @DesktopHeight, 1) - $y - 20, Default, Default, 3 )
    Else
    ExitLoop
    EndIf
    WEnd
    EndIf
    Sleep(10)
    WEnd

    [/autoit]
  • while schleifen problem !

    • Greek
    • 28. Mai 2009 um 17:40
    Zitat von FunH@cker

    also kan man keine while scheife mit buttons stoppen/beenden !

    Doch, les das Edit, hier ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 116, 95, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 16, 16, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 16, 48, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $set = 1

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

    AdlibEnable ( "_check", 120 )

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    start()
    Case $Button2
    stop ()
    EndSwitch
    WEnd

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

    Func start()
    $set = 1
    Run("notepad.exe")
    WinWaitActive ( "Unbenannt - Editor" )
    WinActivate ( "Unbenannt - Editor" )
    While $set=1
    Send("hello")
    Sleep ( 300 )
    WEnd
    EndFunc

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

    Func stop()
    $set=0
    EndFunc

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

    Func _check()
    $nMsg=GUIGetMsg()
    If $nMsg=$Button2 Then $set=0
    EndFunc

    [/autoit]

    Aber wie gesagt, das ist nicht zu 100% zuverlässig.

  • while schleifen problem !

    • Greek
    • 28. Mai 2009 um 17:34

    Bedingung in der While Schleife angeben, ist Kopf gesteuert im gegensatz zu Do ... Until.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 116, 95, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 16, 16, 75, 25, $WS_GROUP)
    ;~ $Button2 = GUICtrlCreateButton("Button2", 16, 48, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $set = 1

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

    HotKeySet ( "!e", "stop" )

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    start()
    ;~ Case $Button2
    ;~ stop ()
    EndSwitch
    WEnd

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

    Func start()
    $set = 1
    Run("notepad.exe")
    WinWaitActive ( "Unbenannt - Editor" )
    WinActivate ( "Unbenannt - Editor" )
    While $set=1
    Send("hello")
    Sleep ( 300 )
    WEnd
    EndFunc

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

    Func stop()
    $set=0
    EndFunc

    [/autoit]

    Edit: Über die GUI kannst du es nicht beenden, da die nicht mehr abgefragt wird. ( Außer du tust sie mit AdlibEnable immer abfragen, aber das Funktioniert nicht ganz perfekt. )

  • Objektberührung

    • Greek
    • 27. Mai 2009 um 22:54

    Probiers mal mit der Funktion:

    Spoiler anzeigen
    [autoit]

    Func _RectCollision($Rect1X1,$Rect1Y1,$Rect1X2,$Rect1Y2, $Rect2X1, $Rect2Y1, $Rect2X2, $Rect2Y2)
    ; Prog@ndy
    Local Const $tagRECT = "long;long;long;long"
    Local $1 = DllStructCreate($tagRECT)
    Local $2 = DllStructCreate($tagRECT)
    Local $3 = DllStructCreate($tagRECT)
    DllStructSetData($1,1,$Rect1X1)
    DllStructSetData($1,2,$Rect1Y1)
    DllStructSetData($1,3,$Rect1X2)
    DllStructSetData($1,4,$Rect1Y2)
    DllStructSetData($2,1,$Rect2X1)
    DllStructSetData($2,2,$Rect2Y1)
    DllStructSetData($2,3,$Rect2X2)
    DllStructSetData($2,4,$Rect2Y2)
    Local $r = DllCall("User32.dll", "int", "IntersectRect", "ptr", DllStructGetPtr($3), "ptr", DllStructGetPtr($1), "ptr", DllStructGetPtr($2))
    If @error Then Return SetError(1,0,0)
    Return $r[0]<>0
    EndFunc

    [/autoit]

    Ist für Rechtecke, sollte aber recht schnell sein.

  • Button-Status abfragen...

    • Greek
    • 27. Mai 2009 um 21:57

    Ich glaub man brauch das hier dazu:

    Spoiler anzeigen
    [autoit]

    Func _ExplainState($iState, $fPushButton = False)
    Local $sText = ""
    If Not $fPushButton And Not $iState Then Return _
    @CRLF & "Indicates the button is cleared. Same as a return value of zero." & @CRLF
    If BitAND($iState, $BST_CHECKED) = $BST_CHECKED Then _
    $sText &= @CRLF & "Indicates the button is checked." & @CRLF
    If BitAND($iState, $BST_FOCUS) = $BST_FOCUS Then _
    $sText &= @CRLF & "Specifies the focus state. A nonzero value indicates that the button has the keyboard focus." & @CRLF
    If BitAND($iState, $BST_INDETERMINATE) = $BST_INDETERMINATE Then _
    $sText &= @CRLF & "Indicates the button is grayed because the state of the button is indeterminate." & @CRLF
    If $fPushButton Then
    If BitAND($iState, $BST_PUSHED) = $BST_PUSHED Then
    $sText &= @CRLF & "Specifies the highlight state." & @CRLF
    Else
    $sText &= @CRLF & "Specifies not highlighted state." & @CRLF
    EndIf
    EndIf
    Return $sText
    EndFunc ;==>_ExplainState

    [/autoit]
  • 2 Bilder fusionieren

    • Greek
    • 18. Mai 2009 um 20:33
    Zitat von Deepred

    Kann man die Bilder auch nur Transparenz machen und übereinanderlegen?

    Damit:

    Spoiler anzeigen
    [autoit]

    #include<GDIplus.au3>

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

    ; Constants
    Global Const $ColorAdjustTypeDefault = 0
    Global Const $ColorAdjustTypeBitmap = 1
    Global Const $ColorAdjustTypeBrush = 2
    Global Const $ColorAdjustTypePen = 3
    Global Const $ColorAdjustTypeText = 4
    Global Const $ColorAdjustTypeCount = 5
    Global Const $ColorAdjustTypeAny = 6

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

    Global Const $ColorMatrixFlagsDefault = 0
    Global Const $ColorMatrixFlagsSkipGrays = 1
    Global Const $ColorMatrixFlagsAltGray = 2

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

    Global Const $UnitWorld = 0
    Global Const $UnitDisplay = 1
    Global Const $UnitPixel = 2
    Global Const $UnitPoint = 3
    Global Const $UnitInch = 4
    Global Const $UnitDocument = 5
    Global Const $UnitMillimeter = 6

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

    ; Structures and creation functions
    Global Const $tagColorMatrix = "float m1[5]; float m2[5]; float m3[5]; float m4[5]; float m5[5];"

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

    Func _GDIPlus_ColorMatrix( $m1_1, $m1_2, $m1_3, $m1_4, $m1_5, _
    $m2_1, $m2_2, $m2_3, $m2_4, $m2_5, _
    $m3_1, $m3_2, $m3_3, $m3_4, $m3_5, _
    $m4_1, $m4_2, $m4_3, $m4_4, $m4_5, _
    $m5_1, $m5_2, $m5_3, $m5_4, $m5_5 )
    ; Prog@ndy
    ; creates a GDIplus color Matrix
    Local $ColorMatrix = DllStructCreate($tagColorMatrix)
    For $r = 1 To 5
    For $c = 1 To 5
    DllStructSetData($ColorMatrix, $r, Eval("m" & $r & "_" & $c),$c)
    Next
    Next
    Return $ColorMatrix
    EndFunc

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

    Global Const $tagPointF = "float x; float y;"

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GDIPlus_PointFParallelogramm
    ; Description ...:
    ; Syntax.........: _GDIPlus_PointFParallelogramm($nULX, $nULY, $nURX, $nURY, $nLLX, $nLLY)
    ; Parameters ....: $nULX - The X coordinate of the upper left corner of the source image
    ; $nULY - The Y coordinate of the upper left corner of the source image
    ; $nURX - The X coordinate of the upper right corner of the source image
    ; $nURY - The Y coordinate of the upper right corner of the source image
    ; $nLLX - The X coordinate of the lower left corner of the source image
    ; $nLLY - The Y coordinate of the lower left corner of the source image
    ; Return values .: Success -
    ; Failure - 0
    ; Author ........: Malkey
    ; Modified ......: Prog@ndy
    ; Remarks .......:
    ; Related .......:
    ; Link ..........; @@MsdnLink@@
    ; Example .......;
    ; ===============================================================================================================================
    Func _GDIPlus_PointFParallelogramm($nULX, $nULY, $nURX, $nURY, $nLLX, $nLLY)

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

    Local $tPoint = DllStructCreate("float X;float Y;float X2;float Y2;float X3;float Y3")
    DllStructSetData($tPoint, "X", $nULX)
    DllStructSetData($tPoint, "Y", $nULY)
    DllStructSetData($tPoint, "X2", $nURX)
    DllStructSetData($tPoint, "Y2", $nURY)
    DllStructSetData($tPoint, "X3", $nLLX)
    DllStructSetData($tPoint, "Y3", $nLLY)
    Return $tPoint
    EndFunc

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GDIPlus_PointLParallelogramm
    ; Description ...:
    ; Syntax.........: _GDIPlus_PointLParallelogramm($nULX, $nULY, $nURX, $nURY, $nLLX, $nLLY)
    ; Parameters ....: $nULX - The X coordinate of the upper left corner of the source image
    ; $nULY - The Y coordinate of the upper left corner of the source image
    ; $nURX - The X coordinate of the upper right corner of the source image
    ; $nURY - The Y coordinate of the upper right corner of the source image
    ; $nLLX - The X coordinate of the lower left corner of the source image
    ; $nLLY - The Y coordinate of the lower left corner of the source image
    ; $count - Specifies the number of points (x,y)'s in the structure.
    ; Return values .: Success -
    ; Failure - 0
    ; Author ........: Malkey
    ; Modified ......: Prog@ndy
    ; Remarks .......:
    ; Related .......:
    ; Link ..........; @@MsdnLink@@
    ; Example .......;
    ; ===============================================================================================================================
    Func _GDIPlus_PointLParallelogramm($nULX, $nULY, $nURX, $nURY, $nLLX, $nLLY)
    Local $tPoint = DllStructCreate("int X;int Y;int X2;int Y2;int X3;int Y3")
    DllStructSetData($tPoint, "X", $nULX)
    DllStructSetData($tPoint, "Y", $nULY)
    DllStructSetData($tPoint, "X2", $nURX)
    DllStructSetData($tPoint, "Y2", $nURY)
    DllStructSetData($tPoint, "X3", $nLLX)
    DllStructSetData($tPoint, "Y3", $nLLY)
    Return $tPoint
    EndFunc

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

    ; Functions
    Func _GDIPlus_ImageAttributesCreate()
    ; Prog@ndy
    Local $aResult = DllCall($ghGDIpDLL, "int", "GdipCreateImageAttributes", "ptr*", 0)
    If @error Then Return SetError(1,@error,0)
    Return SetError($aResult[0],0,$aResult[1])
    EndFunc

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

    Func _GDIPlus_ImageAttributesDispose($pImageAttributes)
    ; Prog@ndy
    Local $aResult = DllCall($ghGDIpDLL, "int", "GdipDisposeImageAttributes", "ptr", $pImageAttributes)
    If @error Then Return SetError(1,@error,0)
    Return SetError($aResult[0],0,$aResult[0]=0)
    EndFunc
    Func _GDIPlus_ImageAttributesSetColorMatrix($pImageAttributes, $type, $enableFlag, $colorMatrix, $grayMatrix, $flags)
    ; Prog@ndy
    Local $aResult = DllCall($ghGDIpDLL, "int", "GdipSetImageAttributesColorMatrix", "ptr", $pImageAttributes, "int", $type, "int", $enableFlag, "ptr", $colorMatrix, "ptr", $grayMatrix,"int", $flags)
    If @error Then Return SetError(1,@error,0)
    Return SetError($aResult[0],0,$aResult[0]=0)
    EndFunc

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

    Func _GDIPlus_DrawImagePointsRect($graphics, $image, $points, $count, $srcx, $srcy, $srcwidth, $srcheight, $srcUnit, $imageAttributes, $callback=0, $callbackData=0)
    ; Prog@ndy
    Local $aResult = DllCall($ghGDIpDLL, "int", "GdipDrawImagePointsRect", "ptr", $graphics, "ptr", $image,"ptr", $points, "INT", $count, _
    "float", $srcx, "float", $srcy, "float", $srcwidth, "float", $srcheight, "int", $srcUnit, "ptr", $imageAttributes, "ptr", $callback, "ptr", $callbackData)
    If @error Then Return SetError(1,@error,0)
    Return SetError($aResult[0],0,$aResult[0]=0)
    EndFunc

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

    Func _GDIPlus_DrawImagePointsRectI($graphics, $image, $points, $count, $srcx, $srcy, $srcwidth, $srcheight, $srcUnit, $imageAttributes, $callback=0, $callbackData=0)
    ; Prog@ndy
    Local $aResult = DllCall($ghGDIpDLL, "int", "GdipDrawImagePointsRectI", "ptr", $graphics, "ptr", $image,"ptr", $points, "INT", $count, _
    "int", $srcx, "int", $srcy, "int", $srcwidth, "int", $srcheight, "int", $srcUnit, "ptr", $imageAttributes, "ptr", $callback, "ptr", $callbackData)
    If @error Then Return SetError(1,@error,0)
    Return SetError($aResult[0],0,$aResult[0]=0)
    EndFunc

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

    ; Author ........: Paul Campbell (PaulIA)
    ; Modified.......: Gary Frost, Prog@ndy
    Func _GDIPlus_GraphicsDrawImageRectRectAttr($hGraphics, $hImage, $iSrcX, $iSrcY, $iSrcWidth, $iSrcHeight, $iDstX, $iDstY, $iDstWidth, $iDstHeight, $iUnit = 2, $pImageAttributes=0)
    Local $aResult

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

    $aResult = DllCall($ghGDIPDll, "int", "GdipDrawImageRectRectI", "ptr", $hGraphics, "ptr", $hImage, "int", $iDstX, "int", _
    $iDstY, "int", $iDstWidth, "int", $iDstHeight, "int", $iSrcX, "int", $iSrcY, "int", $iSrcWidth, "int", _
    $iSrcHeight, "int", $iUnit, "ptr", $pImageAttributes, "ptr", 0, "ptr", 0)
    If @error Then Return SetError(@error, @extended, False)
    Return SetError($aResult[0], 0, $aResult[0] = 0)
    EndFunc ;==>_GDIPlus_GraphicsDrawImageRectRectAttr

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

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

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

    ; Example

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

    _GDIPlus_Startup()

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

    $hImg1 = _GDIPlus_ImageLoadFromFile("HINTERGRUNDBILD.jpg")
    $hImg2 = _GDIPlus_ImageLoadFromFile("TRANSPARENTER_VORDERGRUND.JPG")

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

    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hImg1)

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

    $ImageAttributes = _GDIPlus_ImageAttributesCreate()

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

    $ColorMatrix = _GDIPlus_ColorMatrix( _
    1.0, 0.0, 0.0, 0.0, 0.0, _
    0.0, 1.0, 0.0, 0.0, 0.0, _
    0.0, 0.0, 1.0, 0.0, 0.0, _
    0.0, 0.0, 0.0, 0.5, 0.0, _ ; --> die 0.5 gibt die Transparenz an (0.5 = 50% sichtbar, 0.3= 30% sichtbar ...)
    0.0, 0.0, 0.0, 0.0, 1.0 _
    )

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

    _GDIPlus_ImageAttributesSetColorMatrix($ImageAttributes, $ColorAdjustTypeBitmap, 1, DllStructGetPtr($ColorMatrix), 0, $ColorMatrixFlagsDefault)

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

    _DrawImage($hGraphics, $hImg2, 10,10,$ImageAttributes)
    ;~ _DrawImage($hGraphics, $hImg2, 0,0,0)

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

    _GDIPlus_ImageSaveToFile($hImg1, @DesktopDir & "\test.jpg")

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

    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_ImageDispose($hImg1)
    _GDIPlus_ImageDispose($hImg2)

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

    $x2 = _GDIPlus_ImageAttributesDispose($ImageAttributes)

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

    Func _DrawImage($hGraphics, $hImage, $X, $Y, $pImageAttributes)
    ; Prog@ndy
    Local $H = _GDIPlus_ImageGetHeight($hImage)
    Local $W = _GDIPlus_ImageGetWidth($hImage)
    ;~ Local $tPoint = _GDIPlus_PointFParallelogramm($X, $Y, $X+$W, $Y, $X, $Y+$H)
    ;~ Local $Result = _GDIPlus_DrawImagePointsRect($hGraphics, $hImage, DllStructGetPtr($tPoint), 3, 0, 0, $W, $H, 2, $pImageAttributes)
    Local $Result = _GDIPlus_GraphicsDrawImageRectRectAttr($hGraphics, $hImage, 0, 0, $W, $H, $X, $Y, $W, $H, 2, $pImageAttributes)
    Return SetError(@error,0,$Result)
    EndFunc

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

    _GDIPlus_Shutdown()

    [/autoit]

    Ist von progandy

    [autoit]

    $hImg1 = _GDIPlus_ImageLoadFromFile("HINTERGRUNDBILD.jpg")
    $hImg2 = _GDIPlus_ImageLoadFromFile("TRANSPARENTER_VORDERGRUND.JPG")

    [/autoit]

    Dort musst du deine Bilder eintragen.

  • Fehlerhaftes Script

    • Greek
    • 17. Mai 2009 um 22:25

    Also von ungefair 30 Versuchen hat bei mir 3 mal die Grafik gefällt.

    Muss wohl irgendwas mit dem Random zu tun haben.

  • Problem mit Radio

    • Greek
    • 17. Mai 2009 um 14:08

    Wie willst du es dann haben?

    Versteh dein Text noch nicht so^^

  • Problem mit Radio

    • Greek
    • 17. Mai 2009 um 13:59

    Du möchest die Lieder vom PC anhand des Namens also suchen lassen?

    Das geht ganz einfach, aber ist recht sinnlos

    Spoiler anzeigen
    [autoit]

    $lied=FileFindRecursive( "D:", "Madcon - Beggin.mp3", 1, 0 )
    MsgBox(0,"", $lied)

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

    Func FileFindRecursive($szStartPath, $szFileName, $iFlag = 0, $iRetFormat = 0, $szDelim = @CRLF)
    Local $hFF, $szFindName, $szRetValue = ""

    If $iFlag = Default Then $iFlag = 0
    If $iRetFormat = Default Then $iRetFormat = 0
    If $szDelim = Default Then $szDelim = @CRLF

    If StringRight($szStartPath,1) <> "\" Then $szStartPath &= "\"

    If $iFlag < 2 Then
    $hFF = FileFindFirstFile($szStartPath & $szFileName)

    If $hFF <> -1 Then
    While True
    $szFindName = FileFindNextFile($hFF)
    If @error Then
    FileClose($hFF)
    ExitLoop
    EndIf
    If $szRetValue <> "" Then $szRetValue &= $szDelim
    $szRetValue &= $szStartPath & $szFindName
    WEnd
    EndIf
    EndIf
    $hFF = FileFindFirstFile($szStartPath & "*.*")

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

    If $hFF = -1 Then Return $szRetValue

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

    While True
    $szFindName = FileFindNextFile($hFF)
    If @error Then
    FileClose($hFF)
    ExitLoop
    EndIf

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

    If StringInStr(FileGetAttrib($szStartPath & $szFindName), "d") Then
    If ($szRetValue <> "") And (StringRight($szRetValue, StringLen($szDelim)) <> $szDelim) Then $szRetValue &= $szDelim
    If ($iFlag = 0) Or ($iFlag = 2) Then $szRetValue &= $szStartPath & $szFindName & "\" & $szDelim
    $szRetValue &= FileFindRecursive($szStartPath & $szFindName & "\", $szFileName, $iFlag, 0, $szDelim)
    EndIf
    WEnd

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

    If $iRetFormat = 0 Then
    Return $szRetValue
    Else
    Return StringSplit($szRetValue, $szDelim, 1)
    EndIf
    EndFunc ;==>FileFindRecursive

    [/autoit]

    Time: 76.921

    76 Sekunden um ein Lied zu finden.

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™