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

Beiträge von eukalyptus

  • alle Items vom Treeview auflisten

    • eukalyptus
    • 7. Februar 2009 um 11:32

    So kannst du auch die "Einzüge" mitgeben, weil rekursiv

    Achtung: muß so gestartet werden:

    [autoit]

    _auslesen($hTreeView,_GUICtrlTreeView_GetFirstItem($hTreeView))

    [/autoit][autoit]

    Func _auslesen($hTreeView,$hParent,$sTab="")
    For $i=1 To _GUICtrlTreeView_GetSiblingCount($hTreeView, $hParent)
    If $hParent<>0 Then
    ConsoleWrite($sTab & _GUICtrlTreeView_GetText($hTreeView, $hParent) & @LF)
    _auslesen($hTreeView,_GUICtrlTreeView_GetFirstChild ($hTreeView,$hParent),$sTab & " ")
    EndIf
    $hParent=_GUICtrlTreeView_GetNextSibling($hTreeView,$hParent)
    Next
    EndFunc

    [/autoit]

    lgE

  • GDI+

    • eukalyptus
    • 7. Februar 2009 um 11:22

    In der Hintergrundfarbe drübermalen ;)

  • EditBox aktuelle Line abfragen?

    • eukalyptus
    • 7. Februar 2009 um 09:44

    Hi

    [autoit]

    #include <GuiEdit.au3>

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

    GUICreate("Test", 400, 400)
    $hEdit = GUICtrlCreateEdit("Zeile 0" & @CRLF & "Zeile 1" & @CRLF & "Zeile 2" & @CRLF & "Zeile 3", 10, 10, 380, 380)
    GUISetState()
    _GUICtrlEdit_SetSel($hEdit, 0, 0)

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

    While GUIGetMsg() <> -3
    $iLine = _GUICtrlEdit_LineFromChar($hEdit)
    ToolTip($iLine & @LF & _GUICtrlEdit_GetLine($hEdit, $iLine))
    Sleep(50)
    WEnd

    [/autoit]

    lgE

  • USB Gerät auswerfen und wieder aktivieren

    • eukalyptus
    • 7. Februar 2009 um 00:11

    Danke

    An DevCon hab ich auch schon gedacht.
    Werd das irgendwann mal ausprobieren.

    thx

  • GDI+

    • eukalyptus
    • 7. Februar 2009 um 00:08

    Du musst WM_PAINT-message verwenden.

    Windows sendet diese message an dein GUI, wenn es sich neuzeichnen soll.

    [autoit]

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

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

    _GDIPlus_Startup()
    $hGUI = GUICreate("GUI")
    GUISetState()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawRect($hGraphic, 50, 50, 100, 100)

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

    GUIRegisterMsg($WM_PAINT, "WM_PAINT")

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

    While GUIGetMsg() <> -3
    WEnd

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

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

    Func WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _GDIPlus_GraphicsDrawRect($hGraphic, 50, 50, 100, 100)
    EndFunc ;==>WM_PAINT

    [/autoit]

    lgE

  • ProcessClose geht nicht ganz

    • eukalyptus
    • 5. Februar 2009 um 10:19

    So sieht das Ergebnis bei mir aus:

    Window.LocationName:

    Code
    Eigene Dateien
    Test
    WINDOWS

    Window.LocationUrl:

    Code
    file:///C:/Dokumente und Einstellungen/GreyGoa/Eigene Dateien
    file:///D:/Test
    file:///C:/WINDOWS

    lgE

    EDIT: hab jetzt erst bemerkt, daß Progandy das mit LocationUrl schon geschrieben hat :D
    Sollte die Posts doch genauer lesen :whistling:

  • ProcessClose geht nicht ganz

    • eukalyptus
    • 5. Februar 2009 um 10:00

    Hi

    Bei mir klappt das nicht :(
    Es fehlen z.b. die Laufwerksbuchstaben...("Test" statt "D:\Test")

    Brauchbare Ergebnisse liefert bei mir jedoch

    [autoit]

    .LocationUrl

    [/autoit]


    Und JA, die Groß u Kleinschreibweise bei Variablen ist eigentlich egal.
    Aber je länger man programmiert, desto mehr achtet man (unbewusst) auf die gleiche Schreibweise ;)

    lgE

  • ProcessClose geht nicht ganz

    • eukalyptus
    • 4. Februar 2009 um 19:08

    Ich hab XP.

    Hab aber grad was entdeckt:
    Es ist ein Unterschied, ob man den Explorer via Start-Rechtklick öffnet, oder mit Doppelklick auf einen Ordner.
    Jenachdem lautet die Class "ExploreWClass" oder "CabinetWClass" ;)

    Da find ich es dann doch einfacher den WindowTitle auszulesen...

    Aber bei z.B. "Eigene Dateien" steht da nur "Eigene Dateien" und nicht der Pfad. Sowohl im Edit1 wie auch im WindowTitle.

    lgE

  • ProcessClose geht nicht ganz

    • eukalyptus
    • 4. Februar 2009 um 17:34

    Das geht bei mir nicht...
    Das Script findet nur die "Eigenen Dateien", und da bekommt man auch keinen Pfad heraus

  • Hohe Zahlen potenzieren

    • eukalyptus
    • 4. Februar 2009 um 17:11

    Meine _BigNum_Mul Funktion hat tatsächlich eine Beschränkung. (ich dachte aber, die liegt bei min 6000 Stellen und das nur wenn man mit 99999... rechnet...)
    Probiers mal mit der von Oscar ausm µit-September!

    Richtig schnell lassen sich solch große Zahlen mit Autoit sowieso nicht rechnen - also Tür auf für GMP ;)

    lgE

  • ProcessClose geht nicht ganz

    • eukalyptus
    • 4. Februar 2009 um 15:26

    Meines Wissens kann man leider den aktuellen Pfad des Explorers nicht auslesen.

    folgendes Script stellt alle Ordner wieder her, in welchen im Title der Pfad steht...
    Funktioniert also nicht bei "Eigenen Dateien", "Arbeitsplatz" usw...

    [autoit]

    $Temp=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoRestartShell")
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoRestartShell", "REG_DWORD", 0)
    $aProcess=ProcessList("Explorer.exe")
    $aWindow=WinList()

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

    Global $aFolder[2]=[1,""],$iCnt=1
    For $i=1 To $aWindow[0][0]
    $hPid=WinGetProcess($aWindow[$i][1])
    For $j=1 To $aProcess[0][0]
    If $hPid=$aProcess[$j][1] And BitAND(WinGetState($aWindow[$i][1]),2) And StringInStr($aWindow[$i][0],":\") Then
    $iCnt+=1
    ReDim $aFolder[$iCnt+1]
    $aFolder[$iCnt]=$aWindow[$i][0]
    EndIf
    Next
    $aFolder[0]=$iCnt
    Next

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

    While ProcessExists("explorer.exe")
    ProcessClose("explorer.exe")
    WEnd

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

    For $i=1 To $aFolder[0]
    Run('explorer.exe ' & $aFolder[$i])
    Next

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

    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoRestartShell", "REG_DWORD", $Temp)

    [/autoit]

    lgE

  • ProcessClose geht nicht ganz

    • eukalyptus
    • 3. Februar 2009 um 11:11

    Aber wo liegt jetzt genau der Unterschied, ob du das manuell startest, oder das System es automatisch macht?

  • Multiplayer-Game 'Kurven-Spiel'

    • eukalyptus
    • 3. Februar 2009 um 10:52

    Hi

    Hab grad das Spiel auf meinem Test-Laptop angetestet und es lief auf Win2k,WinXP,Vista(Ultimate) und Windows7beta reibungslos!
    Das wirft jetzt mehr Fragen auf, als es beantwortet ;)

    Übrigens: Das Spiel ist echt Klasse - Das würd ich gerne auf dem iPhone haben :thumbup:

    lgE

  • ProcessClose geht nicht ganz

    • eukalyptus
    • 3. Februar 2009 um 08:51

    Der Eintrag

    [autoit]

    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "Shell", "REG_SZ", "Explorer.exe")

    [/autoit]


    bestimmt, welches Programm beim Systemstart gestartet wird.

    So hab ich z.b. eine Art InternetCafe-Software gemacht...

  • Idee + kann man das überhaupt?? Delete Files

    • eukalyptus
    • 2. Februar 2009 um 23:27

    @Padmak:

    Bei deinem Geschwindigkeitstest kommt ein anderes Ergebnis raus, wenn man die beiden Tests vertauscht ;)

    [autoit]

    $bla = 1
    $bla2 = 2
    $timer2 = TimerInit()
    Select
    Case $bla = 1 Or $bla2 = 2
    EndSelect
    $timerende2 = TimerDiff($timer2)
    $timer = TimerInit()
    If $bla = 1 Or $bla2 = 2 Then
    EndIf
    $timerende = TimerDiff($timer)
    MsgBox(0, "", "Von If benötigte Zeit " & $timerende)
    MsgBox(0, "", "Von Select benötigte Zeit " & $timerende2)
    If $timerende < $timerende2 Then MsgBox(0, "", "If ist schneller")
    If $timerende > $timerende2 Then MsgBox(0, "", "Select ist schneller")

    [/autoit]

    Da mich das jetzt interessiert hat, hab ih auch einen Test gemacht:

    [autoit]

    Global $Timer,$X,$i,$Max=1000000

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

    $Timer=TimerInit()
    For $i=1 To $Max
    If $i=0 Then MsgBox(0,"","")
    Next
    ConsoleWrite("IF THEN " & TimerDiff($Timer) & @LF)

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

    $Timer=TimerInit()
    For $i=1 To $Max
    If $i=0 Then
    MsgBox(0,"","")
    EndIf
    Next
    ConsoleWrite("IF THEN ENDIF " & TimerDiff($Timer) & @LF)

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

    $Timer=TimerInit()
    For $i=1 To $Max
    Switch $i
    Case 0
    MsgBox(0,"","")
    EndSwitch
    Next
    ConsoleWrite("SWITCH " & TimerDiff($Timer) & @LF)

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

    $Timer=TimerInit()
    For $i=1 To $Max
    Select
    Case $i=0
    MsgBox(0,"","")
    EndSelect
    Next
    ConsoleWrite("SELECT " & TimerDiff($Timer) & @LF)

    [/autoit]

    Bei mir ist IF (Ohne Endif) am schnellsten, am langsamsten ist SELECT... ^^

  • Bildausschnitt anzeigen

    • eukalyptus
    • 2. Februar 2009 um 22:43

    Probiers aus, ob es das macht, was du willst ;)

    [autoit]

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

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

    _GDIPlus_Startup()
    $hGUI = GUICreate("GUI", 400, 400)
    GUISetState()

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

    $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Test.jpg")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hImage, 50, 50, 400, 400, 0, 0, 400, 400)

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

    GUIRegisterMsg($WM_PAINT, "WM_PAINT")

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

    While GUIGetMsg() <> -3
    WEnd

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

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

    Func WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hImage, 50, 50, 400, 400, 0, 0, 400, 400)
    EndFunc ;==>WM_PAINT

    [/autoit]


    lgE

  • Bildausschnitt anzeigen

    • eukalyptus
    • 2. Februar 2009 um 22:20

    Hi

    Schau dir mal

    [autoit]

    _GDIPlus_GraphicsDrawImageRectRect

    [/autoit]

    an

    lgE

  • kompletter Screenshot einer Webseite

    • eukalyptus
    • 2. Februar 2009 um 04:44

    Hab das mal mit dem Internet Explorer probiert...

    leider lässt dich die Scrollbar nicht immer ausblenden ?(

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>

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

    Global $iDX=@DesktopWidth
    Global $iDY=@DesktopHeight

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

    SplashTextOn("Erstelle Snapshot","Bitte warten...",250,70)

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

    $oIE = _IECreateEmbedded()
    $hGUI=GUICreate("Embedded Web control Test", $iDX, $iDY,0,0,BitOR($WS_CLIPCHILDREN, $WS_POPUP));,$WS_EX_TOPMOST)
    $hObj=GUICtrlCreateObj($oIE, -2, -2, $iDX+4, $iDY+4)
    GUISetState(@SW_SHOW)

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

    _IENavigate($oIE,"www.autoit.de")
    _IELoadWait($oIE,1000)

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

    SplashOff()

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

    $oIE.Document.body.Scroll = "no"
    $oIE.document.body.style.border = "0px"
    $iX=$oIE.document.body.scrollWidth
    $iY=$oIE.document.body.scrollHeight
    If $iX < $oIE.document.body.clientWidth Then $iX=$oIE.document.body.clientWidth
    If $iY < $oIE.document.body.clientHeight Then $iY=$oIE.document.body.clientHeight
    If $iX < $iDX Then $iX=$iDX
    If $iY < $iDY Then $iY=$iDY

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

    _GDIPlus_Startup()
    $tempGraph = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iX,$iY,$tempGraph)
    _GDIPlus_GraphicsDispose($tempGraph)
    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    $iSX=Floor($iX/$iDX)
    $iSY=Floor($iY/$iDY)
    $iRX=Mod($iX,$iDX)
    $iRY=Mod($iY,$iDY)
    For $i=0 To $iSX
    For $j=0 To $iSY
    $oIE.document.parentWindow.scroll($i*$iDX,$j*$iDY)
    _ScreenCapture_CaptureWnd(@TempDir & "\TempSnapshot.bmp",$hGUI,0,0,-1,-1,False)
    $hImage=_GDIPlus_ImageLoadFromFile(@TempDir & "\TempSnapshot.bmp")
    $iTX=$i*$iDX
    If $i=$iSX Then $iTX-=$iDX-$iRX
    $iTY=$j*$iDY
    If $j=$iSY Then $iTY-=$iDY-$iRY
    _GDIPlus_GraphicsDrawImage($hGraphics,$hImage,$iTX,$iTY)
    _GDIPlus_ImageDispose($hImage)
    Next
    Next
    _GDIPlus_ImageSaveToFile($hBitmap,@ScriptDir & "\Snapshot.bmp")
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    FileDelete(@TempDir & "\TempSnapshot.bmp")

    [/autoit]
  • Anzahl von Zeicher herausfinden

    • eukalyptus
    • 31. Januar 2009 um 23:15

    StringLen

  • Variablendeklaration automatisiert - Opt("MustDeclareVars", 1)

    • eukalyptus
    • 30. Januar 2009 um 00:21

    Hi

    Sehr schön :rock:
    sowas hab ich schon gesucht (und leider damals übersehen ;))

    Ich hab das jetzt nicht extra überprüft, aber ich nehme mal an, daß du alle Variablen, welche in einer Global/Local/Dim-Zeile stehen als schon deklariert betrachtest...
    In folgender Zeile wird jedoch nur $AccelKeys deklariert:

    [autoit]

    Dim $AccelKeys[5][2]=[["{UP}", $AccUp], ["{DOWN}", $AccDown], ["{TAB}", $AccTab], ["+{TAB}", $AccSTab], ["{Enter}", $AccEnter]]

    [/autoit]


    alle weiteren nicht, trotzdem von deinem Script übersprungen.

    Solche Fälle sollten aber eher die Ausnahme sein;
    Aber wenn du Lust und Zeit hast, dann könntest du dieses Feature noch hinzufügen... ^^

    lgE

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™