Setting the Clipboard

From IronPython Cookbook

Revision as of 20:28, 31 May 2007 by MichaelFoord (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)

Inspired by a blog entry from The Powershell Guy.

The clipboard can only be set from an STA thread. Powershell runs as an MTA. The following code uses the System.Windows.Forms.Clipboard class from a thread launched as an STA.

import clr
import System
from System.Threading import Thread, ThreadStart
clr.AddReference("System.Windows.Forms")

def SetText(text):
    def thread_proc():
        System.Windows.Forms.Clipboard.SetText(text)

    t = Thread(ThreadStart(thread_proc))
    t.ApartmentState = System.Threading.ApartmentState.STA
    t.Start()


You can then import SetText, and call SetText('Some text') to put text on the clipboard.

TOOLBOX
LANGUAGES