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

Beiträge von L3viathan

  • "WinFX"-UDF

    • L3viathan
    • 27. Januar 2009 um 12:33

    Ich beginne hiermit mit einer sogenannten WinFX udf, heißt visuelle Effekte für Windows bzw. GUIs.
    Ich starte mit WinFX_ResizeWindow: eines Fensters Größe "animiert" ändern:

    Spoiler anzeigen
    [autoit]

    Func _WinFX_ResizeWindow($sWindow,$width, $height,$step=5)
    $sTitle=WinGetTitle($sWindow)
    $sText=WinGetText($sWindow)
    $hHandle=WinGetHandle($sWindow)
    $pos=WinGetPos($sTitle)
    If not IsArray($pos) Then return false
    $oldwidth=$pos[2]
    $oldheight=$pos[3]
    $oldx=$pos[0]
    $oldy=$pos[1]
    $wdiff=$width-$oldwidth
    $hdiff=$height-$oldheight
    $j=0
    $i=0
    $wStep=$step
    $hStep=$step
    If $wdiff < 0 then $wStep = - $wStep
    If $hdiff < 0 then $hStep = - $hStep
    while Abs($i) <= Abs($wdiff) Or Abs($j) <= Abs($hdiff)
    If Abs($i) <= Abs($wdiff) Then $i += $wStep
    If Abs($j) <= Abs($hdiff) Then $j += $hStep
    MsgBox(0,"","newwidth=" & $oldwidth+$i & @CRLF & "newheight=" & $oldheight+$j & @CRLF & "i=" & $i)
    WinMove($sTitle,"",$oldx,$oldy,$oldwidth+$i,$oldheight+$j)
    WEnd
    Return $pos
    EndFunc
    Func _WinFX_FlashDesktop($iSpeed=3,$hColor=0xffffff)
    ;Remarks: Don't use AdLib with this
    GUICreate("Flash",@DesktopWidth,@DesktopHeight,0,0,0x80000000,0x00000080)
    GUISetBkColor($hColor)
    WinSetTrans("Flash","",240)
    GUISetState()
    For $i=100 To 255 step 5
    WinSetTrans("Flash","",$i)
    Next
    For $i=255 To 0 step -$iSpeed
    WinSetTrans("Flash","",$i)
    Next
    if not @error then return true
    EndFunc
    Func _WinFX_CloseDesktop($iSleep=1000)
    $guieins=GUICreate("CloseDesktop.1",@DesktopWidth,0,0,0,0x80000000,BitOr(0x00000080,0x00000008))
    $guizwei=GUICreate("CloseDesktop.2",@DesktopWidth,0,0,@DesktopHeight,0x80000000,BitOr(0x00000080,0x00000008))
    GUISetBkColor(0x000000,$guieins)
    GUISetBkColor(0x000000,$guizwei)
    GUISetState(@SW_SHOW,$guieins)
    GUISetState(@SW_SHOW,$guizwei)
    For $i=1 To @DesktopHeight
    WinMove("CloseDesktop.1","",0,0,@DesktopWidth,$i)
    WinMove("CloseDesktop.2","",0,(@DesktopHeight)-$i,@DesktopWidth,$i)
    Next
    sleep($iSleep)
    GUIDelete($guieins)
    GUIDelete($guizwei)
    EndFunc
    Func _WinFX_OpenDesktop($iSleep=1000)
    $guieins=GUICreate("CloseDesktop.1",@DesktopWidth,0,0,0,0x80000000,BitOr(0x00000080,0x00000008))
    $guizwei=GUICreate("CloseDesktop.2",@DesktopWidth,0,0,@DesktopHeight,0x80000000,BitOr(0x00000080,0x00000008))
    GUISetBkColor(0x000000,$guieins)
    GUISetBkColor(0x000000,$guizwei)
    GUISetState(@SW_SHOW,$guieins)
    GUISetState(@SW_SHOW,$guizwei)
    For $i=@DesktopHeight to 1 step -1
    WinMove("CloseDesktop.1","",0,0,@DesktopWidth,$i)
    WinMove("CloseDesktop.2","",0,(@DesktopHeight)-$i,@DesktopWidth,$i)
    Next
    sleep($iSleep)
    GUIDelete($guieins)
    GUIDelete($guizwei)
    EndFunc
    ;EXAMPLE
    $old=_WinFX_ResizeWindow("""WinFX",500,500,20)
    $old=_WinFX_ResizeWindow("""WinFX",$old[2],$old[3],20)

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

    _WinFX_CloseDesktop()
    sleep(1000)
    _WinFX_OpenDesktop()
    sleep(1000)
    _WinFX_FlashDesktop(1)

    [/autoit]
  • Wort aus String entfernen

    • L3viathan
    • 27. Januar 2009 um 10:33
    [autoit]

    StringReplace("Dies ist ein Beispiel, welches gekürzt wird","Beispiel","")

    [/autoit]
  • Button ausgrauen, Binkende Schrift

    • L3viathan
    • 26. Januar 2009 um 18:47

    Zu 1.: GuictrlSetState($Gui_Disable)
    Zu 2.: in adlibenable abwechselnd hiden und showen

  • _IENavigate

    • L3viathan
    • 26. Januar 2009 um 15:50

    Mit _IEAttach kannste dich mit einem existierenden IE verbinden.

  • Aspell in echtzeit nutzen

    • L3viathan
    • 26. Januar 2009 um 15:44

    Wenn du das hast, musst du soweit ich weiß ein Richtext-Ctrl einfügen (statt des Edits), damit sowas wie Umkringelung oder so geht.

  • Eben bei Amazon...

    • L3viathan
    • 25. Januar 2009 um 19:08

    Sowas ähnliches hab ich gestern auf der Tagesschauwebsite gefunden:
    [Blockierte Grafik: http://winmodd.funpic.de/kinder.png]

  • GAMES von Netzwerkfreigabe kopieren

    • L3viathan
    • 25. Januar 2009 um 19:06

    marquee heißt: du erkennst keinen Fortschritt , der Balken läuft nur durch, wie beim Windows-start.
    Wie? : --> Hilfe

  • GAMES von Netzwerkfreigabe kopieren

    • L3viathan
    • 23. Januar 2009 um 15:08

    hmm, schwierig, ich würde da vlt. die Gesamtgröße der Ursprungsdaten auslesen, und regelmäßig (AdLibEnable) die Größe des Ziels überprüfen. Oder du machst einfach ne marquee-progressbar.

  • PrimA - der Primzahlengenerator

    • L3viathan
    • 22. Januar 2009 um 10:01
    Zitat von Oscar

    Ich habe mal einen Laufzeittest von Deinem ( anno2008 ) und von Bernd's Code gemacht:

    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
    $diff = TimerDiff($timer)
    _StringDisplay(Round($diff/1000, 3) & ' sek.' & @CRLF & $string, 'Funktion von Anno2008')
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit][/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]

    Deine Funktion ist fast 4 mal so schnell. Nicht schlecht! :thumbup:
    Habe ich mir mal archiviert...

    Alles anzeigen


    Es gibt aber einen wesentlichen Unterschied:
    Während das Sieb des Eratosthenes nur alle Primzahlen ausgibt und logischerweise schneller ist, kann bernds Code auch eine spezielle Zahl auf Primzahligkeit überprüfen.

  • Function ausführen beim Beenden

    • L3viathan
    • 21. Januar 2009 um 22:36

    Das bringt auch nix, dann muss er win ja über das script beenden.
    An die pros: Gibt es nicht ein Shutdownevent?

  • AutoIT zu PHP ?

    • L3viathan
    • 20. Januar 2009 um 16:35
    Zitat von FireFlyer

    die variablen garnicht, du kannst den inhalt übersenden

    einfach so:

    Spoiler anzeigen
    [autoit]


    $variable = "Hallo das ist mein Text"
    $ie = _IECreate("www.deinepage.de/index.php?variable="&$variable)
    ;hier macht dann PHP etwas mit dem, siehe unten!
    $text = _IEBodyGetText($ie)
    MsgBox(0, "Dein Text auf der Seite", $text)

    [/autoit]

    Der PHP Teil:

    Spoiler anzeigen
    PHP
    echo 'Du hast folgenden Inhalt an die varaible übergeben: '.$_GET['variable'];


    Nicht nur SQL-Injections, auch XSS.

  • Problem mit Pfad (Dokumente und Einstellungen)

    • L3viathan
    • 20. Januar 2009 um 16:34

    Probier mal das hier:

    [autoit]

    $nbhExtract = 'NBHextract.exe' & '"' & ' '
    $file = 'RUU_signed.nbh' & '"'
    $pfad = '"' & @ScriptDir & '\NBH\'
    RunWait(@ComSpec & " /k start" & $pfad & $nbhExtract & $pfad & $file, "")

    [/autoit]
  • controlGetText

    • L3viathan
    • 19. Januar 2009 um 17:36

    Firefox basiert auf XUL, im Klartext: Geht so nicht.
    Guck dir mal die FF.au3 an.

  • Applikation zum TCP-Port ermitteln

    • L3viathan
    • 19. Januar 2009 um 17:35

    Hat nicht jeder (Windows-) PC netstat? Oder nur SP2?

  • TCP wird immer blockiert

    • L3viathan
    • 19. Januar 2009 um 17:32

    Das meinte ich doch die ganze Zeit. Ein Server bei einem kostenlosen Anbieter wie z.B. kilu.de oder so.
    Aber wie schon gesagt, äußerst langsam.

  • winwait zu class

    • L3viathan
    • 19. Januar 2009 um 16:52
    Zitat von boss93max

    also winwait([class:xy])
    ja?


    Wenn du noch Anführungszeichen setzt, ja.

  • login automatisch ?

    • L3viathan
    • 19. Januar 2009 um 16:51
    Zitat von Stilgar

    und die beiden Inputs haben andere Namen:

    [autoit]


    $oUsername = _IEFormElementGetObjByName($oForm, "login[u]")
    _IEFormElementSetValue($oUsername, "mein user name")
    $oPasswd = _IEFormElementGetObjByName($oForm, "login[p]")
    _IEFormElementSetValue($oPasswd, "Mein passwort")

    [/autoit]
    [autoit][/autoit]


    [/quote]
    Genau, das war der Fehler.

  • login automatisch ?

    • L3viathan
    • 19. Januar 2009 um 15:31

    Besser wäre es, wenn er das per Formular macht:
    IECreate...

  • OllyDbg + Autoit

    • L3viathan
    • 19. Januar 2009 um 15:12

    Ich glaube aus Sicherheitsgründen:
    Da steht ja auch, Anitvirenhersteller mögen sich bei autoitscript.com melden.

  • Richtig mit If umgehen

    • L3viathan
    • 19. Januar 2009 um 15:08
    Zitat von mongobongo
    [autoit]

    Case _IsPressed(52)
    Beep(138.591)

    [/autoit]


    Komma statt Punkt?

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™