-[comment {winsend.man - Copyright (C) 2002 Pat Thoyts <Pat.Thoyts@bigfoot.com>}]
+[manpage_begin winsend n 0.6]
+[copyright {2002 Pat Thoyts <patthoyts@users.sourceforge.net>}]
[comment {$Id$}]
-[manpage_begin winsend n 0.5]
[moddesc {winsend}]
[titledesc {send implementation for windows platform}]
[require Tcl 8.3]
-[require winsend [opt 0.4]]
+[require winsend [opt 0.6]]
[description]
[para]
[para]
[example {
% package require winsend
-0.5
+0.6
% winsend appname MyApp
MyApp
% winsend send MyApp info tcl
[example {
An example (from tkcon): from a concurrent tclsh:
% package require winsend | % package require winsend
- 0.5 | 0.5
+ 0.6 | 0.6
% winsend interps | % winsend interps
tkcon.tcl | tkcon.tcl TCLSH.EXE
| % winsend send tkcon.tcl set x 1
[section {DOWNLOAD and INSTALLATION}]
The latest version is available at
-[uri {http://prdownloads.sourceforge.net/tclsoap/winsend-0.5.zip}]
+[uri {http://prdownloads.sourceforge.net/tclsoap/winsend-0.6.zip}]
This includes the source and the DLLs. To install, copy the DLLs and
the [file pkgIndex.tcl] file to a subdirectory of your [var auto_path]
-variable. For instance, to [file {c:/Program Files/Tcl/lib/winsend05/}]
+variable. For instance, to [file {c:/Program Files/Tcl/lib/winsend06/}]
[para]
--- /dev/null
+'\"
+'\" Generated from file 'winsend.man' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) 2002 Pat Thoyts <patthoyts@users.sourceforge.net>
+'\"
+.so man.macros
+.TH "winsend" n 0.6 "winsend"
+.BS
+.SH "NAME"
+winsend \- send implementation for windows platform
+'\" $Id$
+.SH "SYNOPSIS"
+package require \fBTcl 8.3\fR
+.sp
+package require \fBwinsend ?0.6?\fR
+.sp
+\fBwinsend\fR \fIcommand\fR ?\fIarguments ...\fR?\fR
+.sp
+.BE
+.SH "DESCRIPTION"
+.PP
+The \fBwinsend\fR package is an attempt to provide the complete
+functionality of the Tk \fBsend\fR command using the Microsoft Windows
+platform. The two key points are inter-process communications between
+one interpreter and another, and automatic registration of
+interpreters with a central source. With the Tk \fBsend\fR command this is
+done via the X Windows server. The \fBwinfo interps\fR command returns
+a list of registered interpreters and the \fBsend\fR command allows
+you to execute Tcl commands in the named interpreter. Finally \fBtk
+appname\fR allows the programmer to select the registration name.
+.PP
+There are alternative methods for providing remote command xecution on
+the windows platform. The \fBcomm\fR package that is now part of
+\fBtcllib\fR provides cross-platform remote command execution by the
+use of TCP sockets. The disadvantage of this package is the lack of
+interpreter registration. Potential clients need to be told of the
+port number to use to communicate with the server application.
+.PP
+The other method is the \fBdde\fR package which is supplied as part of
+the Tcl core. This provides automatic registration and the available
+interpreters can be listed by excuting
+\fBdde servers TclEval {}\fR. The disadvantage if the DDE system
+is that a badly written
+windows application can hang your application. DDE uses windows
+messages to do its work. If an application isn't processing it's
+message queue then the dde command given above will never complete.
+.PP
+An alternative is available using Microsoft's COM technology. COM is
+designed to permit interprocess communication through the use of
+interfaces. There is also a system provided registration object where
+a reference to a running interpreter can be lodged. Querying the list
+of available servers only communicates with the Running Object Table
+(the ROT) and doesn't need to send messages to any
+applications. Sending commands does require the server interpreter to
+be processing events - but if the server is not processing these
+events then the command will time out. This is a significant advantage
+over DDE. Also, because we are using standard OLE automation
+interfaces it becomes possible for any other Automation capable
+application to send commands to Tcl for execution. Such applications
+include Microsoft Office applications, Internet Explorer and many
+others. For instance the following VB script can be run using the
+Windows Scripting Host cscript application using
+\fBcscript test.vbs\fR
+.nf
+ Set interp = GetObject("\\.\TclInterp\tkcon.tcl")
+ interp.Send "puts {Hello from VB Script}"
+ WScript.Echo interp.Send("info tcl").fi
+
+Provided you have an instance of Tcl running registered with
+\fBwinsend appname tkcon.tcl\fR you should see the message appear in
+the Tcl window and the Tcl version should be printed to the cscript
+console window.
+
+'\" ----------------------------------------------------------
+
+.SH "COMMANDS"
+
+
+
+
+.TP
+\fBwinsend\fR \fIcommand\fR ?\fIarguments ...\fR?\fR
+
+
+.RS
+
+.TP
+\fBinterps\fR
+ Get the list of registered interpreter names for use with
+send. Similar to the Tk \fBwinfo interps\fR command.
+
+
+.TP
+\fBappname\fR ?\fIname\fR?
+ When called with no arguments this returns the registered name of
+this interpreter. If a single argument is given, this is used to
+re-register the application using the new name. If the registration
+fails for some reason, such as the name is already in use, then an
+error is returned and the old appname remains in use.
+
+
+.TP
+\fBsend\fR \fIappname\fR \fIcmd\fR ?\fIarg arg ...\fR?
+ As for the Tk \fBsend\fR command this concatenates \fIcmd\fR and
+all \fIargs\fR and passes the resulting string to the \fIappname\fR
+interpreter for evaluation. It returns the result or error from this
+command evaluation.
+
+
+.RE
+
+
+
+'\" ----------------------------------------------------------
+
+.SH "EXAMPLES"
+
+
+.PP
+
+
+.nf
+% package require winsend
+0.6
+% winsend appname MyApp
+MyApp
+% winsend send MyApp info tcl
+8.3
+.fi
+.PP
+An example session between two interpreters
+.nf
+An example (from tkcon): from a concurrent tclsh:
+ % package require winsend | % package require winsend
+ 0.6 | 0.6
+ % winsend interps | % winsend interps
+ tkcon.tcl | tkcon.tcl TCLSH.EXE
+ | % winsend send tkcon.tcl set x 1
+ | 1
+ % set x |
+ 1 |
+ % winsend send TCLSH.EXE set y 2
+ | % after 2000 {set zx 1} ; vwait zx
+ 2 | % set y
+ | 2
+ | % exit
+ % winsend interps |
+ tkcon.tcl |
+.fi
+'\" ----------------------------------------------------------
+.SH "DOWNLOAD and INSTALLATION"
+The latest version is available at
+\fIhttp://prdownloads.sourceforge.net/tclsoap/winsend-0.6.zip\fR
+This includes the source and the DLLs. To install, copy the DLLs and
+the "\fIpkgIndex.tcl\fR" file to a subdirectory of your \fBauto_path\fR
+variable. For instance, to "\fIc:/Program Files/Tcl/lib/winsend06/\fR"
+.PP
+Documentation is located at
+\fIhttp://tclsoap.sourceforge.net/winsend.html\fR
+'\" ----------------------------------------------------------
+.SH "SEE ALSO"
+send(n), winfo(n), tk(n)
+'\" ----------------------------------------------------------
+.SH "AUTHORS"
+Pat Thoyts
+'\" ----------------------------------------------------------
+.SH "KEYWORDS"
+send, appname, tk, winfo, COM, Automation
+.SH "COPYRIGHT"
+.nf
+Copyright (c) 2002 Pat Thoyts <patthoyts@users.sourceforge.net>
+.fi
\ No newline at end of file