Zwischenablage?

  • Aus ihrgendeinem Grund will folgender code nicht funktionieren


    Case $KopierenAll
    If GUICtrlGetState($Tab1)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit1, 1)
    ClipPut( $saveall )
    ElseIf GUICtrlGetState($Tab2)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit2, 1)
    ClipPut( $saveall )
    ElseIf GUICtrlGetState($Tab3)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit3, 1)
    ClipPut( $saveall )
    ElseIf GUICtrlGetState($Tab4)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit4, 1)
    ClipPut( $saveall )
    EndIf
    (keine [autoit] box weil er dann alles in eine reihe macht o.O)


    Der Text will sich einfach nicht in die Zwischenablage kopieren >__>

  • vllt ma #requiedadmin an den anfang machen ?!

    Mehr Fehler- Quellen kanns da eig. nich geben ! Poste doch mal das gesamte Script


    Edit: Warum sollte er alles in eine Reihe machen :D :

    [autoit]

    Case $KopierenAll
    If GUICtrlGetState($Tab1)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit1, 1)
    ClipPut( $saveall )
    ElseIf GUICtrlGetState($Tab2)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit2, 1)
    ClipPut( $saveall )
    ElseIf GUICtrlGetState($Tab3)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit3, 1)
    ClipPut( $saveall )
    ElseIf GUICtrlGetState($Tab4)=$GUI_SHOW Then
    $saveall = GUICtrlRead($Edit4, 1)
    ClipPut( $saveall )
    EndIf

    [/autoit]
  • Mit "#requiedadmin" hab ichs getestet, ändert nichts ;)

    Zu der sache mit dem script:
    bei mir sieht das in autoit codes jedes mal so aus:

    [autoit]

    Case $KopierenAllIf GUICtrlGetState($Tab1)=$GUI_SHOW Then$saveall = GUICtrlRead($Edit1, 1)ClipPut( $saveall )ElseIf GUICtrlGetState($Tab2)=$GUI_SHOW Then$saveall = GUICtrlRead($Edit2, 1)ClipPut( $saveall )ElseIf GUICtrlGetState($Tab3)=$GUI_SHOW Then$saveall = GUICtrlRead($Edit3, 1)ClipPut( $saveall )ElseIf GUICtrlGetState($Tab4)=$GUI_SHOW Then$saveall = GUICtrlRead($Edit4, 1)ClipPut( $saveall )EndIf

    [/autoit]
  • das mit $GUI_SHOW funktioniert mit guictrlgetstate nicht, das geht nur zum aktiv setzen eines tabs... schau dir mal das beispiel hier aus der hilfe an zu

    [autoit]


    _GUICtrlTab_GetItemState($hWnd, $iIndex)

    [/autoit]

    um funktionen aus dieser UDF zu verwenden brauchst du noch die

    [autoit]


    #include <GuiTab.au3>

    [/autoit]

    ist im standard enthalten

    [autoit]


    #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GuiConstantsEx.au3>
    #include <GuiTab.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_TAB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hTab

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

    ; Create GUI
    GUICreate("Tab Control Get Item State", 400, 300)
    $hTab = GUICtrlCreateTab(2, 2, 396, 296, $TCS_BUTTONS)
    GUISetState()

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

    ; Add tabs
    _GUICtrlTab_InsertItem($hTab, 0, "Tab 1")
    _GUICtrlTab_InsertItem($hTab, 1, "Tab 2")
    _GUICtrlTab_InsertItem($hTab, 2, "Tab 3")

    ; Get/Set tab 2 state
    _GUICtrlTab_SetItemState($hTab, 1, $TCIS_BUTTONPRESSED)
    MsgBox(4160, "Information", "Tab 2 state: " & _ExplainItemState(_GUICtrlTab_GetItemState($hTab, 1)))

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

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

    Func _ExplainItemState($iState)
    Local $sText = ""
    If $iState = 0 Then $sText &= "No state set on this item" & @LF
    If BitAND($iState, $TCIS_BUTTONPRESSED) Then $sText &= "Button Pressed" & @LF
    If BitAND($iState, $TCIS_HIGHLIGHTED) Then $sText &= "Button Highlighted"
    Return $sText
    EndFunc ;==>_ExplainItemState

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

    damit slltest du eigentlich alles hinbekommen was du vorhast ;)

  • Also gibt es keine möglichkeit z.b. über:
    $Tab1 = GUICtrlCreateTabItem("TabName1")


    Den Tab zu erstellen und das ganze dann über:
    If $Tab1 (test ob aktiv) Then

    zu regeln?

  • [autoit]

    _GUICtrlTab_GetItemState($hWnd, $iIndex)

    [/autoit]

    damit oder damit ...

    [autoit]

    _GUICtrlTab_GetCurSel($hWnd)

    [/autoit]
  • Doch:

    Spoiler anzeigen
    [autoit]

    $GUI = GUICreate("Tab")
    $TAB = GUICtrlCreateTab(10,10,380,280)
    $Tab1 = GUICtrlCreateTabItem("Tab1")
    $Tab2 = GUICtrlCreateTabItem("Tab2")
    $Tab3 = GUICtrlCreateTabItem("Tab3")
    GUICtrlCreateTabItem("")
    $Button = GUICtrlCreateButton("Test", 20, 300, 100,30)
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $Button
    MsgBox(0, '', "Markiertes TabItem:" & @CRLF & "Index: " & GUICtrlRead($TAB) & @CRLF & "CtrlID: " & GUICtrlRead($TAB,1))
    EndSwitch
    WEnd

    [/autoit]
  • Habs eben versucht... Scite gibt mir keine Fehler aber Windows sobald ich einfügen drücke -.-

    Könnte mir jemand das kurz coden?
    Ich bin immernoch fertig vom WE :sleeping:
    Die Tabs sind:
    $Tab1, $Tab2, $Tab3 und $Tab4

    Will halt nur das er wenn ich Einfügen drücke ($Einfuegen)
    das er mir sagt welcher tab aktiv ist.

    Z.b.:
    If (Tab 1 aktiv) Then
    --Script--
    ElseIf (Tab 2 aktiv) Then
    --Script--

    ElseIf (Tab 3 aktiv) Then
    --Script--

    ElseIf (Tab 4 aktiv) Then
    --Script--
    EndIf

  • So? das hättest du doch aus meinem Code rauslesen können ;)

    [autoit]

    Switch GUICtrlRead($hTab,1) ; Tab Control
    Case $Tab1 ; TabItem
    ...
    Case $Tab2 ; TabItem
    ...
    EndSwitch

    [/autoit]
  • Danke.. ja ich bin noch nicht wirklich wach :wacko:
    Funktioniert einbandfrei~

    EInziges Problem das ich noch habe:
    Wenn ich etwas einfüge wird es immer an ende eingefügt.
    Selbst wenn der Curso mitten im Text steht =/

  • Zum Topic (damit andere die Lösung wissen):
    Mit folgendem Code gelöst.
    ====================================

    Case $Einfuegen
    Switch GUICtrlRead($UberTab,1)
    Case $Tab1
    Guictrlsetstate($Edit1, $GUI_FOCUS)
    Send( "^v" )
    Case $Tab2
    Guictrlsetstate($Edit2, $GUI_FOCUS)
    Send( "^v" )
    Case $Tab3
    Guictrlsetstate($Edit3, $GUI_FOCUS)
    Send( "^v" )
    Case $Tab4
    Guictrlsetstate($Edit4, $GUI_FOCUS)
    Send( "^v" )
    EndSwitch
    ====================================



    Frage allerdings noch:
    Wenn ich jetzt die Funktion benutze fügt er den Text immer am Ende ein, nicht
    dort wo der Mauszeiger sich gerade befinded. Jemand ne Idee?

    (Und jemand ne idee warum AutoIt Code Boxen bei mir immer so aussehen wie unten und nicht untereinander? -.-)

    [autoit]

    Case $EinfuegenSwitch GUICtrlRead($UberTab,1)Case $Tab1Guictrlsetstate($Edit1, $GUI_FOCUS)Send( "^v" )Case $Tab2Guictrlsetstate($Edit2, $GUI_FOCUS)Send( "^v" )Case $Tab3Guictrlsetstate($Edit3, $GUI_FOCUS)Send( "^v" )Case $Tab4Guictrlsetstate($Edit4, $GUI_FOCUS)Send( "^v" )EndSwitch

    [/autoit]