Link ClipGet Detektor

  • Hallo,
    Vielleicht könnt ihr mir helfen...

    Ich suche ein Skript, das Folgendes machen kann.
    Man starte das Skript, man markiere einen Text oder was auch immer
    zum Beispiel wenn ich http://.com/files/xxxxxxx/abc.xyz markiere und mit rechter Maustaste kopiere,
    soll das Skript es erkennen und gleich die Website öffnen. Ich meine das Skript soll automatisch erkennen, was für ein Link das ist.
    Oder ein anderes Beispiel. Wenn ich Madonna markiere und kopiere, soll das Skript Google öffnen und nach Madonna suchen.

    Sehr einfach wäre, wenn man einen Text im Web oder wo auch immer markiert und dann wenn man die rechte Maustaste drückt, dass ein Menü kommt wo zum Beispiel steht was man machen möchte.

    Das Menü sollte so aussehen:

    in Google suchen
    Kopieren
    als Text Speichern
    Link extrahieren
    u.s.w.
    Toll wäre es, wenn man dem Menü neue Befehle hinzufügen kann oder über .ini editieren kann

    So etwas suche ich

    Ich hoffe ihr könnt mir helfen.


    Danke :)


    Edit peethebee:
    Pass mit den Links ein bisschen auf :).

  • Ist das jetzt eine Aufforderung?
    Oder hast du schon etwas gemacht und kommst nur nicht weiter?
    Wenn nicht, dann gehört es in die Jobbörse ! ^^

  • Dann benutz die SuFu, die Hilfe und Google. Vielleicht Hilft das engl. Forum auch. Aber das hier ist kein "mach mal" Forum.

  • Ist das jetzt eine Aufforderung?
    Oder hast du schon etwas gemacht und kommst nur nicht weiter?
    Wenn nicht, dann gehört es in die Jobbörse ! ^^

    soll ich jetzt noch in Jobbörse Posten ?

  • Hallo dulap,

    das mit dem Menü - weiß nicht ob das geht.

    Was du aber auf jedenfall machen kannst ist, die Zwischenablage überwachen. Dazu brauchst du nur eine While Schleife die den Wert der Zwischenablage ausliest und den Wert mit einem gespeicherten Wert vergleicht. Ist der Wert unterschiedlich, dann kannst du darauf reagieren.

    Beispiel

    [autoit]


    Dim $Temp1, $Temp2
    ; Für 1.Durchlauf initieren
    $Temp2 = Clipget()
    $Temp1 = $Temp2

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

    While 1
    $Temp2 = Clipget()
    if $Temp1 <> $Temp2 then
    MsgBox(0,"","Wert geändert",1)
    $Temp1 = $Temp2
    else

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

    endif
    Wend

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


    Vielleicht hilft dir das ja weiter.

    Gruß

    Steffen

    • Offizieller Beitrag

    Dann mach ich mal ein wenig weiter:

    Spoiler anzeigen
    [autoit]


    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    Opt('GUIOnEventMode', 1)
    $hGui = GUICreate('Link ClipGet Detektor', 640, 480)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    $hListView = GUICtrlCreateListView('Link', 5, 5, 630, 400, $LVS_SHOWSELALWAYS)
    GUICtrlCreateButton('markierte Einträge löschen', 5, 420, 150, 25)
    GUICtrlSetOnEvent(-1, '_DeleteItems')
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')

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

    $sOld = ''
    ClipPut($sOld)
    While True
    $sClipboard = ClipGet()
    If $sClipboard <> $sOld Then
    $sOld = $sClipboard
    $aLink = StringRegExp($sClipboard, '(http://[a-zA-Z0-9_\-\+\?\.\=\|/&%$#]+)', 3)
    If IsArray($aLink) Then
    $sOldSep = Opt('GUIDataSeparatorChar', ' ')
    For $i = 0 To UBound($aLink) - 1
    GUICtrlCreateListViewItem($aLink[$i], $hListView)
    Next
    Opt('GUIDataSeparatorChar', $sOldSep)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    EndIf
    EndIf
    Sleep(100)
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    Func _DeleteItems()
    _GUICtrlListView_DeleteItemsSelected($hListView)
    EndFunc ;==>_DeleteItems

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
    $iIDFrom = DllStructGetData($tNMHDR, 'IDFrom')
    $iCode = DllStructGetData($tNMHDR, 'Code')
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    ShellExecute(_GUICtrlListView_GetItemTextString($hListView))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]


    Doppelklick auf einen Listview-Eintrag öffnet den Standard-Browser mit dem angeklickten Link.