Show All Projects
When you copy text you know you will be able to past it in any other program that has a text field. But what about other formats? When you copy something more complex, sometimes it isn't clear whether it will paste as a simple text, a visual representation, or not work at all.

This utility monitors the data types of the contents of the Windows clipboard When the clipboard contents change, it displays all of the formats in which the current data can be interpreted. If the data can be interpreted as "Text", the text content is also displayed. This is primarily useful to a programmer who wants to see formats in which other programs make data available. Source is included and this could easily be extended to monitor a particular type of interest.

I initially made this to investigate a problem with how KTM 5.0 Document Review used the clipboard. The Doc Review version included below only works in KTM 5.0 before Patch 4, after which the issue was fixed by implementing an "internal clipboard" as an alternative to actually using the Windows clipboard.

Update: I've since discovered NirSoft's InsideClipboard tool, which is similar but nicer. And also DropExplorer which has a lot more functionality and includes source.

Timeline

Files

Screenshots

Example output of the program after copying 1. Text 2. A Powerpoint slide and 3. A selection in MSPaint.
  BENCHMARKS  
Loading Time: Base Classes  0.0015
Controller Execution Time ( Project / Id )  0.1438
Total Execution Time  0.1471
  GET DATA  
No GET data exists
  MEMORY USAGE  
982,552 bytes
  POST DATA  
No POST data exists
  URI STRING  
project/id/68/Clipboard_Monitor
  CLASS/METHOD  
project/id
  DATABASE:  smkprojects (Project:$db)   QUERIES: 5 (0.0863 seconds)  (Hide)
0.0379   SELECT *
FROM `ProjectResources`
WHERE `ProjectID` = '68' 
0.0268   SELECT *
FROM `Projects`
WHERE `ProjectID` = '68' 
0.0197   SELECT *
FROM `ProjectTags`
WHERE `ProjectID` = '68' 
0.0010   SELECT TagCOUNT(1) AS cnt
FROM 
`ProjectTags`
WHERE `Tag` != 'Private'
GROUP BY `Tag`
HAVING COUNT(1) >
0.0009   SELECT TagCOUNT(1) AS cnt
FROM 
`ProjectTags`
WHERE `Tag` != 'Private'
GROUP BY `Tag`
HAVING COUNT(1) > 
  HTTP HEADERS  (Show)
  CONFIG VARIABLES  (Show)