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. owi dowi spinn

Beiträge von owi dowi spinn

  • ImageList in ListView zu langsam

    • owi dowi spinn
    • 19. August 2014 um 12:39

    Hi,

    ich möchte eine ListView mit Bildern aus einem Ordner machen. Dazu habe ich schon ein Script im Internet gefunden, das genau das tut. Mein Problem ist aber, dass das Bilder-zur-ImageList-hinzufügen eine ganze Weile braucht, besonders wenn man ein paar mehr Bilder hat.

    Daher meine Frage: Wie kann ich den Vorgang beschleunigen?

    Leider kenne ich mich nicht wirklich mit GDI+ oder ImageLists aus. Meine Ideen bisher wären: Irgendwie die _GUIImageList_AddImage() optimieren, nicht gleich alle Bilder laden, sondern nur die, die gerade in der ListView angezeigt werden (habe ich aber überhaupt keine Ahnung wie), ImageList irgendwie als Datei cachen und dann davon laden (?).

    [autoit]


    #Include <GDIPlus.au3>
    #Include <GUIImageList.au3>
    #Include <GUIListView.au3>

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

    $hForm = GUICreate('MyGUI', 400, 400)
    $hListView = GUICtrlCreateListView('', 10, 10, 380, 380)
    _GUICtrlListView_AddColumn($hListView, 'Items', 200)
    $hImageList = _GUIImageList_Create(121, 91, 5, 1)
    _GUICtrlListView_SetImageList($hListView, $hImageList, 1)

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

    GUISetState()
    For $i = 1 To 100 ;<<<<<<<<<<<<<< Hier Anzahl ändern
    _GUIImageList_AddImage($hImageList, -1, "IRGENDEIN ORDNER MIT BILDERN" & $i & ".jpg") ;<<<<<<<<<<<<<<<<<< Hier Ordner einfügen
    _GUICtrlListView_AddItem($hListView, $i, $i - 1)
    Next

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

    Do
    Until GUIGetMsg() = -3

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

    Func _GUIImageList_AddImage($hWnd, $iIndex, $sFile)
    Local $W, $H, $hGraphic, $hPic, $hImage, $hIcon

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

    _GDIPlus_Startup()
    $hPic = _GDIPlus_ImageLoadFromFile($sFile)
    $W = 121
    $H = 91

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

    $hImage = DllCall($ghGDIPDll, 'int', 'GdipGetImageThumbnail', 'ptr', $hPic, 'int', $W, 'int', $H, 'ptr*', 0, 'ptr', 0, 'ptr', 0)
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage[4])
    _GDIPlus_GraphicsClear($hGraphic, 0)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hPic, 0, 0, $W, $H)
    $hIcon = DllCall($ghGDIPDll, 'int', 'GdipCreateHICONFromBitmap', 'ptr', $hImage[4], 'ptr*', 0)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage[4])
    _GDIPlus_ImageDispose($hPic)
    _GDIPlus_Shutdown()
    If Not $hIcon[2] Then
    Return -1
    EndIf
    $iIndex = _GUIImageList_ReplaceIcon($hWnd, $iIndex, $hIcon[2])
    _WinAPI_DestroyIcon($hIcon[2])
    Return $iIndex
    EndFunc ;==>_GUIImageList_AddImage

    [/autoit]

    Edit (3 Jahre später):
    Für den Fall, dass jemand diesen Beitrag findet und das gleiche Problem hat, hier meine momentane Lösung:
    Zunächst einmal hatte ich alle Bilder auch als ICO gespeichert, was das ganze schon mal deutlich beschleunigt hat. Irgendwann war es mir aber trotzdem noch zu langsam, sodass ich jetzt die Icons erst lade, wenn sie in der ListView angezeigt werden. Zunächst habe ich eine ImageList erstellt, in der jedes Icon eine weiße Fläche ist. Mit _GUICtrlListView_GetTopIndex() und _GUICtrlListView_GetCounterPage() bekommt man raus, welche Items zu sehen sind. Ist dies der Fall, ersetze ich das weiße Bild in der ImageList mit dem richtigen Icon _GUIImageList_ReplaceIcon().

  • Mehrere Probleme mit GUI-Pic

    • owi dowi spinn
    • 25. April 2014 um 11:15

    Das @SW_(UN-)LOCK hat schon mal das Flackern behoben, vielen Dank dafür :) (Es kam nicht durch das Debug-Label, das habe ich ja auch erst nachträglich hinzugefügt wegen des zweiten Problems).

    Jetzt gibt es aber noch das genannte Problem, dass wenn man mit den Pfeiltasten zurück zu einem Bild geht, das eine höhere Auflösung als der Monitor hat, es aus irgendeinem Grund nicht skaliert angezeigt wird :(.

  • Mehrere Probleme mit GUI-Pic

    • owi dowi spinn
    • 23. April 2014 um 16:37

    Hi, ich habe mich an einem Image Viewer versucht, bei dem man in Vollbild Bilder aus einem Ordner in zufälliger Reihenfolge ansehen kann. Im Großen und Ganzen funktioniert das auch. Aber es gibt ein paar kleine Probleme:
    1. Wenn man das Bild wechselt flackert es kurz schwarz. Ich habe zwei Pic-Controls verwendet, da es vorher viel schlimmer war, aber es ist immernoch nicht ganz toll.
    2. Mein Hauptproblem ist, dass wenn man zurück geht (Pfeiltaste links) auf ein Bild welches größer ist als der Bildschirm, wird es aus irgendeinem Grund trotzdem nicht skaliert angezeigt sondern man sieht dann eben nur die Ecke oben links.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    ;~ #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Array.au3>

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

    $Dir = "C:\Windows\Web\Wallpaper"

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

    $FileList = _GetFilesFolder_Rekursiv($Dir, "jpg", 0)
    Global $DisplayHistory[0]
    $HistoryStep = 0

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

    $Form1 = GUICreate("Image Viewer", @DesktopWidth, @DesktopHeight, 0, 0, BitOR(0x01000000, 0x80000000))
    GUISetBkColor(0x000000)
    Global $Pic[2]
    $Pic[0] = GUICtrlCreatePic("",0,0,0,0)
    $Pic[1] = GUICtrlCreatePic("",0,0,0,0)
    GUICtrlSetState(-1, $GUI_HIDE)
    $DebugLabel = GUICtrlCreateLabel("", 0, 0, 500, 500)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0xffffff)
    $PicCurrent = 0
    SetRandomPic()
    GUISetState(@SW_SHOW)

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

    HotKeySet("{RIGHT}", "SetRandomPic")
    HotKeySet("{LEFT}", "Undo")

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

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

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

    Func Undo()
    $HistoryStep += 1
    $Index = UBound($DisplayHistory) - 1 - $HistoryStep
    If $Index >= 0 Then
    SetPic($DisplayHistory[$Index])
    Else
    $HistoryStep -= 1
    EndIf
    EndFunc

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

    Func Redo()
    $HistoryStep -= 1
    $Index = UBound($DisplayHistory) - 1 - $HistoryStep
    SetPic($DisplayHistory[$Index])
    EndFunc

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

    Func SetRandomPic()
    If $HistoryStep > 0 Then
    Redo()
    Return
    EndIf
    Do
    $File = $FileList[Random(1, $FileList[0], 1)]
    Until _ArraySearch($DisplayHistory, $File) = -1
    If UBound($DisplayHistory) >= $FileList[0] - 1 Then ReDim $DisplayHistory[0]
    If $FileList[0] > 1 Then _ArrayAdd($DisplayHistory, $File)
    SetPic($File)
    EndFunc

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

    Func SetPic($Path)
    _GDIPlus_Startup()
    $Image = _GDIPlus_BitmapCreateFromFile($Path)
    $Width = _GDIPlus_ImageGetWidth($Image)
    $Height = _GDIPlus_ImageGetHeight($Image)
    _GDIPlus_BitmapDispose($Image)
    _GDIPlus_Shutdown()

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

    $Scaling = 1
    If $Width > @DesktopWidth Then
    $Scaling = @DesktopWidth / $Width
    EndIf
    If $Height * $Scaling > @DesktopHeight Then
    $Scaling = @DesktopHeight / $Height
    EndIf
    $PicCurrentNew = 1
    If $PicCurrent = 1 Then $PicCurrentNew = 0
    GUICtrlSetPos($Pic[$PicCurrentNew], (@DesktopWidth - Floor($Width * $Scaling)) / 2, (@DesktopHeight - Floor($Height * $Scaling)) / 2, Floor($Width * $Scaling), Floor($Height * $Scaling))
    GUICtrlSetImage($Pic[$PicCurrentNew], $Path)
    GUICtrlSetState($Pic[$PicCurrentNew], $GUI_SHOW)
    GUICtrlSetState($Pic[$PicCurrent], $GUI_HIDE)
    GUICtrlSetImage($Pic[$PicCurrent], "")
    $PicCurrent = $PicCurrentNew
    GUICtrlSetData($DebugLabel, "X: " & (@DesktopWidth - Floor($Width * $Scaling)) / 2 & @CRLF & "Y: " & (@DesktopHeight - Floor($Height * $Scaling)) / 2 & @CRLF & "Width: " & Floor($Width * $Scaling) & @CRLF & "Height: " & Floor($Height * $Scaling))
    ;~ MsgBox(0,"", (@DesktopWidth - Floor($Width * $Scaling)) / 2 & @CRLF & (@DesktopHeight - Floor($Height * $Scaling)) / 2 & @CRLF & Floor($Width * $Scaling) & @CRLF & Floor($Height * $Scaling))
    EndFunc

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

    ;--------
    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]
  • Bildausschnitt speichern

    • owi dowi spinn
    • 20. März 2014 um 11:46

    Das funktioniert, vielen Dank :)

  • Bildausschnitt speichern

    • owi dowi spinn
    • 20. März 2014 um 11:26

    Hi,

    ich möchte aus einem großen Screenshot einen Bildausschnitt speichern. Bislang habe ich leider nur Scripte gefunden, bei denen der Bildausschnitt dann in einem GUI angezeigt wird aber nicht gespeichert (z.B. Beispiel von _GDIPlus_GraphicsDrawImageRectRect).
    Ich habs mal wie folgt versucht:

    [autoit]

    #include <ScreenCapture.au3>
    #include <GDIPlus.au3>

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

    ;Screenshot zum testen erstellen
    _ScreenCapture_Capture(@MyDocumentsDir & "\Bildausschnitt-Test.png")

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

    ;Der falsche GDI+ Kram
    _GDIPlus_Startup()
    $ImageOrginal = _GDIPlus_BitmapCreateFromFile(@MyDocumentsDir & "\Bildausschnitt-Test.png")
    ;~ $Width = _GDIPlus_ImageGetWidth($ImageOrginal) - 1
    ;~ $Height = _GDIPlus_ImageGetHeight($ImageOrginal) - 1

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

    $Bitmap = _GDIPlus_BitmapCreateFromScan0(100, 100)
    $Graphic = _GDIPlus_ImageGetGraphicsContext($Bitmap)
    $ImageNew = _GDIPLus_GraphicsDrawImageRectRect($Graphic, $ImageOrginal, 0, 0, 100, 100, 0, 0, 100, 100)
    _GDIPlus_ImageSaveToFile($ImageNew, @MyDocumentsDir & "\Bildausschnitt-Test-NEU.png")

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

    _GDIPlus_BitmapDispose($ImageOrginal)
    _GDIPlus_BitmapDispose($Bitmap)
    _GDIPlus_Shutdown()

    [/autoit]


    Leider wird kein Bildausschnitt-Test-NEU.png erstellt :(.
    Ich hoffe ihr könnt mir helfen.

  • Bildschirm in Graustufen/spiegeln/etc. bzw. Screenshot machen ohne Overlay

    • owi dowi spinn
    • 21. Februar 2014 um 21:28

    Cool das das funktioniert! Leider flackert es aber wirklich zu doll um das länger zu verwenden. Den Code verstehe ich auch überhaupt nicht :(. Und was ist "blitten"?

  • Bildschirm in Graustufen/spiegeln/etc. bzw. Screenshot machen ohne Overlay

    • owi dowi spinn
    • 21. Februar 2014 um 17:57

    Hi,

    ich würde gerne das, was man auf dem Monitor sieht, mit GDI+ bearbeiten können. Also z.B. dass alles in Graustufen angezeigt wird.
    Wie man das fertige Bild am Ende über alles drüber legt, aber trotzdem noch alles verwenden kann, habe ich schon hier gefunden. Wie man mit GDI+ Bilder s/w macht steht ja auch schon in den GDI+ Beispielen.
    Das Problem ist jetzt, das man ja irgendwoher das Bild braucht, was man dann umwandeln kann. Das klappt einmal indem man einen Screenshot macht, aber danach würde man den ja nur noch von den umgewandelten angezeigten Bild machen. Also: Was tun?

    Ich wollte das übrigens nur zum Spaß machen, das hat bei mir keinen praktischen Nutzen.

  • Tipps für ein Programm

    • owi dowi spinn
    • 10. Februar 2014 um 13:18

    Die Einträge in das Kontext-Menü vom Explorer bekommen andere Programm hin, indem sie in der Registry unter HKLM\Software\Classes\*\ShellEx\ContextMenuHandlers ihren Eintrag hinzufügen. Hab ich aber noch nie gemacht, google da einfach mal nach. Ich weiß aber nicht ob das sofort funktioniert oder ob man explorer.exe erst neu starten muss.

  • Spotify enhancement suite

    • owi dowi spinn
    • 2. November 2013 um 20:36

    So weit ganz gut, allerdings bin ich nicht so sehr vom Standard-Spotify genervt als das ich jetzt dein Script verwenden würde.

    Hat zwar nicht so viel mit dem eigentlichen Ziel deines Programmes zu tun, aber wie wär's wenn du noch einen/den Spotify Recorder da mit einbaust?

  • "Verdächtiger" Registry-Pfad

    • owi dowi spinn
    • 12. August 2011 um 09:07

    Hi,

    ich wollte den Text des Bildschirmschoners "3D-Text" ändern (also der Text der sich dann da immer in der Mitte dreht).
    Nach dem durchsuchen der Registry habe ich den Text, den ich bei mir eingestellt habe hier gefunden: HKEY_USERS\S-1-5-21-3051516253-315483011-2696818185-1000\Software\Microsoft\Windows\CurrentVersion\Screensavers\ssText3d

    Jetzt ist meine Frage, ob es was besonderes mit dem "S-1-5-21-305151..." auf sich hat, oder ob ich das ganz normal benutzen kann. Ändert sich dieser Code von Neustart zu Neustart oder Computer zu Computer?

  • Virtuelles (partielles) Laufwerk Erstellen/Löschen

    • owi dowi spinn
    • 24. Juli 2011 um 12:55

    Vielen Dank :)

  • Virtuelles (partielles) Laufwerk Erstellen/Löschen

    • owi dowi spinn
    • 23. Juli 2011 um 22:27

    Tut mir leid, das ich diesen Thread wieder ausgrabe, aber bei mir gibt's immer diese Fehlermeldung beim _PartialDrive :(. Auf einem anderen PC funktioniert es. Liegt es an XP?

    Zitat

    ==> Variable must be of type "Object".:
    $oDrives.Add(Asc(StringLeft($aDrives[$i],1)))
    $oDrives^ ERROR

  • Position eines Icons auf dem Desktop ermitteln

    • owi dowi spinn
    • 13. Juni 2011 um 10:41

    Ahh, jetzt habe ich dein Script verstanden :)

    Ich habe jetzt dein Script so umgeschrieben, dass man den Namen der Verknüpfung eingeben muss und da dann ein BalloonTip erscheint.

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    ShowBalloonTip("Papierkorb")
    Sleep(4000)

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

    Func ShowBalloonTip($LinkName)
    If Not WinActive("Program Manager") Then WinActivate("Program Manager")
    $hwnd = ControlGetHandle("Program Manager", "", "SysListView321")
    $hwnd = HWnd($hwnd)
    WinMinimizeAll()
    For $i = 0 To _GUICtrlListView_GetItemCount($hwnd) - 1
    If _GUICtrlListView_GetItemText($hwnd, $i)=$LinkName Then
    $pos = _GUICtrlListView_GetItemPosition($hwnd, $i)
    If IsArray($pos) Then
    ToolTip("Das ist die Verknüpfung",$pos[0] + 24, $pos[1] + 27,"Hier",1,5)
    ExitLoop
    EndIf
    EndIf
    Next
    EndFunc

    [/autoit]


    Das war genau das, was ich gesucht habe, vielen Dank! :D

    P.S.: Vista x32, 1440x900, Aero-Design

  • Position eines Icons auf dem Desktop ermitteln

    • owi dowi spinn
    • 13. Juni 2011 um 08:32

    WhiteLion: Da stehen zwar einige Verknüpfungen vom Desktop, aus dem Binären Wirrwarr kann ich allerdings keine Positionen rauslesen.

    @Twodollarbillie: Ich möchte eigendlich möglichst fern von allem was mit PixelSearch und so zu tun hat bleiben, da das Icon theoretisch auch komplett transparent o.Ä. sein kann.

    XovoxKingdom: Klingt gut, nur was ist der Program Manager?^^

  • Position eines Icons auf dem Desktop ermitteln

    • owi dowi spinn
    • 12. Juni 2011 um 22:05

    Ich brauche die Position, damit ich da einen BallonTip dranmachen kann mit einer Information.

  • Position eines Icons auf dem Desktop ermitteln

    • owi dowi spinn
    • 12. Juni 2011 um 21:52

    Ich weiß sowohl den Namen der Verknüpfung und das Icon. Mit PixelSearch klappt das aber wahrscheinlich nur kaum, da ich nicht die Größe der Icons kenne und oft ja auch Transparenz verwendet wird, wo man dann das Wallpaper, welches ich auch nicht kenne, sieht.

    Kann man die Position nicht anhand des Namens irgendwie in der Registry oder so bestimmen?

  • Position eines Icons auf dem Desktop ermitteln

    • owi dowi spinn
    • 12. Juni 2011 um 21:00

    Hi,

    ich würde gerne die Position eines Icons auf dem Desktop ermitteln.

    Leider habe ich keine Idee, wie ich das bewerkstelligen soll und über die Suche und Google habe ich auch nichts passendes gefunden :(.
    Hat jemand eine Idee?


    So long,
    owi

  • Fokus in EmbeddedIE setzten

    • owi dowi spinn
    • 5. Mai 2011 um 20:20

    Danke, funktioniert :)

  • Fokus in EmbeddedIE setzten

    • owi dowi spinn
    • 5. Mai 2011 um 17:56

    Klingt logisch, funktioniert aber nicht :(.

    (Bei Buttons funktioniert es)

    Mein Code:

    Spoiler anzeigen
    [autoit]

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

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()
    $GUI=GUICreate("Embedded Web control Test", 640, 580, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)

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

    GUISetState() ;Show GUI

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

    _IENavigate ($oIE, "http://www.autoitscript.com")

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

    ControlClick($GUI,"",$GUIActiveX) ;!!!!!!!!!

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

    ; Waiting for user to close the window
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $GUI_Button_Home
    _IENavigate ($oIE, "http://www.autoitscript.com")
    Case $msg = $GUI_Button_Back
    _IEAction ($oIE, "back")
    Case $msg = $GUI_Button_Forward
    _IEAction ($oIE, "forward")
    Case $msg = $GUI_Button_Stop
    _IEAction ($oIE, "stop")
    EndSelect
    WEnd

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

    GUIDelete()

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

    Exit

    [/autoit]
  • Fokus in EmbeddedIE setzten

    • owi dowi spinn
    • 5. Mai 2011 um 15:54

    Hi,

    ich habe mit _IECreateEmbedded() ein in ein GUI eingebetteten InternetExplorer gemacht. Und ich habe ein ganz kleines Problem, was mich aber irgendwie total nervt:
    Wenn die Seite größer ist als das eingebettete Fenster (meißtens) und man nach unten scrollen möchte, muss man vorher noch ein mal in das Objekt reinklicken, bevor man scrollen kann :pinch: .
    Lässt sich nicht irgendwie der "Fokus" oder was auch immer sonst nötig ist, nicht automatisch in das Objekt setzten?

    Ich könnte natürlich auch mit MouseClick() da einmal reinklicken, aber das wäre mir zu unprofessionell :D.

    Wenn jemand ein Beispiel will soll er das Beispiel von _IECreateEmbedded() benutzen.

    owi

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™