Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Über Python auf Zwischenablage zugreifen

487 views
Skip to first unread message

Stephan Wassipaul

unread,
Oct 4, 2005, 4:18:50 PM10/4/05
to
Ich habe ein Script, dass ein paar Programme starten soll, was es auch
tut. Weil ich aber meistens bei jedem ausführen des Scripts einen
bestimmten String brauche, würde ich ihn gerne in die Zwischenablage
kopieren. Geht das und wenn ja wie?
Ich hab schon die gesamte Dokumentation durchsucht, inklusive os, sys
und sämtlichen Befehlen der MS-'bash' (ich verwende hier Windows XP
parallel zu Linux, die Pfadangaben stimmen aber sowieso nur für Windows,
portierbar muss das ganze also nicht sein)

mfg

wassi

Achim Domma (SyynX Solutions GmbH)

unread,
Oct 4, 2005, 5:23:35 PM10/4/05
to
Stephan Wassipaul wrote:

> Ich habe ein Script, dass ein paar Programme starten soll, was es auch
> tut. Weil ich aber meistens bei jedem ausführen des Scripts einen
> bestimmten String brauche, würde ich ihn gerne in die Zwischenablage
> kopieren. Geht das und wenn ja wie?

Auch wenn ich deine Anwendung nicht wirklich verstanden habe, sie mir
aber etwas fragwürdig vorkommt, ...

> Ich hab schon die gesamte Dokumentation durchsucht, inklusive os, sys
> und sämtlichen Befehlen der MS-'bash' (ich verwende hier Windows XP
> parallel zu Linux, die Pfadangaben stimmen aber sowieso nur für Windows,
> portierbar muss das ganze also nicht sein)

so brauchst du doch die win32 Extensions. Da nach OpenClipboard u.ä. suchen.

Gruß,
Achim

Claudio Grondi

unread,
Oct 4, 2005, 9:00:08 PM10/4/05
to
Hier ein wenig Quellcode zum rumexperimentieren:

Vorausgesetzt wird, dass folgende module vorhanden sind:
\Python24\Lib\site-packages\win32\win32clipboard.pyd
\Python24\Lib\site-packages\win32\lib\win32con.py

import win32clipboard, win32con
win32clipboard.OpenClipboard() # win32clipboard.OpenClipboard(0)

if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_TEXT):
# if win32clipboard.IsClipboardFormatAvailable(win32con.CF_TEXT): WORKS,
too.
clpbrdTXT = win32clipboard.GetClipboardData(win32con.CF_TEXT)
# clpbrdTXT = win32clipboard.GetClipboardData(win32clipboard.CF_TEXT)
FAILS:
# Traceback (most recent call last):
# File "HowTo_AccessWindowsClipboard.py", line xx,
# in ?
# clpbrdTXT = win32clipboard.GetClipboardData(win32con.CF_TEXT)
# pywintypes.error: (1418, 'GetClipboardData', 'Der Thread hat keine
Zwischenablage ge\xf6ffnet.')
# solution (win32con.CD_TEXT) provided 2004-10-07 in comp.lang.python by
# Michel Claveau (http://mclaveau.com, http://bergoiata.org,
http://ponx.org)
win32clipboard.CloseClipboard()
blnClipboardIsClosed = True
#:if

print
print ' Current text content of Clipboard was: '
print ' "'+clpbrdTXT+'"'

if blnClipboardIsClosed:
win32clipboard.OpenClipboard()
#:if
strNewClipboardText = "HowTo_AccessWindowsClipboard.py"
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(strNewClipboardText)
win32clipboard.CloseClipboard()
print
print ' Current text content of Clipboaard is (i.e. should be): '
print ' "'+strNewClipboardText+'"'

Claudio

"Stephan Wassipaul" <wassi...@foresightlinux.com> schrieb im Newsbeitrag
news:4342e3b9$0$4091$91ce...@newsreader01.highway.telekom.at...

Stephan Wassipaul

unread,
Oct 5, 2005, 7:48:51 AM10/5/05
to
> Auch wenn ich deine Anwendung nicht wirklich verstanden habe, sie mir
> aber etwas fragwürdig vorkommt, ...
Kann schon sein, es ist sicher nicht der klassische Anwendungszweck von
Python... ;)

Stephan Wassipaul

unread,
Oct 5, 2005, 7:49:15 AM10/5/05
to
Danke

Diez B. Roggisch

unread,
Oct 5, 2005, 10:10:00 AM10/5/05
to

