Also ich habe folgendes Problem mein Programm soll in einem fremden Programm Dateien einfügen das funktioniert dort leider
nur per Rechtklick dann 2 mal "E" und Enter da es keine Schnittstellen hat(wird vom Clipboard eingefügt).
Das simulieren des rechtklicks und der tasten ist kein problem ich habe den Dateipfad der einzufügenden Datei z.b C:\temp1.txt
weiss aber leider nicht wie ich einen Verweis auf eine Datei ins Clipboard einfügen kann wie es die STRG+C Tastenkombionation in
Windows tut.
Für Text verwende ich diesen Code :
Code: Alles auswählen
import ctypes
wcscpy = ctypes.cdll.msvcrt.wcscpy
OpenClipboard = ctypes.windll.user32.OpenClipboard
EmptyClipboard = ctypes.windll.user32.EmptyClipboard
GetClipboardData = ctypes.windll.user32.GetClipboardData
SetClipboardData = ctypes.windll.user32.SetClipboardData
CloseClipboard = ctypes.windll.user32.CloseClipboard
CF_UNICODETEXT = 13
GlobalAlloc = ctypes.windll.kernel32.GlobalAlloc
GlobalLock = ctypes.windll.kernel32.GlobalLock
GlobalUnlock = ctypes.windll.kernel32.GlobalUnlock
GMEM_DDESHARE = 0x2000
def get():
OpenClipboard(None)
handle = GetClipboardData(CF_UNICODETEXT)
data = ctypes.c_wchar_p(handle).value
pcontents = GlobalLock(handle)
data = ctypes.c_wchar_p(pcontents).value if pcontents else u''
GlobalUnlock(handle)
CloseClipboard()
return data
def put(data):
if not isinstance(data, str):
data = data.decode('mbcs')
OpenClipboard(None)
EmptyClipboard()
hCd = GlobalAlloc(GMEM_DDESHARE, 2 * (len(data) + 1))
pchData = GlobalLock(hCd)
wcscpy(ctypes.c_wchar_p(pchData), data)
GlobalUnlock(hCd)
SetClipboardData(CF_UNICODETEXT, hCd)
CloseClipboard()
Bzw gibt eine eine andere möglichkeit dies zu realisieren ich stecke nach längerer Suche leider bei diesem Problem fest?
Danke