Terminology:
Source Netpaste - where the copy is taking place (on PC A)
Destination Netpaste
- where the paste is taking place (on PC B)
Keyboard Hook Layer
The NetPaste process
hooks
into the system keyboard events, it is activated when the special
keyboard
combination events are pressed by the user, it does
not matter from which application the user has pressed the keys. there
are 3
types of events:
Ctrl-Alt-Shift-C - for copy
Ctrl-Alt-Shift-V - for paste
Ctrl-Alt-Shift-Q - for quiting Netpaste
When the user
press to copy, he already press the Ctrl C, which means that
if the underlying application supports it the data is placed into the
clipboard, the assumption is that Ctrl C is ubiquitous in editing
programs. collecting the
data via selection from the windowing level brings a lot of complicated
issues
that we bypass by this approach.
When the user press the paste combination he is activating the
pasting
process that at the end will place the data to be pasted into the
clipboard,
this is done at the destination Netpaste.
Communication layer
where the
keyboard layer interacts with the system
keyboard events, the communication take place to broadcast the specific
event
between the source netpaste and the destination/s netpaste.
Broadcast
Upon Copy
event - sends a UDP multicast
on port 1500 to the LAN, the netpaste packet contains header
information
regarding the event type and source pc, this registers the source
Netpaste in
every Netpaste on the Lan as a ready to copy from (paste) Netpaste.
Paste
Upon paste event - the user chooses the source Netpaste, the netpaste
initiates a paste protocol - based on UDP:
Destination (send paste event) -> Source
Source (sends copy data from source clipboard) -> Destination
The paste level routine then forwards the data to the handling Netpaste
that
place it in the clipboard, and consequentially into the destination
application
display mechanisms.
|
For your
convenience the sources are packaged under a
dot Net solution, even though it's uses only windowing and C++ Lang and
does
not use any new features of the .NET. unpackaged you will find
under
/netclip folder a DNET_IDE_ENV.BAT file, edit it for your path and
start it. it
will open the folder.
There are 5
subprojects –
KBHook -
handling dll code for the keyboard system hook, and event
notification.
NetClip -main application code and dialogs
NetClipBasicLib - netclip interfaces for keyboard
events, network
protocol and clipboard interaction
NetClipWin32Lib - win32 override interface,
implementation of basic
library.
Packages - namespaces and global functions &
utilities.
|