Das hat mit python nix zu tun - für sowas etabliert man einen
RPC-Mechanismus, wie zB XMLRPC, Pyro oder CORBA. Unter Windows eventuell
auch COM. Was du machst ist schlicht ein Missbrauch des CB - egal wie
man es dreht und wendet. und wenn einer deiner Anwender zwischendurch da
mal was reinschiebt, was dann?

Wie wäre es wenn du uns mal erzäöhlst was passieren soll. Dann sagen wir
dir, was besser ist :)

Diez

Stephan Wassipaul

unread,
Oct 5, 2005, 10:50:51 AM10/5/05
to
> Das hat mit python nix zu tun - für sowas etabliert man einen
> RPC-Mechanismus, wie zB XMLRPC, Pyro oder CORBA. Unter Windows eventuell
> auch COM. Was du machst ist schlicht ein Missbrauch des CB - egal wie
> man es dreht und wendet. und wenn einer deiner Anwender zwischendurch da
> mal was reinschiebt, was dann?
RPC ? (Ich bin noch ein ziemlicher Neuling (bis jetzt HTML, PHP +Mysql,
kurz Javascript probiert, Python))
Es gibt keine Anwender, nur mich. Das ist auch kein wirkliches Programm,
zumindest interagiert es nicht mit dem Benutzer.

> Wie wäre es wenn du uns mal erzäöhlst was passieren soll. Dann sagen wir
> dir, was besser ist :)
Gerne, aber es ist ziemlich langweilig. Die Situation ist folgende: Ich
starte den Computer, will meistens die gleichen Programme starten, aber
nicht immer. Deshalb kein Autostart. Sobald ich das "Pythonprogramm"
starte, startet es die Programme, die ich normalerweise benötige. Weil
ich bei einem bestimmten Programm meistens mit dem gleichen String
starte (aber nicht immer) kopiere ich ihn in die Zwischenablage. (Danke
nochmal für die Tips) Schlussendlich beendet sich das "Pythonprogramm"
wieder.

mfg

Stephan Wassipaul

Diez B. Roggisch

unread,
Oct 5, 2005, 11:27:39 AM10/5/05
to
Stephan Wassipaul wrote:
>> Das hat mit python nix zu tun - für sowas etabliert man einen
>> RPC-Mechanismus, wie zB XMLRPC, Pyro oder CORBA. Unter Windows
>> eventuell auch COM. Was du machst ist schlicht ein Missbrauch des CB -
>> egal wie man es dreht und wendet. und wenn einer deiner Anwender
>> zwischendurch da mal was reinschiebt, was dann?
>
> RPC ? (Ich bin noch ein ziemlicher Neuling (bis jetzt HTML, PHP +Mysql,
> kurz Javascript probiert, Python))
> Es gibt keine Anwender, nur mich. Das ist auch kein wirkliches Programm,
> zumindest interagiert es nicht mit dem Benutzer.

RPC = RemoteProcedureCall, eine Möglichkeit Programme miteinander reden
zu lassen.

>> Wie wäre es wenn du uns mal erzäöhlst was passieren soll. Dann sagen
>> wir dir, was besser ist :)
>
> Gerne, aber es ist ziemlich langweilig. Die Situation ist folgende: Ich
> starte den Computer, will meistens die gleichen Programme starten, aber
> nicht immer. Deshalb kein Autostart. Sobald ich das "Pythonprogramm"
> starte, startet es die Programme, die ich normalerweise benötige. Weil
> ich bei einem bestimmten Programm meistens mit dem gleichen String
> starte (aber nicht immer) kopiere ich ihn in die Zwischenablage. (Danke
> nochmal für die Tips) Schlussendlich beendet sich das "Pythonprogramm"
> wieder.

Ok - ich muss zugeben, ich habe deine Anfrage etwas missverstanden und
dahingehend interpretiert, das du mehrere Python-Programme interagieren
lassen willst. Das was du vorhast, da hat das schon Sinn.


MfG Diez

Stephan Wassipaul

unread,
Oct 5, 2005, 12:21:37 PM10/5/05
to
> Ok - ich muss zugeben, ich habe deine Anfrage etwas missverstanden und
> dahingehend interpretiert, das du mehrere Python-Programme interagieren
> lassen willst. Das was du vorhast, da hat das schon Sinn.
Ok, danke für dein Interesse und deine Hilfe!

mfg

Stephan Wassipaul

0 new messages