MultiClipBoard ist ein Programm von mir, das ich aus 2 einfachen Gründen geschrieben und Entwickelt habe.
#1 ) Ich wurde von einen User drum gebeten.
#2 ) Hatte ich soetwas noch nie im Internet gessehen.
Eine kleine beschreibung des Programms :
Mit Multiclipboard kann man so oft "ctrl+c" drücken wie man will, man verliert aber nie seinen letzten Inhalt, und ich glaube es ist schon so ziemlich jeden hier Passiert das er irgentein Passwort oder ein Link in Clip hatte und dann, weil er mal nicht nachgedacht hat, irgenteinen anderen text Kopiert hat
Mit dem kleinen Programm kann man ganz simpel auswählen, welchen seiner letzten "Clips" man auswählen möchte und das beliebig oft =)
Ich hoffe ihr schau mal rein und gebt mir ein kleines Feedback =)
Ich hoffe ich habe es im richtigen Bereich gepostet :S
SourceCode :
Code:
#include <GuiConstants.au3>
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1); Default tray menu items (Script Paused/Exit) will not be shown.
Opt("MustDeclareVars", 1)
Global Const $WM_DRAWCLIPBOARD = 0x0308
Global Const $WM_CHANGECBCHAIN = 0x030D
Global $origHWND, $Clips = 0, $NewMenu[100], $NewMenuArray[100]
Global $item, $emptyitem1, $emptyitem2, $aboutitem, $cleanup, $emptyitem3, $exititem, $iInStr = 0
_Main()
Func _Main()
Local $msg = "", $gui, $iScan
$gui = GUICreate("Clip Hook", 400, 400, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU));used to hook clipboard events only
; remember last clip viewer in queue and set our GUI as first in queue
$origHWND = DllCall("user32.dll", "hwnd", "SetClipboardViewer", "hwnd", $gui)
$origHWND = $origHWND[0]
GUIRegisterMsg($WM_DRAWCLIPBOARD, "OnClipBoardChange")
GUIRegisterMsg($WM_CHANGECBCHAIN, "OnClipBoardViewerChange")
$item = TrayCreateItem("-MultiClipBoard v1-")
$emptyitem1 = TrayCreateItem("")
$emptyitem2 = TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
$cleanup = TrayCreateItem("CleanUP")
$emptyitem3 = TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = $aboutitem
MsgBox(64, "about:", "MultiClipBoard v1 - By Busti." & @CRLF & "Simply Click ctrl+c to add smt.")
Case $msg = $exititem
ExitLoop
Case $msg = $cleanup
_CleanUp()
Case $Clips > 0
For $iScan = 1 To $Clips
If $msg = $NewMenu[$iScan] Then ClipPut($NewMenuArray[$iScan])
Next
EndSelect
WEnd
; send notification that we no longer will be in clipboard hook queue
DllCall("user32.dll", "int", "ChangeClipboardChain", "hwnd", $gui, "hwnd", $origHWND)
EndFunc;==>_Main
Func OnClipBoardChange($hWnd, $msg, $wParam, $lParam)
Local $iDel, $iCreate
; do what you need when clipboard changes
$iInStr=0
For $iCheck = 1 To $Clips
If ClipGet() == $NewMenuArray[$iCheck] Then
$iInStr = 1
ExitLoop
EndIf
Next
If Not $iInStr Then
TrayItemDelete($exititem)
TrayItemDelete($emptyitem3)
TrayItemDelete($cleanup)
TrayItemDelete($aboutitem)
TrayItemDelete($emptyitem2)
For $iDel = $Clips To 1 Step - 1
TrayItemDelete($NewMenu[$iDel])
Next
TrayItemDelete($emptyitem1)
TrayItemDelete($item)
$item = TrayCreateItem("-MultiClipBoard v1-")
$emptyitem1 = TrayCreateItem("")
$Clips += 1
$NewMenuArray[$Clips] = ClipGet()
For $iCreate = 1 To $Clips
$NewMenu[$iCreate] = TrayCreateItem("#"&$iCreate &") "&StringLeft($NewMenuArray[$iCreate], 15) & " ...")
Next
$emptyitem2 = TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
$cleanup = TrayCreateItem("CleanUP")
$emptyitem3 = TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
EndIf
; send notification about clipboard change to next clipviewer
DllCall("user32.dll", "int", "SendMessage", "hWnd", $origHWND, "int", $WM_DRAWCLIPBOARD, "int", $wParam, "int", $lParam)
EndFunc;==>OnClipBoardChange
Func OnClipBoardViewerChange($hWnd, $msg, $wParam, $lParam)
; if our remembered previous clipviewer is removed then we must remember new next clipviewer
; else send notification about clipviewr change to next clipviewer
If $wParam = $origHWND Then
$origHWND = $lParam
Else
DllCall("user32.dll", "int", "SendMessage", "hWnd", $origHWND, "int", $WM_CHANGECBCHAIN, "hwnd", $wParam, "hwnd", $lParam)
EndIf
EndFunc;==>OnClipBoardViewerChange
Func _CleanUp()
Local $iDel
TrayItemDelete($exititem)
TrayItemDelete($emptyitem3)
TrayItemDelete($cleanup)
TrayItemDelete($aboutitem)
TrayItemDelete($emptyitem2)
For $iDel = $Clips - 1 To 1 Step - 1
TrayItemDelete($NewMenu[$iDel])
Next
TrayItemDelete($emptyitem1)
TrayItemDelete($item)
$item = TrayCreateItem("-MultiClipBoard v1-")
$emptyitem1 = TrayCreateItem("")
$emptyitem2 = TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
$cleanup = TrayCreateItem("CleanUP")
$emptyitem3 = TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
$Clips = 0
TraySetState()
EndFunc;==>_CleanUp
Download :






