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

Beiträge von Oscar

  • Scrollleiste springt bei Guictrlsetdata immer nach Oben

    • Oscar
    • 18. März 2009 um 12:04

    So beispielsweise:

    [autoit]


    $hGui = GUICreate('', 320, 200)
    $hInput = GUICtrlCreateEdit('Alter Text' & @CRLF, 10, 10, 300, 180)
    GUISetState()
    ControlSend($hGui, '', $hInput, '{RIGHT}') ; damit der Eingabecursor am Ende des alten Textes steht
    For $i = 1 To 20
    GUICtrlSetData($hInput, $i & '. neue Zeile' & @CRLF, 1) ; der 3. Parameter muss ungleich '' sein
    Sleep(250)
    Next
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • HotKey + Programmaufruf

    • Oscar
    • 18. März 2009 um 11:43

    Die Taste "m" als Hotkey zu nutzen ist nicht sonderlich praktisch. ;)

    Damit sich das Programm nicht gleich wieder beendet musst Du eine Endlosschleife einbauen.
    Und zum beenden dann eine extra Funktion mit Hotkey:

    [autoit]


    HotKeySet("^m","startmsn")
    HotKeySet("^q", "End")

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

    While True
    Sleep(50)
    WEnd

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

    Func End()
    Exit
    EndFunc

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

    Func startmsn()
    $startdatei="C:\Test\msn.exe"
    Run($startdatei)
    EndFunc

    [/autoit]
  • Funktion zum Markieren eines Textausschnittes in einem Edit?

    • Oscar
    • 18. März 2009 um 11:36

    Du kannst Dir ja mal dieses Beispiel-Script anschauen: [ offen ] Inputbox

  • Inputbox

    • Oscar
    • 17. März 2009 um 23:40

    Eine etwas erweiterte Version:

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <ScrollBarConstants.au3>
    #include <GuiEdit.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Global $iHit = 0
    Global $sFile = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\include\changelog.txt'

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

    $hGui = GUICreate('Text suchen', 720, 480)

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

    $hEdit = GUICtrlCreateEdit(FileRead($sFile), 10, 10, 700, 440, BitOR($GUI_SS_DEFAULT_EDIT, $ES_READONLY))
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    ControlFocus($hGui, '', $hEdit)
    $hInput = GUICtrlCreateInput('Bitte Suchbegriff eingeben!', 10, 455, 638, 20)
    $hSearch = GUICtrlCreateButton('Suchen', 650, 454, 60, 22)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hSearch
    $sText = GUICtrlRead($hEdit)
    $sSearch = GUICtrlRead($hInput)
    $iHit = StringInStr($sText, $sSearch, 0, 1, $iHit + 1)
    If $iHit > 0 Then
    ControlFocus($hGui, '', $hEdit)
    _GUICtrlEdit_SetSel($hEdit, $iHit - 1, $iHit - 1 + StringLen($sSearch))
    _GUICtrlEdit_Scroll($hEdit, $SB_SCROLLCARET)
    GUICtrlSetData($hSearch, 'Weiter...')
    Else
    Beep(400, 100)
    GUICtrlSetData($hSearch, 'Suchen')
    EndIf
    EndSwitch
    WEnd

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

    Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0xFFFF)
    If $nID = $hInput And $nNotifyCode = 256 Then
    GUICtrlSetData($hSearch, 'Suchen')
    GUICtrlSetData($hInput, '')
    $iHit = 0
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_COMMAND

    [/autoit]
  • AutoIt-Programme aufspüren

    • Oscar
    • 17. März 2009 um 16:31

    Dein Ansporn, hier etwas gegen die "Schurken"-Programme unternehmen zu wollen, ist ja sehr rühmlich, aber meiner Meinung nach, ziemlich sinnlos (obige Gründe). Wirkliche Sicherheit bietet sowieso nur Open-Source, weshalb ich immer wieder für das Veröfffentlichen des Quelltextes eintrete.

  • AutoIt-Programme aufspüren

    • Oscar
    • 17. März 2009 um 16:10

    Und jeder, der Dir nicht den Quellcode zusendet, kommt dann auf die "schwarze Liste"? LOL :rofl:
    Entschuldige, aber langsam übertreibst Du...
    Und AutoIt ist nunmal eine Programmiersprache. Was man damit anstellt, liegt einzig und allein beim Programmierer (Vergleich: Axt = Werkzeug oder Waffe?).
    Wer eine Programmiersprache "verteufelt", nur weil damit schonmal Viren, Keylogger, Bots, etc. erstellt wurden, hat IMHO eine falsche Einstellung zu Programmiersprachen.

    P.S.: Wenn Dein AntiViren-Programm alles blockt, was mit AutoIt zu tun hat, dann ist es an der Zeit das AntiViren-Programm in die Tonne zu kloppen und sich ein anderes zuzulegen. ;)

  • Wer kann mir mein Skipt zurück holen?

    • Oscar
    • 17. März 2009 um 15:52

    Und noch ein Grund mehr seine Scripte hier im Forum zu veröffentlichen (dezentrale Sicherheitskopie). ;)

  • Kann man einen direkten Datei downloader schreiben?

    • Oscar
    • 17. März 2009 um 15:37

    Bei HFS kannst Du auch einen Upload-Ordner freigeben. Dort sind dann auch Uploads möglich. :)

  • Linie

    • Oscar
    • 16. März 2009 um 20:07

    Ich finde ja eine 3D-Linie schöner:

    Spoiler anzeigen
    [autoit]


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

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

    GUICreate('', 300, 250)
    GUICtrlCreateLabel('', 5, 230, 290, 2, Default, $WS_EX_STATICEDGE)
    GUISetState()
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • Kann man einen direkten Datei downloader schreiben?

    • Oscar
    • 16. März 2009 um 19:58

    HFS ist aber wirklich eine einfache Möglichkeit anderen Dateien zur Verfügung zu stellen. Ich benutze das Server-Programm schon ziemlich lange und bin damit sehr zufrieden.
    Zusammen mit einer DynDNS-Adresse ist das eigentlich ideal. :)

  • AutoIt-Programme aufspüren

    • Oscar
    • 16. März 2009 um 19:53

    Deine Idee in allen Ehren, aber...
    1. wird ein AutoIt-Antiviren-Programm nicht sonderlich schnell sein
    2. gibt es keinen (legalen) Decompiler
    3. wird es wohl kaum Freiwillige geben, die solche Scripte (die möglichweise auch noch mit dem Obfuscator bearbeitet wurden) analysieren wollen
    und
    4. schützt man sich vor fremden EXEn am besten, indem man sie gar nicht erst startet. ;)

  • Gescheite Progress Copy bar

    • Oscar
    • 16. März 2009 um 19:18
    Zitat

    "schon seit samstag"


    Diese Jugend von heute...keine Geduld... :D

    Kannst Du _MultiFileCopy mal mit #requireadmin ausprobieren?

    Das #requireadmin muss an den Anfang von Deinem Script.

  • Datei in INi eintragen

    • Oscar
    • 16. März 2009 um 19:06
    Zitat von MatthiasG.

    Das ist äußerst ungewähnlich, normalerweise dürfte dei ini im Verzwichniss des Skriptes angelegt werden...

    Das ist nicht ungewöhnlich, denn die Hilfe zu FileOpenDialog sagt:

    Zitat

    @WorkingDir is changed on successful return.

    Das heißt, wenn man bei Iniwrite keinen absoluten Pfad angibt, dann wird halt in das @WorkingDir geschrieben.
    Aber unaimed hat die Lösung (absoluten Pfad angeben) ja bereits gefunden.

  • Gescheite Progress Copy bar

    • Oscar
    • 16. März 2009 um 18:59

    Nun bleib mal ganz ruhig. Das hier ist kein Chat. :P
    Ich hab kein Vista (will es auch nicht) und kann somit nicht sagen, warum mein Script bei Dir nicht funktioniert.

    Du musst Dich also etwas gedulden, bis das mal jemand testen kann...

  • Primzahlen

    • Oscar
    • 16. März 2009 um 18:17

    Das gab es hier schonmal.
    Hier mal drei Kandidaten (Bernd670, Anno2008 und progandy) und ihre Scripte:

    Spoiler anzeigen
    [autoit]


    ;===============================================================================
    $timer = TimerInit()
    $o = 100000
    $out = ''
    For $i = 2 To $o Step 1
    If IsPrime($i) Then $out &= $i & @CRLF
    Next
    $diff = TimerDiff($timer)
    _StringDisplay(Round($diff/1000, 3) & ' sek.' & @CRLF & $Out, 'Funktion von Bernd670')

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

    Func IsPrime($iValue)
    $maxText = Sqrt($iValue)
    For $i = 2 To $maxText
    If Mod($iValue, $i) = 0 Then Return False
    Next
    Return True
    EndFunc ;==>IsPrime
    ;===============================================================================

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

    ;===============================================================================
    $timer = TimerInit()
    Global Const $max = 100001
    Global $string = ''
    Dim $prim[$max + 1]

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

    For $i = 1 To $max - 1
    $prim[$i - 1] = False
    Next

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

    For $i = 2 To $max / 2
    For $j = 2 To $max / $i
    $prim[$i * $j] = True
    Next
    Next

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

    For $i = 2 To $max
    If Not $prim[$i] Then $string &= $i & @CRLF
    Next

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

    $diff = TimerDiff($timer)
    _StringDisplay(Round($diff/1000, 3) & ' sek.' & @CRLF & $string, 'Funktion von Anno2008')
    ;===============================================================================

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

    ;===============================================================================
    $timer = TimerInit()
    $o = 100000
    $out = ''
    For $i = 2 To $o Step 1
    If IsPrime2($i) Then $out &= $i & @CRLF
    Next
    $diff = TimerDiff($timer)
    _StringDisplay(Round($diff/1000, 3) & ' sek.' & @CRLF & $Out, 'Funktion von progandy')

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

    Func IsPrime2($iValue)
    Switch IsNumber($iValue)
    Case False
    $iValue = Number($iValue)
    EndSwitch
    Switch True
    Case $iValue = 2
    Return True
    Case $iValue < 2 Or Mod($iValue,2) = 0 Or IsFloat($iValue)
    Return False
    EndSwitch
    $maxTest = Floor(Sqrt($iValue))
    For $i = 3 To $maxTest Step 2
    If Mod($iValue, $i) = 0 Then Return False
    Next
    Return True
    EndFunc ;==>IsPrime2
    ;===============================================================================

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

    ;===============================================================================
    Func _StringDisplay($sText, $sTitle = 'StringDisplay', $sEditStyle = -1, $iWidth = 400, $iHeight = 300, $iLeft = -1, $iTop = -1)
    If Not IsDeclared('BS_DEFPUSHBUTTON') Then Local Const $BS_DEFPUSHBUTTON = 0x00000001
    If Not IsDeclared('GUI_EVENT_CLOSE') Then Local Const $GUI_EVENT_CLOSE = 0xFFFFFFFD
    If Not IsDeclared('WS_EX_COMPOSITED') Then Local Const $WS_EX_COMPOSITED = 0x02000000
    If Not IsDeclared('WS_MAXIMIZEBOX') Then Local Const $WS_MAXIMIZEBOX = 0x00010000
    If Not IsDeclared('WS_MINIMIZEBOX') Then Local Const $WS_MINIMIZEBOX = 0x00020000
    If Not IsDeclared('WS_SIZEBOX') Then Local Const $WS_SIZEBOX = 0x00040000
    Local $iEventMode = Opt('GUIOnEventMode', 0)
    Local $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    Local $hEdit = GUICtrlCreateEdit($sText, 5, 5, $iWidth - 10, $iHeight - 65, $sEditStyle)
    GUICtrlSetResizing(-1, 2 + 4 + 32 + 64)
    Local $hClose = GUICtrlCreateButton('Close', $iWidth / 2 - 25, $iHeight - 55, 50, 22, $BS_DEFPUSHBUTTON)
    GUICtrlSetResizing(-1, 64 + 256 + 512)
    ControlFocus($hGui, '', $hClose)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case $hClose, $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    ControlFocus($hGui, '', $hEdit)
    Local $sSelectedText = ControlCommand($hGui, '', $hEdit, 'GetSelected', '')
    If @error Then $sSelectedText = ''
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $iEventMode)
    Return $sSelectedText
    EndFunc ;==>_StringDisplay

    [/autoit]
  • Kann man einen direkten Datei downloader schreiben?

    • Oscar
    • 16. März 2009 um 18:08

    Installiere auf Deinem Rechner einen kleinen HTTP-Server (z.B. HFS), dann kann Deine Freundin per Browser (mit Benutzername & Passwort) auf die freigegebenen Dateien zugreifen. Das ist dann schön einfach. :)

  • Gescheite Progress Copy bar

    • Oscar
    • 16. März 2009 um 14:02

    In Zeile 203?
    Dann kann nur das "Scripting.FileSystemObject" Probleme machen.
    Welches Windows benutzt Du? Vista?

  • Gescheite Progress Copy bar

    • Oscar
    • 16. März 2009 um 04:39

    Schau Dir das mal an: _MultiFileCopy

  • Compile/Decompile

    • Oscar
    • 15. März 2009 um 22:29

    Ohne Script kann man das nicht nachvollziehen. Hast Du die Hilfe zum Obfuscator gelesen:

    Zitat


    Warn you about the use of these AutoIt3 Functions and in which File/Func/line they are used and the Parameter contains an Ampersand (&), since they will cripple the functioning of the script when used:
    adlibenable()
    call()
    eval()
    guiregistermsg()
    guisetonevent()
    guictrlsetonevent()
    hotkeyset()
    isdeclared()
    trayitemsetonevent()
    objevent()
    Opt("OnExitFunc","OnAutoItExit")

    Alles anzeigen

    Ansonsten mal in die Datei "Obfuscator.Log" schauen, was dort eingetragen ist.

  • Gui style problem

    • Oscar
    • 15. März 2009 um 13:27

    Mit dem von mir korrigiertem Script wird das Control beim resizen und maximieren mit vergrößert. Hast Du es ausprobiert?

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™