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
Hier noch ein Screen(habe schnell die Namen von irgendwelchen Datein kopiert ) :
Das funktioniert dann aber auch nur mit Texten oder?
Wenn ich eine Datei mit ctrl + c hinzufüge, dann einen Text, mir die Datei wieder "zurückhole" dann kann ich sie mit ctrl + v nicht wieder einfügen.
Demnach funktioniert das ganze zur mit Texten oder?
Bzw speichert er bei Dateien nur den Dateinamen im Clipboard.
Wäre schon wenn das auch mit Dateien, Bildern etc ginge
Außerdem fände ich es persönlich besser, wenn ich nicht den Text im kontextmenü auswählen und dann mit ctrl+v einfügen müsste, sondern dass er mir das schon automatisch einfügt.
Originally posted by neji@Nov 3 2006, 12:29
Wenn ich eine Datei mit ctrl + c hinzufüge, dann einen Text, mir die Datei wieder "zurückhole" dann kann ich sie mit ctrl + v nicht wieder einfügen.
Demnach funktioniert das ganze zur mit Texten oder?
Bzw speichert er bei Dateien nur den Dateinamen im Clipboard.
Wäre schon wenn das auch mit Dateien, Bildern etc ginge
Außerdem fände ich es persönlich besser, wenn ich nicht den Text im kontextmenü auswählen und dann mit ctrl+v einfügen müsste, sondern dass er mir das schon automatisch einfügt.
Quote:
Das funktioniert dann aber auch nur mit Texten oder?
Ja, da ich nicht wüsste wie ich es anders machen sollte, ausser einen buffer erstellen, aber wenn ihr dann mehrere gb große datein im Clip Speichert...nadann viel spaß .
Quote:
Demnach funktioniert das ganze zur mit Texten oder?
Bzw speichert er bei Dateien nur den Dateinamen im Clipboard.
Ja, nur mit Texten, er speichert keine namen, ich habe name editiert und ctrl+c gedrückt .
Quote:
Wäre schon wenn das auch mit Dateien, Bildern etc ginge
Ich müsste schaun wie ich das dann mit dem buffer mache...
-> Fileauslesen
-> Das ausgelesene in einer variable speichern
-> sollte es ausgewählt werden...hmm
-> argh -.-
Quote:
Außerdem fände ich es persönlich besser, wenn ich nicht den Text im kontextmenü auswählen und dann mit ctrl+v einfügen müsste, sondern dass er mir das schon automatisch einfügt.
Aber dein Main Programm verliert dann den Fokus wenn du in die trayliste hinklickst, daher weiss das Programm ja nicht wo er es hinsenden soll.
Aber dein Main Programm verliert dann den Fokus wenn du in die trayliste hinklickst, daher weiss das Programm ja nicht wo er es hinsenden soll.
dann bau doch nen Shortcut ein, der das kontextmenü direkt bei der Maus öffnet und dann eben ctrl+v simuliert
für Dateien : du könntest einfach eine Funktion schreiben, die erkennt, ob im Clipboard ein Dateipfad steht, wenn ja dann lädst du diese Datei beim abrufen direkt ins Clipboard. So hast du auch nicht mehrere Dateien gleichzeitig im speicher
Originally posted by coder62@Nov 3 2006, 13:20 wer haut sich denn gigabyte grosse dateien in den zwischenspeicher?^^
Wieso läd ASP.NET mit 1GB Arbeitsspeicher beim Upload eines 2GB Files alles erst in den Arbeitsspeicher obwohl man "nur" die ersten 4KB auslesen möchte? - das sind beides Fragen, wo jede Antwort unbefriedigend wäre.
[TOOL] Silkroad Online Tool!!! Auto Login + Patcher + Script !!! 09/28/2011 - SRO PServer Guides & Releases - 22 Replies Hello members!
If you remember i make SRO AutoLogin in minimalized window!
This is mine second script:
Process Pather by lolkop edit by me + mine autologin!
This is fastes and stable than Process Pather,
Silkroad Online tool is very easy only 1 click to patch!
http://img690.imageshack.us/img690/4966/silktool. png