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

Beiträge von MrB

  • _GUICtrlRichEdit_StreamToVar Problem

    • MrB
    • 29. Mai 2010 um 22:27

    Moin zusammen,

    Ich versuch mich im Moment mal mit dem Thema RichEdit auseinander zusetzen. Klappt soweit auch ganz gut, bis auf eins. Wenn ich bei meinem Script den Befehl

    [autoit]

    _GUICtrlRichEdit_StreamToVar

    [/autoit]

    benutze, bekomme ich nicht den Text des RichEdits zurück. Manchmal schmiert das Script auch ab. Kann mir da mal bitte einer helfen. Finde den Fehler nicht.

    Spoiler anzeigen
    [autoit]

    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiRichEdit.au3>
    #include <GuiStatusBar.au3>
    #include <Misc.au3>
    #include <WindowsConstants.au3>

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

    #region ### START Koda GUI section ### Form=
    $MainForm = GUICreate("MainForm", 1025, 769, 192, 124)
    $MenuItem2 = GUICtrlCreateMenu("MenuItem2")
    $MenuItem1 = GUICtrlCreateMenu("MenuItem1")
    $StatusBar1 = _GUICtrlStatusBar_Create($MainForm)
    _GUICtrlStatusBar_SetMinHeight($StatusBar1, 26)
    $Edit1 = _GUICtrlRichEdit_Create($MainForm, "", 30, 75, 471, 151, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    $Edit2 = _GUICtrlRichEdit_Create($MainForm, "", 30, 245, 471, 161, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    $Edit3 = _GUICtrlRichEdit_Create($MainForm, "", 30, 430, 476, 171, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    $Button_Fett = GUICtrlCreateButton("F", 5, 5, 26, 21)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Button_Kursiv = GUICtrlCreateButton("K", 35, 5, 26, 21)
    GUICtrlSetFont(-1, 8, 400, 2, "MS Sans Serif")
    $Button_Unter = GUICtrlCreateButton("U", 65, 5, 26, 21)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    $Combo_Grosse = GUICtrlCreateCombo("8", 270, 5, 51, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "10|12|14|16|18|20|22|24|28|36|48|72|80")
    $Button_Color = GUICtrlCreateButton("Text-Farbe", 95, 5, 71, 21)
    $Button_BkColor = GUICtrlCreateButton("Hintergrund-Farbe", 170, 5, 96, 21)
    $Label_ausrichtung = GUICtrlCreateLabel("Ausrichtung: ", 330, 8, 66, 17)
    $Button_links = GUICtrlCreateButton("Links", 400, 5, 46, 21)
    $Button_mitte = GUICtrlCreateButton("Mitte", 450, 5, 46, 21)
    $Button_rechts = GUICtrlCreateButton("Rechts", 500, 5, 46, 21)

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

    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    RichExit()
    Case $Button_Fett
    $RichEditHwnd = get_RichEdit()
    fett($RichEditHwnd)
    Case $Button_Kursiv
    $RichEditHwnd = get_RichEdit()
    kursiv($RichEditHwnd)
    Case $Button_Unter
    $RichEditHwnd = get_RichEdit()
    unter($RichEditHwnd)
    Case $Combo_Grosse
    $RichEditHwnd = get_RichEdit()
    grosse($RichEditHwnd)
    Case $Button_Color
    $RichEditHwnd = get_RichEdit()
    color($RichEditHwnd)
    Case $Button_BkColor
    $RichEditHwnd = get_RichEdit()
    bk_color($RichEditHwnd)
    Case $Button_links
    $RichEditHwnd = get_RichEdit()
    $sort = "links"
    sort($RichEditHwnd,$sort)
    Case $Button_mitte
    $RichEditHwnd = get_RichEdit()
    $sort = "mitte"
    sort($RichEditHwnd,$sort)
    Case $Button_rechts
    $RichEditHwnd = get_RichEdit()
    $sort = "rechts"
    sort($RichEditHwnd,$sort)
    EndSwitch
    WEnd

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

    Func get_RichEdit()
    Select
    Case _GUICtrlRichEdit_IsTextSelected($Edit1)
    Return $Edit1
    Case _GUICtrlRichEdit_IsTextSelected($Edit2)
    Return $Edit2
    Case _GUICtrlRichEdit_IsTextSelected($Edit3)
    Return $Edit3
    EndSelect
    EndFunc ;==>get_RichEdit

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

    Func sort($RichEdit,$ausrichtung)
    If $ausrichtung = "links" Then _GUICtrlRichEdit_SetParaAlignment($RichEdit, "l")
    If $ausrichtung = "mitte" Then _GUICtrlRichEdit_SetParaAlignment($RichEdit, "c")
    If $ausrichtung = "rechts" Then _GUICtrlRichEdit_SetParaAlignment($RichEdit, "r")

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

    EndFunc ;==>color

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

    Func color($RichEdit)
    $color = _ChooseColor()
    _GUICtrlRichEdit_GetSel($RichEdit)
    _GUICtrlRichEdit_SetCharColor($RichEdit, $color);"804080")
    EndFunc ;==>color

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

    Func bk_color($RichEdit)
    $color = _ChooseColor()
    _GUICtrlRichEdit_GetSel($RichEdit)
    _GUICtrlRichEdit_SetCharBkColor($RichEdit, $color);"804080")
    EndFunc ;==>bk_color

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

    Func grosse($RichEdit)
    $soll_size = GUICtrlRead($Combo_Grosse)
    _GUICtrlRichEdit_SetFont($RichEdit, $soll_size)
    $stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
    _GUICtrlRichEdit_SetText($Edit2,$stream)
    EndFunc ;==>grosse

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

    Func fett($RichEdit)
    $attribs = _GUICtrlRichEdit_GetCharAttributes($RichEdit)

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

    $fett = StringInStr($attribs, "bo+")
    $nicht_fett = StringInStr($attribs, "bo-")

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

    Select
    Case $fett <> 0
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "-bo")
    Case $nicht_fett <> 0
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "+bo")
    Case Else
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "+bo")
    EndSelect
    $stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
    _GUICtrlRichEdit_SetText($Edit2,$stream)
    ;~ MsgBox(0,"","" & $stream)
    EndFunc ;==>fett

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

    Func kursiv($RichEdit)
    $attribs = _GUICtrlRichEdit_GetCharAttributes($RichEdit)

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

    $kursiv = StringInStr($attribs, "it+")
    $nicht_kursiv = StringInStr($attribs, "it-")

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

    Select
    Case $kursiv <> 0
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "-it")
    Case $nicht_kursiv <> 0
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "+it")
    Case Else
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "+it")
    EndSelect
    $stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
    _GUICtrlRichEdit_SetText($Edit2,$stream)
    EndFunc ;==>kursiv

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

    Func unter($RichEdit)
    $attribs = _GUICtrlRichEdit_GetCharAttributes($RichEdit)

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

    $unter = StringInStr($attribs, "un+")
    $nicht_unter = StringInStr($attribs, "un-")

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

    Select
    Case $unter
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "-un")
    Case $nicht_unter
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "+un")
    Case Else
    _GUICtrlRichEdit_SetCharAttributes($RichEdit, "+un")
    EndSelect
    $stream = _GUICtrlRichEdit_StreamToVar($RichEdit)
    _GUICtrlRichEdit_SetText($Edit2,$stream)
    EndFunc ;==>unter

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

    Func RichExit()
    _GUICtrlRichEdit_Destroy($Edit1)
    _GUICtrlRichEdit_Destroy($Edit2)
    _GUICtrlRichEdit_Destroy($Edit3)
    Exit
    EndFunc ;==>RichExit

    [/autoit]
  • Bilder-Galerie

    • MrB
    • 25. Mai 2010 um 19:42

    Das sagst du so einfach in deinem jugendlichen Leichtsinn ! (geht wieder)

    Erstmal raus finden wie! Komplett alles dauert zu lange

  • Bilder-Galerie

    • MrB
    • 25. Mai 2010 um 19:16

    Bitte

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <FileEx.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiScrollBars.au3>
    #include <ScrollBarConstants.au3>
    #include <WindowsConstants.au3>

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

    $msg = MsgBox(4, "", "Möchtest du die Galerie jetzt erstellen ?")

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

    If $msg = 6 Then
    #region ### START Koda GUI section ### Form=
    $MainForm = GUICreate("Status", 1024, 768, Default, Default)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    _GUIScrollBars_Init($MainForm)
    _GUIScrollBars_ShowScrollBar($MainForm, $SB_VERT, $ESB_DISABLE_BOTH)

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

    galerie()

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

    GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")

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

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

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

    EndIf

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

    Func galerie()

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

    Local $aPics = _FileListTreeToArray(@ScriptDir & "\Pflanzen DB\pics\")
    Local $left = 16
    Local $top = 38
    Local $Width = 185
    Local $Height = 185
    Local $nr = 0
    Local $count = 0
    Local $top_label = 223
    Local $height_label = 17
    Local $scrollbar_height = 0
    Dim $aPics_Viewer[UBound($aPics)]

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

    _deleteBlanks($aPics)

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

    For $i = 1 To UBound($aPics) - 1

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

    _GDIPlus_Startup()
    $hImage = _GDIPlus_BitmapCreateFromFile($aPics[$i])
    $x = _GDIPlus_ImageGetWidth($hImage)
    $y = _GDIPlus_ImageGetHeight($hImage)

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($MainForm)

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

    $format = $x / $y

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

    If $format > 1 Then ;breiter wie hoch
    Do
    $x = $x - (10 * $format)
    $y = $y - 10
    ;~ ToolTip("Breite: " & $x & " Höhe: " & $y)
    Until $x < 185; Or $y < 185
    EndIf

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

    If $format < 1 Then ; höher wie breit
    Do
    $x = $x - (10 * $format)
    $y = $y - 10
    ;~ ToolTip("Höhe: " & $y & " Breite: " & $x)
    Until $y < 185; Or $x < 185
    EndIf

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

    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage, $left, $top, $x, $y)

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

    ;~ GUICtrlCreatePic($aPics[$i], $left, $top, $x, $y)
    $pfad = StringSplit($aPics[$i], "\")
    $aPics_Viewer[$i] = $aPics[$i]

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

    $left = $left + 193
    $nr = $nr + 1
    $count = $count + 1

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

    If $nr = 5 Then
    $top = $top + 223
    $top_label = $top_label + 223
    $left = 16
    $scrollbar_height = $scrollbar_height + 240

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

    $nr = 0

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

    If $scrollbar_height > 769 Then
    $vert = _GUIScrollBars_GetScrollRange($MainForm, $SB_VERT)
    _GUIScrollBars_SetScrollRange($MainForm, $SB_VERT, 0, ($vert[1] + 9.83))
    EndIf
    EndIf
    Next

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

    $nr = 0
    $left = 16
    $top_label = 223

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

    For $i = 1 To UBound($aPics) - 1
    $pfad = StringSplit($aPics[$i], "\")
    GUICtrlCreateLabel("" & $pfad[UBound($pfad) - 3] & "\" & $pfad[UBound($pfad) - 2] & "\" & $pfad[UBound($pfad) - 1], $left, $top_label, $x, $height_label)

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

    $left = $left + 200
    $nr = $nr + 1

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

    If $nr = 5 Then
    $top_label = $top_label + 223
    $left = 16
    $nr = 0
    EndIf
    Next

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

    EndFunc ;==>galerie

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

    Func _deleteBlanks(ByRef $array)
    If IsArray($array) < 1 Then Return 0

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

    $bound = UBound($array) - 1
    Local $i = 0
    Local $isZeroIndex = 0

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

    If $array[0] = $bound Then
    $isZeroIndex = 1
    $i = 1
    EndIf

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

    While $i <= $bound
    If $array[$i] = "" Or StringIsSpace($array[$i]) > 0 Or Not StringInStr($array[$i], '.') Or StringInStr($array[$i], "blau.jpg") Or StringInStr($array[$i], "platzhalter.jpg") Or StringInStr($array[$i], "background.jpg") Then
    _ArrayDelete($array, $i)
    $bound = $bound - 1
    If $isZeroIndex > 0 Then $array[0] = $array[0] - 1
    Else
    $i = $i + 1
    EndIf
    WEnd
    EndFunc ;==>_deleteBlanks

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

    Func WM_VSCROLL($hWnd, $msg, $wParam, $lParam)
    ;~ ToolTip("Handle : " & $hWnd & " Msg : " & $Msg & "wParam : " & $wParam & "lParam : " & $lParam)
    #forceref $Msg, $wParam, $lParam
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
    Local $index = -1, $yChar, $yPos
    Local $Min, $Max, $Page, $pos, $TrackPos

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

    For $x = 0 To UBound($aSB_WindowInfo) - 1
    If $aSB_WindowInfo[$x][0] = $hWnd Then
    $index = $x
    $yChar = $aSB_WindowInfo[$index][3]
    ExitLoop
    EndIf
    Next
    If $index = -1 Then Return 0

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

    ; Ermittelt alle Informationen der vertikalen Scrollbar
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)
    $Min = DllStructGetData($tSCROLLINFO, "nMin")
    $Max = DllStructGetData($tSCROLLINFO, "nMax")
    $Page = DllStructGetData($tSCROLLINFO, "nPage")
    $yPos = DllStructGetData($tSCROLLINFO, "nPos")
    $TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")
    ; Speichert die y-Position für einen späteren Vergleich
    $pos = $yPos

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

    ; Auswertung der vom System gemeldeten Scroll-Nachricht
    Switch $nScrollCode
    Case $SB_TOP ; Der Anwender klickte auf die "Pos1"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Min)

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

    Case $SB_BOTTOM ; Der Anwender klickte auf die "Ende"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Max)

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

    Case $SB_LINEUP ; Der Anwender klickte auf den oberen Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $pos - 1)

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

    Case $SB_LINEDOWN ; Der Anwender klickte auf den unteren Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $pos + 1)

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

    Case $SB_PAGEUP ; Der Anwender klickte oberhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $pos - $Page)

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

    Case $SB_PAGEDOWN ; Der Anwender klickte unterhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $pos + $Page)

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

    Case $SB_THUMBTRACK ; Der Anwender zog den Scrollbalken
    DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
    EndSwitch

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

    ;~ // Setzt die neue Position und ermittelt sie danach erneut.
    ;~ // Abhängig von den Windows-Einstellungen kann es sein, dass die gelesenen Werte nicht die gleichen sind, wie die vorher gesetzten.

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

    DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    ; // Falls sich die y-Position der Scrollbar geändert hat, den Fensterbereich verschieben und aktualisieren
    $pos = DllStructGetData($tSCROLLINFO, "nPos")
    If ($pos <> $yPos) Then
    _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $pos))
    $yPos = $pos
    EndIf

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

    Return $GUI_RUNDEFMSG

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

    EndFunc ;==>WM_VSCROLL

    [/autoit]

    Schau nicht nach dem Code. Ist der erste Gedanke. Verbessert wird noch, wenn´s funktioniert. Mit dem Bild hast recht, war noch von vorher über geblieben.

  • Bilder-Galerie

    • MrB
    • 25. Mai 2010 um 18:46

    Fehlermeldung wäre nicht schlecht :)

    name22

    Hab schon soweit das alle Bilder erstellt werden, nur hab ich das Problem, dass alle Bilder die nicht im sichtbaren Bereich sind auch nicht gezeichnet werden. Scrolle ich dahin sind auch alle anderen weg

    Hier mal das Script so wie ichs im Moment hab:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <FileEx.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiScrollBars.au3>
    #include <ScrollBarConstants.au3>
    #include <WindowsConstants.au3>

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

    $msg = MsgBox(4, "", "Möchtest du die Galerie jetzt erstellen ?")

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

    If $msg = 6 Then
    #region ### START Koda GUI section ### Form=
    $MainForm = GUICreate("Status", 1024, 768, Default, Default)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    _GUIScrollBars_Init($MainForm)
    _GUIScrollBars_ShowScrollBar($MainForm, $SB_VERT, $ESB_DISABLE_BOTH)

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

    galerie()

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

    GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")

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

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

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

    EndIf

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

    Func galerie()

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

    Local $aPics = _FileListTreeToArray(@ScriptDir & "\Pflanzen DB\pics\")
    Local $left = 16
    Local $top = 38
    Local $Width = 185
    Local $Height = 185
    Local $nr = 0
    Local $count = 0
    Local $top_label = 223
    Local $height_label = 17
    Local $scrollbar_height = 0
    Dim $aPics_Viewer[UBound($aPics)]

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

    _deleteBlanks($aPics)

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

    For $i = 1 To UBound($aPics) - 1

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

    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile($aPics[$i])
    $x = _GDIPlus_ImageGetWidth($hImage)
    $y = _GDIPlus_ImageGetHeight($hImage)
    _GDIPlus_ImageDispose($hImage)

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

    $format = $x / $y

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

    If $format > 1 Then ;breiter wie hoch
    Do
    $x = $x - (10 * $format)
    $y = $y - 10
    ;~ ToolTip("Breite: " & $x & " Höhe: " & $y)
    Until $x < 185; Or $y < 185
    EndIf

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

    If $format < 1 Then ; höher wie breit
    Do
    $x = $x - (10 * $format)
    $y = $y - 10
    ;~ ToolTip("Höhe: " & $y & " Breite: " & $x)
    Until $y < 185; Or $x < 185
    EndIf

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

    $hBitmap = _GDIPlus_BitmapCreateFromFile($aPics[$i])
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($MainForm)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $left, $top,$x,$y)

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

    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    ;~ GUICtrlCreatePic($aPics[$i], $left, $top, $x, $y)
    $pfad = StringSplit($aPics[$i], "\")
    $aPics_Viewer[$i] = $aPics[$i]

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

    $left = $left + 193
    $nr = $nr + 1
    $count = $count + 1

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

    If $nr = 5 Then
    $top = $top + 223
    $top_label = $top_label + 223
    $left = 16
    $scrollbar_height = $scrollbar_height + 240

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

    $nr = 0

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

    If $scrollbar_height > 769 Then
    $vert = _GUIScrollBars_GetScrollRange($MainForm, $SB_VERT)
    _GUIScrollBars_SetScrollRange($MainForm, $SB_VERT, 0, ($vert[1] + 9.83))
    EndIf
    EndIf
    Next

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

    $nr = 0
    $left = 16
    $top_label = 223

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

    For $i = 1 To UBound($aPics) - 1
    $pfad = StringSplit($aPics[$i], "\")
    GUICtrlCreateLabel("" & $pfad[UBound($pfad) - 3] & "\" & $pfad[UBound($pfad) - 2] & "\" & $pfad[UBound($pfad) - 1], $left, $top_label, $x, $height_label)

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

    $left = $left + 200
    $nr = $nr + 1

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

    If $nr = 5 Then
    $top_label = $top_label + 223
    $left = 16
    $nr = 0
    EndIf
    Next

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

    EndFunc ;==>galerie

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

    Func _deleteBlanks(ByRef $array)
    If IsArray($array) < 1 Then Return 0

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

    $bound = UBound($array) - 1
    Local $i = 0
    Local $isZeroIndex = 0

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

    If $array[0] = $bound Then
    $isZeroIndex = 1
    $i = 1
    EndIf

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

    While $i <= $bound
    If $array[$i] = "" Or StringIsSpace($array[$i]) > 0 Or Not StringInStr($array[$i], '.') Or StringInStr($array[$i], "blau.jpg") Or StringInStr($array[$i], "platzhalter.jpg") Or StringInStr($array[$i], "background.jpg") Then
    _ArrayDelete($array, $i)
    $bound = $bound - 1
    If $isZeroIndex > 0 Then $array[0] = $array[0] - 1
    Else
    $i = $i + 1
    EndIf
    WEnd
    EndFunc ;==>_deleteBlanks

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

    Func WM_VSCROLL($hWnd, $msg, $wParam, $lParam)
    ;~ ToolTip("Handle : " & $hWnd & " Msg : " & $Msg & "wParam : " & $wParam & "lParam : " & $lParam)
    #forceref $Msg, $wParam, $lParam
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
    Local $index = -1, $yChar, $yPos
    Local $Min, $Max, $Page, $pos, $TrackPos

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

    For $x = 0 To UBound($aSB_WindowInfo) - 1
    If $aSB_WindowInfo[$x][0] = $hWnd Then
    $index = $x
    $yChar = $aSB_WindowInfo[$index][3]
    ExitLoop
    EndIf
    Next
    If $index = -1 Then Return 0

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

    ; Ermittelt alle Informationen der vertikalen Scrollbar
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)
    $Min = DllStructGetData($tSCROLLINFO, "nMin")
    $Max = DllStructGetData($tSCROLLINFO, "nMax")
    $Page = DllStructGetData($tSCROLLINFO, "nPage")
    $yPos = DllStructGetData($tSCROLLINFO, "nPos")
    $TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")
    ; Speichert die y-Position für einen späteren Vergleich
    $pos = $yPos

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

    ; Auswertung der vom System gemeldeten Scroll-Nachricht
    Switch $nScrollCode
    Case $SB_TOP ; Der Anwender klickte auf die "Pos1"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Min)

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

    Case $SB_BOTTOM ; Der Anwender klickte auf die "Ende"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Max)

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

    Case $SB_LINEUP ; Der Anwender klickte auf den oberen Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $pos - 1)

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

    Case $SB_LINEDOWN ; Der Anwender klickte auf den unteren Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $pos + 1)

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

    Case $SB_PAGEUP ; Der Anwender klickte oberhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $pos - $Page)

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

    Case $SB_PAGEDOWN ; Der Anwender klickte unterhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $pos + $Page)

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

    Case $SB_THUMBTRACK ; Der Anwender zog den Scrollbalken
    DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
    EndSwitch

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

    ;~ // Setzt die neue Position und ermittelt sie danach erneut.
    ;~ // Abhängig von den Windows-Einstellungen kann es sein, dass die gelesenen Werte nicht die gleichen sind, wie die vorher gesetzten.

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

    DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    ; // Falls sich die y-Position der Scrollbar geändert hat, den Fensterbereich verschieben und aktualisieren
    $pos = DllStructGetData($tSCROLLINFO, "nPos")
    If ($pos <> $yPos) Then
    _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $pos))
    $yPos = $pos
    EndIf

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

    Return $GUI_RUNDEFMSG

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

    EndFunc ;==>WM_VSCROLL

    [/autoit]

    Gib mal PLS einen Tip.

  • Bilder-Galerie

    • MrB
    • 25. Mai 2010 um 18:20

    Merk schon, ich muss mich selber entscheiden :) (Smilies gehen bei mir nicht mehr) Nichts kompliziertes, also werd ich´s schon rallen :)

    P.S.: Hast Recht, ist bedeutend schneller

  • Bilder-Galerie

    • MrB
    • 25. Mai 2010 um 18:10

    Scheinst dich ja damit aus zu kennen. Gib mir mal einen Richtwert, wie lange es dauert, GDi soweit zu beherrschen, dass man meine Sache lösen kann. Bezogen auf einen Normalsterblichen der nicht ganz auf den Kopf gefallen ist, nur ein bisschen. :) Hmm, funktionieren die Smilies bei euch ?

  • Bilder-Galerie

    • MrB
    • 25. Mai 2010 um 17:48

    @Ubuntu

    Prinzipiell hab ich nix dagegen. Bist du dir sicher, dass das Ganze dann Ressourcen sparender ist? Will nicht unbedingt Zeit investieren und es bringt nix oder nur wenig. Zeit ist Mangelware :)

  • Bilder-Galerie

    • MrB
    • 25. Mai 2010 um 16:54

    autoBert
    Ich zitier mich mal selber:

    Zitat

    Lange Rede kurzer Sinn, hat einer eine Idee wie man das besser lösen könnte?

    Bezieht sich auf die Optik und den Ressourcenverbrauch. Mein Laptop geht dabei schon ziemlich in die Knie.
    Zur Optik: Wie ihr wahrscheinlich bemerkt habt, werden die Bilder verzerrt dargestellt, da ich ja immer feset Maße nehme. Das stört mich. Außerdem benutze ich das in einem Tab und da hab ich noch nicht raus bekommen wie ich da ein Hintergrundbild rein bekomme.

    Cartan12

    Vielleicht hab ich ja da einen Denkfehler. Die Bilder werden ja in einer For Schleife erstellt und klar könnte ich dann sagen

    [autoit]

    $Pic1 = GUICtrlCreatePic(

    [/autoit]


    Nur woher soll ich wissen bzw. wie sage ich dem Script, dass wenn ich auf ein Bild klicke, sich auch das richtige öffnet. $Pic1 wird ja immer wieder überschrieben. Da ich aus meiner Unwissendheit heraus nur die Möglichkeit gefunden habe über GetPos() zu gehen bzw. alles in einen Array zu schreiben (den Weg habe ich nicht weiter verfolgt, da Array und ich uns nicht so mögen). Naja, also GetPos(). Ich lasse mich gerne belehren. Ist ja schließlich der Sinn der Sache.

    Im Allgemeinen ging es nie darum, dass das Script nicht läuft. Lief einwandfrei, OK bis auf den Fehler mit

    [autoit]

    Dim $aPics_Viewer[UBound($aPics) - 1] -> Dim $aPics_Viewer[UBound($aPics)]

    [/autoit]

    . hatte aber bei mir ja keine Auswirkung :)
    Ich wollte einfach Anregungen, wie man das ganze besser, schöner, schneller usw. lösen kann

    MfG
    MrB

  • Bilder-Galerie

    • MrB
    • 24. Mai 2010 um 22:29

    Jep, stimmt. Nur nicht die Lösung für mein "Problem" 8)

  • Bilder-Galerie

    • MrB
    • 24. Mai 2010 um 22:15

    Ah, OK. Weis jetzt warum es bei mir funktioniert. Habe in dem Bilder Ordner noch andere Dateien die nicht erstellt werden. Deswegen kommt es dazu das

    [autoit]

    $aPics_Viewer[$i]

    [/autoit]


    immer größer ist wie

    [autoit]

    $aPics[$i]

    [/autoit]
  • Bilder-Galerie

    • MrB
    • 24. Mai 2010 um 21:42

    Echt ?? Bei mir läuft´s einwandfrei durch. Komisch, auch wenn ich´s auf

    [autoit]


    Dim $aPics_Viewer[UBound($aPics)]

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

    läuft´s ohne Prob. Muss ich mir mal genauer anschauen

    Pommes ist nix. Krieg ich die Krätze, wenn ich die Dinger sehe. Ist halt ein Nachteil, wenn man selbstgemachte gewöhnt ist :thumbup:

  • Bilder-Galerie

    • MrB
    • 24. Mai 2010 um 21:31

    Bitte!

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Currywurst is ne Idee!

    Dateien

    FileEx.au3 5,48 kB – 299 Downloads
  • Bilder-Galerie

    • MrB
    • 24. Mai 2010 um 21:25

    Bitte schön. Funtionierendes Beispiel (ohne Vergrößern) und im Spoiler oben editiert. Die Herren sonst noch einen Wunsch ;)

    P.S.: Bilder habt ihr ja selber genug oder ? .-)

  • Bilder-Galerie

    • MrB
    • 24. Mai 2010 um 21:08

    Moin zusammen,

    Will mal eure Meinung hören. Und zwar möchte ich eine kleine Bilder-Galerie erstellen. Sind so zwischen 150-200 Bilder. Im Moment hab ich´s auf die Schnelle so gelöst:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <FileEx.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiScrollBars.au3>
    #include <ScrollBarConstants.au3>
    #include <WindowsConstants.au3>

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

    $msg = MsgBox(4, "", "Möchtest du die Galerie jetzt erstellen ?")

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

    If $msg = 6 Then
    #region ### START Koda GUI section ### Form=
    $MainForm = GUICreate("Status", 1024, 768, Default, Default)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    _GUIScrollBars_Init($MainForm)
    _GUIScrollBars_ShowScrollBar($MainForm, $SB_VERT, $ESB_DISABLE_BOTH)

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

    galerie()

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

    GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")

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

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

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

    EndIf

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

    Func galerie()

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

    Local $aPics = _FileListTreeToArray(@ScriptDir & "\pics\")
    Local $left = 16
    Local $top = 38
    Local $Width = 185
    Local $Height = 185
    Local $nr = 0
    Local $count = 0
    Local $top_label = 223
    Local $height_label = 17
    Local $scrollbar_height = 0
    Dim $aPics_Viewer[UBound($aPics) - 1]

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

    _deleteBlanks($aPics)

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

    For $i = 1 To UBound($aPics) - 1
    GUICtrlCreatePic($aPics[$i], $left, $top, $Width, $Height)
    $pfad = StringSplit($aPics[$i], "\")
    $aPics_Viewer[$i] = $aPics[$i]
    $left = $left + 193
    $nr = $nr + 1
    $count = $count + 1

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

    If $nr = 5 Then
    $top = $top + 223
    $top_label = $top_label + 223
    $left = 16
    $scrollbar_height = $scrollbar_height + 240

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

    $nr = 0

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

    If $scrollbar_height > 769 Then
    $vert = _GUIScrollBars_GetScrollRange($MainForm, $SB_VERT)
    _GUIScrollBars_SetScrollRange($MainForm, $SB_VERT, 0, ($vert[1] + 9.83))
    EndIf
    EndIf
    Next

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

    $nr = 0
    $left = 16
    $top_label = 223

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

    For $i = 1 To UBound($aPics) - 1
    $pfad = StringSplit($aPics[$i], "\")
    GUICtrlCreateLabel("" & $pfad[UBound($pfad) - 3] & "\" & $pfad[UBound($pfad) - 2] & "\" & $pfad[UBound($pfad) - 1], $left, $top_label, $Width, $height_label)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0x0066CC)

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

    $left = $left + 200
    $nr = $nr + 1

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

    If $nr = 5 Then
    $top_label = $top_label + 223
    $left = 16
    $nr = 0
    EndIf
    Next

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

    EndFunc ;==>galerie

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

    Func _deleteBlanks(ByRef $array)
    If IsArray($array) < 1 Then Return 0

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

    $bound = UBound($array) - 1
    Local $i = 0
    Local $isZeroIndex = 0

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

    If $array[0] = $bound Then
    $isZeroIndex = 1
    $i = 1
    EndIf

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

    While $i <= $bound
    If $array[$i] = "" Or StringIsSpace($array[$i]) > 0 Or Not StringInStr($array[$i], '.') Or StringInStr($array[$i], "blau.jpg") Or StringInStr($array[$i], "platzhalter.jpg") Or StringInStr($array[$i], "background.jpg") Then
    _ArrayDelete($array, $i)
    $bound = $bound - 1
    If $isZeroIndex > 0 Then $array[0] = $array[0] - 1
    Else
    $i = $i + 1
    EndIf
    WEnd
    EndFunc ;==>_deleteBlanks

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

    Func WM_VSCROLL($hWnd, $msg, $wParam, $lParam)
    ;~ ToolTip("Handle : " & $hWnd & " Msg : " & $Msg & "wParam : " & $wParam & "lParam : " & $lParam)
    #forceref $Msg, $wParam, $lParam
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
    Local $index = -1, $yChar, $yPos
    Local $Min, $Max, $Page, $pos, $TrackPos

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

    For $x = 0 To UBound($aSB_WindowInfo) - 1
    If $aSB_WindowInfo[$x][0] = $hWnd Then
    $index = $x
    $yChar = $aSB_WindowInfo[$index][3]
    ExitLoop
    EndIf
    Next
    If $index = -1 Then Return 0

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

    ; Ermittelt alle Informationen der vertikalen Scrollbar
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)
    $Min = DllStructGetData($tSCROLLINFO, "nMin")
    $Max = DllStructGetData($tSCROLLINFO, "nMax")
    $Page = DllStructGetData($tSCROLLINFO, "nPage")
    $yPos = DllStructGetData($tSCROLLINFO, "nPos")
    $TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")
    ; Speichert die y-Position für einen späteren Vergleich
    $pos = $yPos

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

    ; Auswertung der vom System gemeldeten Scroll-Nachricht
    Switch $nScrollCode
    Case $SB_TOP ; Der Anwender klickte auf die "Pos1"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Min)

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

    Case $SB_BOTTOM ; Der Anwender klickte auf die "Ende"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Max)

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

    Case $SB_LINEUP ; Der Anwender klickte auf den oberen Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $pos - 1)

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

    Case $SB_LINEDOWN ; Der Anwender klickte auf den unteren Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $pos + 1)

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

    Case $SB_PAGEUP ; Der Anwender klickte oberhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $pos - $Page)

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

    Case $SB_PAGEDOWN ; Der Anwender klickte unterhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $pos + $Page)

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

    Case $SB_THUMBTRACK ; Der Anwender zog den Scrollbalken
    DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
    EndSwitch

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

    ;~ // Setzt die neue Position und ermittelt sie danach erneut.
    ;~ // Abhängig von den Windows-Einstellungen kann es sein, dass die gelesenen Werte nicht die gleichen sind, wie die vorher gesetzten.

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

    DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    ; // Falls sich die y-Position der Scrollbar geändert hat, den Fensterbereich verschieben und aktualisieren
    $pos = DllStructGetData($tSCROLLINFO, "nPos")
    If ($pos <> $yPos) Then
    _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $pos))
    $yPos = $pos
    EndIf

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

    Return $GUI_RUNDEFMSG

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

    EndFunc ;==>WM_VSCROLL

    [/autoit]

    Schaut nicht so genau auf den Code. Muss ich nochmal drüber schauen.

    Die Sache ist die, dass das Ganze doch recht viel Ressourcen braucht und ist, naja, nicht wirklich schön. Die Bilder sollen hinterher, wenn man mit LMT drauf klickt, vergrößert dargestellt werden. Im Moment mach ich´s mit GetPos() und grenze die Ids ein. Auch nur suboptimal.

    Lange Rede kurzer Sinn, hat einer eine Idee wie man das besser lösen könnte?

  • Registry Key für Standardbrowser

    • MrB
    • 15. Mai 2010 um 20:14

    Genau daran lag es auch. Hatte vorher Run benutzt und es einfach übernommen. Wie gesagt, lesen bildet. ;)

  • Registry Key für Standardbrowser

    • MrB
    • 15. Mai 2010 um 19:06

    Cartan12

    Geb ich dir recht. Mitlerweile auf 4 Systemen getestet. 2 funktionieren und 2 nicht. Keinen blassen Schimmer warum!.

    Das lustigste ist, das ich im Moment verzweifelt den RegKey suche und absolut nichts passendes finde. Den RegKey von BurakSZ existiert bei mir nicht und ich finde einfach nichts anderes. Nur falsch rum, also Name = Pfad und Key = firefox.exe. Funktioniert ja leider so rum nicht

    P.S.: Hab´s jetzt so gelöst :

    [autoit]

    For $i= 1 to 100
    $var = RegEnumVal("HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache", $i)
    If @error <> 0 then ExitLoop
    If StringInStr($var,"firefox.exe") Then
    MsgBox(4096, "Unterschlüssel #" & $i & " unter HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache: ", $var)
    EndIf
    Next

    [/autoit]

    Wenn mir jetzt noch einer sagen kann, wie der Befel lautet um Firefox mit den folgenden Parametern zu starten : -new-window http://www.autoit.de/www.google.de Firefox in neuem Fenster mit der Website google starten) . Krieg die richtige schreibweise nicht hin.

    Hab´s im Moment so :

    [autoit]

    For $i= 1 to 100
    $var = RegEnumVal("HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache", $i)
    If @error <> 0 then ExitLoop
    If StringInStr($var,"firefox.exe") Then
    $path = $var
    ExitLoop
    EndIf
    Next
    ShellExecute($path & " -new -window " & GUICtrlRead($Button6_links))

    [/autoit]

    Pfad ist richtig nur die schreibweise mit den Parametern halt nicht

    Man sollte sich auch alles durchlesen:

    [autoit]

    ShellExecute($path," -new -window " & GUICtrlRead($Button6_links))

    [/autoit]

    So funktioniert es und ich weis wofür Parameter da ist. :cursing: :D

  • TabItem Ereignis

    • MrB
    • 15. Mai 2010 um 12:27

    Und wahrscheinlich habe ich´s sogar in der Hilfe überlesen. Danke !!!!

    Schon klar mit GuiCtrlRead, nur hab ich´s immer auf´s TabItem gemacht und nie aufs Tab selber

  • Registry Key für Standardbrowser

    • MrB
    • 15. Mai 2010 um 12:08

    Kannste mir auch noch einen Tip geben wie und wo. Hab mich mit der Registrierung noch nie beschäftigt.

    Zitat

    ShellExecute("firefox.exe")

    Funktioniert bei mir auf XP definitiv nicht. Grad nochmal getestet

  • TabItem Ereignis

    • MrB
    • 15. Mai 2010 um 12:07

    Suche schon eine ganze Weile nach einer Möglichkeit rauszufinden welches TabItem gerade aktiviert ist und finde nix. Wahrscheinlich wieder recht einfach, nur nicht für mich.

    [autoit]

    GUIGetMsg()

    [/autoit]

    gibt ja nix zurück. Denke mal da die Tabs ja keine AutoIt Controls sind, oder?

    Gibt´s da was ?

  • Registry Key für Standardbrowser

    • MrB
    • 15. Mai 2010 um 12:02

    Sry, grab den Thread nochmal aus, da ich das selbe Problem habe. ShellExecute funtioniert unter Win7 Ultimate problemlos, aber unter WinXp Prof nicht.

    [autoit]

    ShellExecute(GUICtrlRead($Button5_links))

    [/autoit]


    geht nicht unter WinXP

    Würde gerne irgendwie so aufrufen:

    [autoit]

    ShellExecute("firefox.exe -new-window " & GUICtrlRead($Button5_links))

    [/autoit]

    Firefox wird natürlich nicht gefunden. Hat dazu einer eine Idee. Mir fällt nix ein.

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™