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

Beiträge von i2c

  • Msg eines GUI Controls in einer funktion auserhalb der while schleife

    • i2c
    • 20. Mai 2010 um 20:37

    Sorry, aber jetzt steh ich total auf'm Schlauch und hab das Gefühl das hier könnte für mich in einer kleinen Peinlichkeit enden, aber ...

    Welchen Vorteil bring mir in der Praxis die do...until gegenüber dem hier?

    Spoiler anzeigen
    [autoit]

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

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

    Global $aLabels[1][2]
    $aLabels[0][0] = 0

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

    $Form1 = GUICreate("Form1", 117, 33, 192, 124)
    $_Label = _GuiCtrlLabel_Create(8, 8, 86, 17,"xDD", "_GUICTrlLabel_Msg")
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    For $i = 0 To $aLabels[0][0]
    If $nMsg = $aLabels[$i][0] Then Call($aLabels[$i][1])
    Next
    WEnd

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

    Func _GuiCtrlLabel_Create($_LEFT,$_TOP,$_WIDTH,$_HEIGHT,$_Text, $sEvent)
    $aLabels[0][0] += 1
    _Array2DAdd($aLabels, GUICtrlCreateLabel($_Text,$_LEFT,$_TOP,$_WIDTH,$_HEIGHT) & "|" & $sEvent)
    EndFunc ;==>_GuiCtrlLabel_Create

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

    Func _GUICTrlLabel_Msg()
    MsgBox(0,"","")
    EndFunc

    [/autoit]
  • Msg eines GUI Controls in einer funktion auserhalb der while schleife

    • i2c
    • 20. Mai 2010 um 20:19

    Ja, das die Events danach nichtmehr abgefragt werden ist mir bewusst :)
    Ich meinte auch eher, warum nicht generell im OnEventMode bleiben?

    Mir fehlt da im Moment ein Möglicher Grund, warum man dieses eine Event nun unbedingt nicht in der While abfangen sollte?

  • Msg eines GUI Controls in einer funktion auserhalb der while schleife

    • i2c
    • 20. Mai 2010 um 20:05

    Was spricht gegen den OnEventMode ?

  • mal so am Rande.

    • i2c
    • 19. Mai 2010 um 20:24

    Also mir geht es manchmal schon so, das ich aus reiner Langeweile anfange irgendwas zu basteln. Das beschränkt sich nicht nur auf Autoit.
    Meistens ist der praktische Nutzen des Ergebnisses allerdings so gering das es entweder sofort im Müll landet oder bis zur nächsten Aufräumaktion ein Schattendasein im "Was niemand braucht"-Ordner fristet. Die Spanne reicht dabei vom simplen Uploadtools für Seite xy über Klone von Programmen wie dem DynDNS-Updater bis hin zum fertigen Homepage-Layout oder CMS. Also Dinge die man nicht unbedingt in die Öffentlichkeit lassen muss. Zumal die Qualität der Umsetzung teilweise auch sehr fragwürdig ist.

    Wenn dann, so wie letzten Sonntag, mal etwas dabei herauskommt von dem ich glaube das es ansatzweise brauchbar ist, warum dann nicht auch der brreiten Masse ehrlich sagen wie und warum es entstanden ist.

    Ich bin allerdings der Meinung das Dinge, in die man viel (bzw. mehr) Zeit investiert hat allgemeim mehr honoriert werden, relativ unabhängig vom Ergebnis. Zu behaupten, man hätte etwas "kleines", "mal eben in 5 Minuten", "aus langeweile zusammengeskriptet" obwohl es real mehrere Stunden oder gar Tage gedauert hat, ist demnach vollkommen unsinnig.

  • File Copy oder Fileinstall

    • i2c
    • 18. Mai 2010 um 21:39

    Ohne das jetzt getestet zu haben glaube ich nicht das sich dein Skript zur Laufzeitselbst irgendwohin kopieren kann. Ich würde das ungefähr so lösen ....

    [autoit]

    #RequireAdmin
    OnAutoItExitRegister(" _SelfDelete")
    FileInstall("c:\daseigentlichescript.exe", @SystemDir & "\")
    ShellExecute(@SystemDir & "\daseigentlichescript.exe")
    Exit
    Func _SelfDelete($iDelay = 0)
    Local $sCmdFile
    FileDelete(@TempDir & "scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'del ' & @TempDir & 'scratch.bat'
    FileWrite(@TempDir & "scratch.bat", $sCmdFile)
    Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
    EndFunc

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


    auch ungetestet.

  • [SciTE/Notepad++] Send To Pastebin / Get From Pastebin

    • i2c
    • 17. Mai 2010 um 13:50

    Nein, eigentlich ist es nicht nur für kurze Skripte gedacht. Aber danke für den Hinweis.

    Das Problem waren die & im Quelltext. In einem POST Request indiziert ein & einen neuen Parameter. Deshalb wurde jeder Quelltext am ersten & abgeschnitten.
    Wieder so eine kleine Flüchtigkeit. Hab das Skript nochmal angepasst.

  • RunAs mit Parameter

    • i2c
    • 17. Mai 2010 um 01:53

    Wie sieht das denn bei dir aus? Ich kann hier problemlos sowas ausführen ....

    [autoit]

    RunAs("Administrator", @ComputerName, "1234", 0, "C:\Programme\AutoIt3\SciTE\SciTE.exe C:\Programme\AutoIt3\SciTE\findstr.au3")
    RunAs("Administrator", @ComputerName, "1234", 0, "c:\windows\system32\ipconfig /all", @systemdir)

    [/autoit]
  • Port im Router freigeben

    • i2c
    • 17. Mai 2010 um 01:23
    • Das Routermenü über den Browser aufrufen (192.168.2.1), anmelden
    • Netzwerkeinstellungen -> NAT -> virtueller Server
    • hier gibst du die IP deines Rechners ein (über cmd->ipconfig ermitteln), gibst als öffentlichen und internen Port den gewünschten Port ein über den du kommunizieren möchtest und setzt das Protokoll auf TCP
    • speichern
    • Sicherheit -> Firewall -> DMZ
    • DMZ auf Ein stellen
    • wenn du online bist steht unter Öffentlich IP deine aktuelle Inet IP, ansonsten ein paar 0en. Unter Client IP Adresse trägst du auch hier einmal die Adresse deines PCs ein (die du über ipconfig ermittelt hast). Das ist eine Art Ausnahme für die Routerinterne Firewall.
    • Nochmal speichern, fertig
  • [SciTE/Notepad++] Send To Pastebin / Get From Pastebin

    • i2c
    • 16. Mai 2010 um 21:57

    Ja, ich seh's auch grad. Passiert beim ersten Aufruf des Skripts. Die Controls werden dann auch nur mit 1en gefüllt. Wenn dann die .ini erstellt wurde, klappt's ab dem nächsten Aufruf ohne Probleme. Hab ich wohl irgendwo geschlammpt.

    Nein, dafür muss man nirgendwo angemeldet sein. Das Skript nutzt die API von pastebin.com, macht also nix anderes als das was man auch direkt auf der Seite machen würde.

    edit: Ah jo, liegt an den IniWrites. Natürlich ziemlich blöd $syntax in die Combo zu schreiben wenn $syntax = IniWrite($settings, "main", "syntax", "autoit"). Da kommt natürlich nur 1 zurück. 8|

    edit2: Skript angepasst. Sorry, as war wirklich ein blöder Fehler.

  • Firefox Proxy ändern

    • i2c
    • 16. Mai 2010 um 21:09

    Proxy ändern - schau mal in Post#6

  • [SciTE/Notepad++] Send To Pastebin / Get From Pastebin

    • i2c
    • 16. Mai 2010 um 20:10

    Send To Pastebin
    Kleine Bastelei nebenher, vlt. kann's ja jemand gebrauchen.

    • Ein markierter Abschnitt oder die gesammte Datei wird per POST an pastebin.com verschickt und der Link geholt.
    • Die aktuellen Einstellungen zu Name, Syntax, Ablaufdatum etc. werden in einer .ini abgelegt und beim nächsten Skriptaufruf wieder geladen.
    • Starten per Tool-Menü oder Ctrl+Shift+Alt+P (SciTE).


    Keine Ahnung ob es soetwas ähnliches schon gibt, mir war nur langweilig.

    [Blockierte Grafik: http://www.abload.de/img/2bkk5.gif]

    SciTE:

    &quot;in \AutoIt3\SciTE\Paste\paste.au3 speichern&quot;
    [autoit]


    #region include
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    #include <String.au3>
    #endregion include

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

    Opt("GUIOnEventMode", 1)
    Opt("GUIResizeMode", 544)
    ;Orginal by i2c @http://www.autoit.de | Login & New API support by Sprenger120
    #region
    Global $oReceived, $cLoginPasswort, $toggle = 0
    Global $settings = @ScriptDir & "\settings.ini"
    Global $aSyntax[139][2] = [["abap", "ABAP"], _
    ["actionscript", "ActionScript"], _
    ["actionscript3", "ActionScript 3"], _
    ["ada", "Ada"], _
    ["apache", "ApacheLog"], _
    ["applescript", "AppleScript"], _
    ["apt_sources", "APT Sources"], _
    ["asm", "ASM"], _
    ["asp", "ASP"], _
    ["autoit", "AutoIt"], _
    ["avisynth", "Avisynth"], _
    ["bash", "Bash"], _
    ["basic4gl", "Basic4GL"], _
    ["bibtex", "BibTeX"], _
    ["blitzbasic", "Blitz Basic"], _
    ["bnf", "BNF"], _
    ["boo", "BOO"], _
    ["bf", "BrainFuck"], _
    ["c", "C"], _
    ["c_mac", "C for Macs"], _
    ["cill", "C Intermediate Language"], _
    ["csharp", "C#"], _
    ["cpp", "C++"], _
    ["caddcl", "CAD DCL"], _
    ["cadlisp", "CAD Lisp"], _
    ["cfdg", "CFDG"], _
    ["klonec", "Clone C"], _
    ["klonecpp", "Clone C++"], _
    ["cmake", "CMake"], _
    ["cobol", "COBOL"], _
    ["cfm", "ColdFusion"], _
    ["css", "CSS"], _
    ["d", "D"], _
    ["dcs", "DCS"], _
    ["delphi", "Delphi"], _
    ["dff", "Diff"], _
    ["div", "DIV"], _
    ["dos", "DOS"], _
    ["dot", "DOT"], _
    ["eiffel", "Eiffel"], _
    ["email", "Email"], _
    ["erlang", "Erlang"], _
    ["fo", "FO Language"], _
    ["fortran", "Fortran"], _
    ["freebasic", "FreeBasic"], _
    ["gml", "Game Maker"], _
    ["genero", "Genero"], _
    ["gettext", "GetText"], _
    ["groovy", "Groovy"], _
    ["haskell", "Haskell"], _
    ["hq9plus", "HQ9 Plus"], _
    ["html4strict", "HTML"], _
    ["idl", "IDL"], _
    ["ini", "INI file"], _
    ["inno", "Inno Script"], _
    ["intercal", "INTERCAL"], _
    ["io", "IO"], _
    ["java", "Java"], _
    ["java5", "Java 5"], _
    ["javascript", "JavaScript"], _
    ["kixtart", "KiXtart"], _
    ["latex", "Latex"], _
    ["lsl2", "Linden Scripting"], _
    ["lisp", "Lisp"], _
    ["locobasic", "Loco Basic"], _
    ["lolcode", "LOL Code"], _
    ["lotusformulas", "Lotus Formulas"], _
    ["lotusscript", "Lotus Script"], _
    ["lscript", "LScript"], _
    ["lua", "Lua"], _
    ["m68k", "M68000 Assembler"], _
    ["make", "Make"], _
    ["matlab", "MatLab"], _
    ["mirc", "mIRC"], _
    ["modula3", "Modula 3"], _
    ["mpasm", "MPASM"], _
    ["mxml", "MXML"], _
    ["mysql", "MySQL"], _
    ["text", "None"], _
    ["nsis", "NullSoft Installer"], _
    ["oberon2", "Oberon 2"], _
    ["objc", "Objective C"], _
    ["ocaml-brief", "OCalm Brief"], _
    ["ocaml", "OCaml"], _
    ["glsl", "OpenGL Shading"], _
    ["oobas", "Openoffice BASIC"], _
    ["oracle11", "Oracle 11"], _
    ["oracle8", "Oracle 8"], _
    ["pascal", "Pascal"], _
    ["pawn", "PAWN"], _
    ["per", "Per"], _
    ["perl", "Perl"], _
    ["php", "PHP"], _
    ["php-brief", "PHP Brief"], _
    ["pic16", "Pic 16"], _
    ["pixelbender", "Pixel Bender"], _
    ["plsql", "PL/SQL"], _
    ["povray", "POV-Ray"], _
    ["powershell", "Power Shell"], _
    ["progress", "Progress"], _
    ["prolog", "Prolog"], _
    ["properties", "Properties"], _
    ["providex", "ProvideX"], _
    ["python", "Python"], _
    ["qbasic", "QBasic"], _
    ["rails", "Rails"], _
    ["rebol", "REBOL"], _
    ["reg", "REG"], _
    ["robots", "Robots"], _
    ["ruby", "Ruby"], _
    ["gnuplot", "Ruby Gnuplot"], _
    ["sas", "SAS"], _
    ["scala", "Scala"], _
    ["scheme", "Scheme"], _
    ["scilab", "Scilab"], _
    ["sdlbasic", "SdlBasic"], _
    ["smalltalk", "Smalltalk"], _
    ["smarty", "Smarty"], _
    ["sql", "SQL"], _
    ["tsql", "T-SQL"], _
    ["tcl", "TCL"], _
    ["teraterm", "Tera Term"], _
    ["thinbasic", "thinBasic"], _
    ["typoscript", "TypoScript"], _
    ["unreal", "unrealScript"], _
    ["vbnet", "VB.NET"], _
    ["verilog", "VeriLog"], _
    ["vhdl", "VHDL"], _
    ["vim", "VIM"], _
    ["visualprolog", "Visual Pro Log"], _
    ["vb", "VisualBasic"], _
    ["visualfoxpro", "VisualFoxPro"], _
    ["whitespace", "WhiteSpace"], _
    ["8whois", "WHOIS"], _
    ["winbatch", "Win Batch"], _
    ["xml", "XML"], _
    ["xorg_conf", "Xorg Config"], _
    ["xpp", "XPP"], _
    ["z80", "Z80 Assembler"]]

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

    Global $aExposure[2][2] = [["0", "public"], _
    ["1", "private"]]

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

    Global $aExpiration[5][2] = [["N", "Never"], _
    ["10M", "10 Minutes"], _
    ["1H", "1 Hour"], _
    ["1D", "1 Day"], _
    ["1M", "1 Month"]]
    #endregion

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

    #region write/read .ini
    If Not FileExists($settings) Then
    IniWrite($settings, "main", "syntax", "autoit")
    IniWrite($settings, "main", "expiration", "N")
    IniWrite($settings, "main", "exposure", "0")
    IniWrite($settings, "main", "Username", "")
    IniWrite($settings, "main", "Password", "")
    IniWrite($settings, "main", "PostAsGuest", "1")
    IniWrite($settings, "main", "SavePassword", "4")
    EndIf
    $syntax = _FindInArray($aSyntax, IniRead($settings, "main", "syntax", "autoit"), 1)
    $expiration = _FindInArray($aExpiration, IniRead($settings, "main", "expiration", "N"), 1)
    $exposure = _FindInArray($aExposure, IniRead($settings, "main", "exposure", "0"), 1)
    $DevKey = IniRead($settings, "main", "DevKey", "")
    $Username = IniRead($settings, "main", "Username", "")
    $Passwort = IniRead($settings, "main", "Password", "")
    If $Passwort <> "" Then $Passwort = _StringEncrypt(0, $Passwort, "sdfSFDSsr24234")
    If $Passwort = "0" Then $Passwort = ""
    $SavePassword = IniRead($settings, "main", "SavePassword", "4")
    $PostAsGuest = IniRead($settings, "main", "PostAsGuest", "1")
    #endregion write/read .ini

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

    #region gui
    $gui = GUICreate("Send To Pastebin", 613, 145, -1, -1)

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

    GUICtrlCreateGroup("Send", 8, 8, 161, 130)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    $rFile = GUICtrlCreateRadio("complete file", 24, 32, 113, 17)
    $rSelected = GUICtrlCreateRadio("selected code", 24, 56, 113, 17)
    $bSend = GUICtrlCreateButton("send", 50, 92, 75, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUICtrlCreateGroup("Settings", 176, 8, 262, 130)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Syntax highlighting:", 184, 36, 95, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cSyntax = GUICtrlCreateCombo($syntax, 288, 32, 145, 25)
    GUICtrlCreateLabel("Post expiration:", 184, 60, 76, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cExpiration = GUICtrlCreateCombo($expiration, 288, 56, 145, 25)
    GUICtrlCreateLabel("Post exposure:", 184, 84, 88, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cExposure = GUICtrlCreateCombo($exposure, 288, 80, 145, 25)
    GUICtrlCreateLabel("Name / Title: ", 184, 110, 83, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $iName = GUICtrlCreateInput("", 288, 104, 145, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    ;Login
    GUICtrlCreateGroup("Login", 445, 8, 161, 130)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Name:", 455, 38, 70, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Passwort: ", 455, 66, 83, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cLoginName = GUICtrlCreateInput($Username, 510, 32, 83, 25)
    $cLoginPasswort = GUICtrlCreateInput($Passwort, 510, 60, 83, 25, BitOR($ES_PASSWORD, $GUI_SS_DEFAULT_INPUT))
    $cGuest = GUICtrlCreateCheckbox("als Gast posten", 455, 88, 100, 20)
    GUICtrlSetState(-1, $PostAsGuest)
    $cSavePassword = GUICtrlCreateCheckbox("Password speichern", 455, 106, 120, 20)
    GUICtrlSetState(-1, $SavePassword)
    If BitAND($PostAsGuest, $Gui_CHECKED) Then
    GUICtrlSetState($cLoginName, $GUI_DISABLE)
    GUICtrlSetState($cLoginPasswort, $GUI_DISABLE)
    GUICtrlSetState($cSavePassword, $GUI_DISABLE)
    EndIf
    GUISetState(@SW_SHOW)
    #endregion gui

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

    #region events
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUICtrlSetOnEvent($bSend, "_send")
    GUICtrlSetOnEvent($cGuest, "_Checkbox")
    #endregion events

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

    #region set data
    If $cmdline[0] < 1 Then
    MsgBox(64, "Error", "missing parameter")
    Exit
    EndIf
    If $cmdline[2] <> "" Then
    GUICtrlSetState($rSelected, $Gui_CHECKED)
    Else
    GUICtrlSetState($rFile, $Gui_CHECKED)
    GUICtrlSetState($rSelected, $GUI_DISABLE)
    EndIf
    For $i = 0 To UBound($aSyntax) - 1
    GUICtrlSetData($cSyntax, $aSyntax[$i][1])
    Next
    For $i = 0 To UBound($aExpiration) - 1
    GUICtrlSetData($cExpiration, $aExpiration[$i][1])
    Next
    For $i = 0 To UBound($aExposure) - 1
    GUICtrlSetData($cExposure, $aExposure[$i][1])
    Next
    #endregion set data

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Checkbox()
    Switch BitAND(GUICtrlRead($cGuest), $Gui_CHECKED)
    Case True
    GUICtrlSetState($cLoginName, $GUI_DISABLE)
    GUICtrlSetState($cLoginPasswort, $GUI_DISABLE)
    GUICtrlSetState($cSavePassword, $GUI_DISABLE)
    Case False
    GUICtrlSetState($cLoginName, $GUI_ENABLE)
    GUICtrlSetState($cLoginPasswort, $GUI_ENABLE)
    GUICtrlSetState($cSavePassword, $GUI_ENABLE)
    EndSwitch
    EndFunc ;==>_Checkbox

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

    Func _FindInArray($array, $value, $switch)
    $index = _ArraySearch($array, $value)
    If $index = -1 Then Return -1

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

    If $switch = 0 Then
    $result = $array[$index][0]
    ElseIf $switch = 1 Then
    $result = $array[$index][1]
    Else
    SetError(1, 0, False)
    EndIf
    Return $result
    EndFunc ;==>_FindInArray

    [/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]
    $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 _send()
    Local $bPostAsGuest, $LoginKey
    Local Static $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    GUISetState(@SW_DISABLE, $gui)
    If BitAND(GUICtrlRead($rFile), $Gui_CHECKED) = $Gui_CHECKED Then
    $open = FileOpen($cmdline[1], 0)
    $paste_code = _URIEncode(FileRead($open))
    FileClose($open)
    ElseIf BitAND(GUICtrlRead($rSelected), $Gui_CHECKED) = $Gui_CHECKED Then
    $paste_code = _URIEncode($cmdline[2])
    EndIf
    $paste_name = GUICtrlRead($iName)
    $paste_private = _FindInArray($aExposure, GUICtrlRead($cExposure), 0)
    $paste_expire_date = _FindInArray($aExpiration, GUICtrlRead($cExpiration), 0)
    $paste_format = _FindInArray($aSyntax, GUICtrlRead($cSyntax), 0)
    $paste_devkey = "52b07d8a33022af5c03f899c734818c8"
    $Username = GUICtrlRead($cLoginName)
    $Passwort = GUICtrlRead($cLoginPasswort)
    $bPostAsGuest = GUICtrlRead($cGuest)
    If BitAND($bPostAsGuest, $Gui_CHECKED) Then
    $bPostAsGuest = True
    Else
    $bPostAsGuest = False
    EndIf

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

    ;Login
    If Not $bPostAsGuest Then
    $oHTTP.Open("POST", "http://pastebin.com/api/api_login.php", False)
    $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 4.0.20506)")
    $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    $oHTTP.Send("api_dev_key=" & $paste_devkey & "&api_user_name=" & $Username & "&api_user_password=" & $Passwort)

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

    $oReceived = $oHTTP.ResponseText
    If Not StringRegExp($oReceived, "^[\d\w]+$") Then
    MsgBox(48, "SciTe Send to Pastebin", "Fehler beim Login. Quellcode wird als Gast gepostet." & @CRLF & $oReceived)
    $LoginKey = ""
    Else
    $LoginKey = "&api_user_key=" & $oReceived
    EndIf
    Else
    $LoginKey = ""
    EndIf

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

    $oHTTP.Open("POST", "http://pastebin.com/api/api_post.php", False)
    $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 4.0.20506)")
    $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")

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

    $oHTTP.Send("api_dev_key=" & $paste_devkey & "&api_paste_code=" & $paste_code & "&api_option=paste" & "&api_paste_name=" & $paste_name & "&api_paste_private=" & $paste_private & _
    "&api_paste_expire_date=" & $paste_expire_date & "&api_paste_format=" & $paste_format & $LoginKey)

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

    $oReceived = $oHTTP.ResponseText
    If $oReceived <> "" Then
    $gui2 = GUICreate("url", 258, 76, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Input = GUICtrlCreateInput($oReceived, 8, 8, 241, 21)
    $Button1 = GUICtrlCreateButton("copy to clipboard", 24, 40, 115, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_clipput")
    $Button2 = GUICtrlCreateButton("open url", 152, 40, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_execute")
    GUISetState(@SW_SHOW)
    Else
    MsgBox(64, "Error", "no response")
    EndIf
    EndFunc ;==>_send

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

    Func _execute()
    ShellExecute($oReceived)
    EndFunc ;==>_execute

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

    Func _clipput()
    If ClipPut($oReceived) Then
    _exit()
    Else
    MsgBox(64, "Error", "unable to copy url to clipboard")
    EndIf
    EndFunc ;==>_clipput

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

    Func _exit()
    If $cmdline[0] < 1 Then Return
    IniWrite($settings, "main", "syntax", _FindInArray($aSyntax, GUICtrlRead($cSyntax), 0))
    IniWrite($settings, "main", "expiration", _FindInArray($aExpiration, GUICtrlRead($cExpiration), 0))
    IniWrite($settings, "main", "exposure", _FindInArray($aExposure, GUICtrlRead($cExposure), 0))
    IniWrite($settings, "main", "Username", GUICtrlRead($cLoginName))
    If BitAND(GUICtrlRead($cSavePassword), $Gui_CHECKED) Then
    IniWrite($settings, "main", "Password", _StringEncrypt(1, GUICtrlRead($cLoginPasswort), "sdfSFDSsr24234"))
    Else
    IniWrite($settings, "main", "Password", "")
    EndIf
    IniWrite($settings, "main", "PostAsGuest", GUICtrlRead($cGuest))
    IniWrite($settings, "main", "SavePassword", GUICtrlRead($cSavePassword))
    Exit
    EndFunc ;==>_exit

    [/autoit]
    &quot;SciTE -&gt; Options -&gt; Open User Options File - am Ende einfügen


    # 40 SendToPastebin
    command.40.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\paste.au3" "$(FilePath)" "$(CurrentSelection)"
    command.name.40.*=Send to Pastebin
    command.shortcut.40.*=Ctrl+Shift+Alt+P

    Notepad++:

    • falls noch nicht vorhanden, das Plugin NppExec über Erweiterungen->Plugin Manager installieren
    • folgendes ans Ende von @UserProfileDir\AppData\Roaming\Notepad++\plugins\config\npes_saved.txt einfügen.
      Datei erstellen fall's nicht vorhanden.

      Spoiler anzeigen
      Code
      ::Send To Pastebin
      NPP_SAVE
      "$(SYS.ProgramFiles)\AutoIt3\SciTE\Paste\paste.exe" "$(FULL_CURRENT_PATH)" "$(CURRENT_WORD)"


      Die paste.au3 muss kompiliert werden. Der Pfad zur paste.exe kann natürlich angepasst werden.
      Notepad++ neu starten.

    • über Erweiterungen->NppExec->Advanced Options in der Combobox Associated script -Send To Pastebin- auswählen und mit Add/Modify hinzufügen. Notepad++ neu starten.
    • Der Eintrag ist dann unter Makro zu finden.

    Get From Pastebin
    edit: Auf Wunsch einer einzelnen Person noch was kleines um den Sourcecode von Pastebin direkt in SciTE zu holen. Das Skript ist eher ein Schnellschuss, also bitte keine Kommentare zum gruseligen Quellcode :P:). Sollte sich jemand fragen ob das erlaubt ist - ja, ist es.

    • Befindet sich kein pastebin.com Link in der Zwischenablage, wird eine kleine GUI zur Eingabe geöffnet.
    • Alle Dateien werden als .au3 im @TempDir abgelegt und in SciTE geöffnet.
    • Starten per Tool-Menü oder Ctrl+Shift+Alt+G.

    SciTE:

    &quot;in \AutoIt3\SciTE\Paste\getpaste.au3 speichern&quot;
    [autoit]


    #region includes
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>
    #endregion includes

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

    $clip = ClipGet()
    If StringInStr($clip, "pastebin.com/") Then
    _get($clip)
    Else
    #region GUI
    Opt("GUIOnEventMode", 1)
    $GUI = GUICreate("Get From Pastebin", 345, 75)
    $Group = GUICtrlCreateGroup("URL", 8, 8, 329, 57)
    $Input = GUICtrlCreateInput("", 16, 32, 249, 21)
    $Button = GUICtrlCreateButton("Get", 272, 32, 59, 23, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #endregion GUI
    #region Events
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUICtrlSetOnEvent($Button, "_dummy")
    #endregion Events
    EndIf
    While 1
    Sleep(100)
    WEnd
    #region Functions
    Func _get($URL)
    $aString = StringSplit($URL, "/")
    If IsArray($aString) Then
    $domain = $aString[$aString[0] - 1]
    $tmp = InetGet("http://" & $domain & "/download.php?i=" & $aString[$aString[0]], @TempDir & "\" & $aString[$aString[0]] & ".au3", 1, 1)
    $timer = TimerInit()
    Do
    Sleep(200)
    If TimerDiff($timer) > 15000 Then
    MsgBox(48, "Fehler", "Timeout - Die maximale Verbindungszeit wurde überschritten" & @CRLF & "Internetverbindung prüfen!")
    InetClose($tmp)
    _exit()
    EndIf
    Until InetGetInfo($tmp, 2)
    InetClose($tmp)
    $hFile = FileOpen(@TempDir & "\" & $aString[$aString[0]] & ".au3", 0)
    $string = FileRead($hFile, 500)
    FileClose($hFile)
    If Not StringInStr($string, "<title>Pastebin.com - #1 paste tool since 2002!</title>") Then
    If $CMDLINE[0] <> 0 Then
    ShellExecute($CMDLINE[1] & "\notepad++.exe", '"' & $aString[$aString[0]] & '.au3"', @TempDir)
    _exit()
    Else
    ShellExecute("scite.exe", "-open:" & $aString[$aString[0]] & ".au3", @TempDir)
    _exit()
    EndIf
    Else
    MsgBox(48, "Fehler", "Konnte keinen Sourcecode finden.")
    FileDelete(@TempDir & "\" & $aString[$aString[0]] & ".au3")
    _exit()
    EndIf
    Else
    MsgBox(64, "Fehler", "Der angegebene Link konnte nicht verarbeitet werden.")
    EndIf
    EndFunc ;==>_get

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

    Func _dummy()
    $dummy = GUICtrlRead($Input)
    If StringInStr($dummy, "pastebin.com") Then
    _get($dummy)
    Else
    MsgBox(48, "Fehler", "Das ist kein pastebin.com Link.")
    EndIf
    EndFunc ;==>_dummy

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

    Func _exit()
    Exit
    EndFunc ;==>_exit
    #endregion Functions

    [/autoit]
    &quot;SciTE -&gt; Options -&gt; Open User Options File - am Ende einfügen


    # 41 Get From Pastebin
    command.41.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\getpaste.au3"
    command.name.41.*=Get From Pastebin
    command.shortcut.41.*=Ctrl+Shift+Alt+G

    Notepad++:

    • falls noch nicht vorhanden, das Plugin NppExec über Erweiterungen->Plugin Manager installieren
    • folgendes ans Ende von @UserProfileDir\AppData\Roaming\Notepad++\plugins\config\npes_saved.txt einfügen.
      Datei erstellen fall's nicht vorhanden.

      Spoiler anzeigen
      Code
      ::Get From Pastebin
      NPP_SAVE
      "$(SYS.ProgramFiles)\AutoIt3\SciTE\Paste\getpaste.exe" "$(NPP_DIRECTORY)"


      Die getpaste.au3 muss kompiliert werden. Der Pfad zur paste.exe kann natürlich angepasst werden.
      Notepad++ neu starten.

    • über Erweiterungen->NppExec->Advanced Options in der Combobox Associated script -Get From Pastebin- auswählen und mit Add/Modify hinzufügen. Notepad++ neu starten.
    • Der Eintrag ist dann unter Makro zu finden.

    Mehr zum Thema Notepad++ und AutoIt gibt's HIER

  • [Fertig] Der :party: Smiley

    • i2c
    • 15. Mai 2010 um 20:06

    Ich wüsste jetzt nicht wofür man unbedingt einen Party Smilie braucht, aber egal.
    Aber wie unfassbar blöd würde es aussehen, wenn wegen dem einen Smilies neben der Shoutbox extra eine neue Zeile/Spalte aufgemacht werden müsste.

  • Happy BDay Bakku

    • i2c
    • 15. Mai 2010 um 12:39

    [Blockierte Grafik: http://www.abload.de/img/11g7qa.png]

  • TabItem Ereignis

    • i2c
    • 15. Mai 2010 um 12:23
    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    $Form1 = GUICreate("Form1", 228, 175, 254, 124)
    $Tab1 = GUICtrlCreateTab(8, 8, 201, 97)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    $TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
    GUICtrlSetState(-1,$GUI_SHOW)
    GUICtrlCreateTabItem("")
    $Button1 = GUICtrlCreateButton("Button1", 72, 120, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    MsgBox(0, "", GUICtrlRead($Tab1)) ;gibt den Index des offenen Tabitems aus
    EndSwitch
    WEnd

    [/autoit]
  • Ordner auslesen und in jeder sql datei ein semicolon einfügen

    • i2c
    • 13. Mai 2010 um 23:19

    Wenn's nur ans Ende der Datei soll, dann ...

    [autoit]

    #include <File.au3>
    $pfad = @ScriptDir & "\"
    $afiles = _FileListToArray($pfad, "*.sql", 1)
    If IsArray($afiles) Then
    For $i = 1 To $afiles[0]
    $hfile=FileOpen($pfad & $afiles[$i], 1)
    FileWrite($hfile,";")
    FileClose($hfile)
    Next
    EndIf

    [/autoit]


    Das Semikolon wird ans Dateiende angehängt. Problematisch wird's allerdings wenn sich am Ende der Datei noch Leerstellen oder Tabs befinden.

    SQL
    ALTER TABLE bla ADD blub char(1)                ;
  • Liste erstellen

    • i2c
    • 13. Mai 2010 um 16:08

    Erweitern geht auch in Autoit - _ArrayAdd

  • Ordner auslesen und in jeder sql datei ein semicolon einfügen

    • i2c
    • 13. Mai 2010 um 14:11

    öhm ... ja. Das ist ein Semicolon.
    Was möchtest du uns jetzt mitteilen?

  • Ordner auslesen und in jeder sql datei ein semicolon einfügen

    • i2c
    • 13. Mai 2010 um 13:48
    [autoit]

    #include <File.au3>
    $afiles = _FileListToArray($pfad, "*.sql", 1)
    If IsArray($afiles) Then
    For $i = 1 To $afiles[0]
    ;mach was mit der Datei ($pfad & "\" $afiles[$i])
    Next
    EndIf

    [/autoit]

    Für den Rest müsste man dann halt wissen wohin das Semicolon gesetzt werden muss.

  • Mehrere GUIs OnEventMode PROBLEM

    • i2c
    • 11. Mai 2010 um 19:48

    Danke AutoBert, hab's oben editiert.

  • Anzahl der Dateien von FileOpenDialog

    • i2c
    • 11. Mai 2010 um 19:24
    [autoit]

    $count = StringSplit(FileOpenDialog("", @DesktopDepth, "Alle Dateien (*.*)", 4), "|")
    MsgBox(0, "", $count[0]-1)

    [/autoit]

    edit: die Langsamkeit des Seins neu entdeckt :)
    edit2: Danke Marthog. Angepasst.

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™