Version 38 of Microsoft Windows

Updated 2015-05-04 04:19:02 by APN

Microsoft Microsoft Windows , also known simply as Windows, is a proprietary operating system.

See Also

dde
COM
the Component Object Model
embedded
TWAPI
provides direct high-level access to Win32 API's
Task Dialog
exe
resolver
storage
tkvideo
How to compile Tcl and related C extensions on Windows
Services under Microsoft Windows NT

Description

Windows has evolved over the years, and its feature set has changed dramatically. This Wiki has a fair amount of information on the subject of Microsoft Windows and Tcl and Microsoft Windows and Tk.

RS: Interfacing to Windows/CE, renamed PocketPC, is something of a special case - but great fun! APN Both have been obsolete for a decade or more as of 2015.

Versions

Major versions of Windows include:

Windows 95
Windows 98
Windows Vista
Windows Aero
Windows Mobile 2003
Windows CE/Windows/CE
Windows ME
Windows NT
Windows 2000
Windows 2003
Windows 7
Windows 8

Tcl 8.6 requires Windows XP or later. Use 8.4/8.5 for earlier releases.

Other Windows API Implementations

Microsoft is no longer the only provider of the platforms implementing the Windows API: just by far the most dominant. There's also Wine (providing support for Windows apps on platforms like Linux, FreeBSD and BeOS) and ReactOS (providing an alternative Windows compatible operating system).

peterc 2008-06-13: getWindowsAPIVendor is a small but handy proc for detecting which win32 code base your app is really running on: Wine, ReactOS or Microsoft Windows. This can be used for tuning your app or informing the user of support/non-support.

Tcl/Tk Programs

Various Tcl/Tk programs provide Windows-specific functionality

Windows Inspection Tool Set
a GUI program that provides various views of Windows components
Word reaper
to extract the plain text from a word document via DDE.

UNC name from Drive Letter

RS 2005-09-21:

This windows-specific procedure parses the output of net use and returns the remote name as a forward-slashed UNC path, or {} if something went wrong:

proc net_use drive {
  if ![catch {exec net use $drive} res] {
     foreach line [split $res \n] {
        if {[set pos [string first \\ $line]]>0} {
            return [file norm [string range $line $pos end]]
        }
     }
  }
}
% net_use h:
//kstbf05/SuchRich$

Windows and Unix

cygwin
unxutils
outdated

What's Wrong with Windows

heavy processes
On other operating systems, creating new processes is inexpensive, but on windows there's so much overhead to process creation that it's avoided, and threads are used instead, even where shared process space is undesirable.