mfg
wassi
> 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
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...
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
mfg
Stephan Wassipaul
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
mfg
Stephan Wassipaul