Was ich beim Schreiben von Code und beim Schreiben einer Funktion gelernt habe, die einen speziellen Windows-Ordner mit ctypes in Python3 öffnet.
Öffnen Sie den Schriftartenordner
import os
import ctypes
from ctypes import oledll, wintypes
def getshellfolderpath(csidl: int) -> str:
if not isinstance(csidl, int):
raise TypeError
SHGetFolderPathW = oledll.shell32.SHGetFolderPathW
SHGetFolderPathW.argtypes = [
wintypes.HWND, ctypes.c_int, wintypes.HANDLE,
wintypes.DWORD, wintypes.LPWSTR]
path = ctypes.create_unicode_buffer(wintypes.MAX_PATH)
SHGetFolderPathW(0, csidl, 0, 0, path)
return path.value
CSIDL_FONTS = 0x0014
os.startfile(getshellfolderpath(CSIDL_FONTS))
ctypes exportiert cdll, pydll, windll, oledll zum Laden der Dynamic Link Library. cdll und pydll sind cdecl-Aufrufkonventionen, und windll und ctypes.oledll sind stdcall-Aufrufkonventionen. ctypes.oledll nimmt einen Rückgabewert von HRESULT an und sendet bei einem Fehler einen OSError. Offizielle Dokumentation.
--Erstellen Sie einen Puffer vom Typ "WCHAR" mit der Funktion "ctypes.create_unicode_buffer". Sie können den String mit dem Rückgabewert value erhalten. Offizielle Dokumentation.os.startfile verwenden, um Dateien / Ordner in Verbindung zu öffnen.Recommended Posts