Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 17:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Tool] MultiClipBoard

Discussion on [Tool] MultiClipBoard within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2006
Posts: 103
Received Thanks: 5
Hi all !

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

&#59; 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

&#59; 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
&#59; 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
&#59; 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)
&#59; if our remembered previous clipviewer is removed then we must remember new next clipviewer
&#59; 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 ) :



Download :
Attached Files
File Type: ibf post-136-1162549081.ibf (187.2 KB, 7 views)
Busti is offline  
Old 11/03/2006, 12:29   #2
 
elite*gold: 0
Join Date: Aug 2005
Posts: 443
Received Thanks: 72
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.
neji is offline  
Old 11/03/2006, 12:36   #3
 
elite*gold: 0
Join Date: Apr 2006
Posts: 103
Received Thanks: 5
Quote:
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.
Busti is offline  
Old 11/03/2006, 13:20   #4
 
elite*gold: 0
Join Date: Aug 2004
Posts: 1,325
Received Thanks: 109
wer haut sich denn gigabyte grosse dateien in den zwischenspeicher?^^
NoName is offline  
Old 11/03/2006, 15:12   #5
 
elite*gold: 0
Join Date: Aug 2005
Posts: 443
Received Thanks: 72
Quote:
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
neji is offline  
Old 11/04/2006, 00:13   #6
 
elite*gold: 0
Join Date: Mar 2006
Posts: 111
Received Thanks: 0
Quote:
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.
SilonVier is offline  
Old 11/04/2006, 23:54   #7
 
elite*gold: 0
Join Date: Apr 2006
Posts: 103
Received Thanks: 5
Gibts sonst noch Feedback & oder Vorschläge ?
Busti is offline  
Reply


Similar Threads Similar Threads
[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



All times are GMT +1. The time now is 17:35.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.