Ce que j'ai appris en écrivant du code et en écrivant une fonction qui ouvre un dossier Windows spécial à l'aide de ctypes en Python3.
Ouvrez le dossier des polices
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))
HWND
, DWORD
, etc.) sont définis dans ctypes.wintypes
.
--ctypes
exporte cdll
, pydll
, windll
, ʻoledllpour charger la bibliothèque de liens dynamiques. «cdll» et «pydll» sont des conventions d'appel cdecl, et «windll» et «ctypes.oledll» sont des conventions d'appel stdcall.
ctypes.oledll assumera une valeur de retour de
HRESULT et lancera ʻOSError
en cas d'échec. Documentation officielle.
--Créez un tampon de type WCHAR
avec la fonction ctypes.create_unicode_buffer
. Vous pouvez obtenir la chaîne avec la valeur de retour «value». Documentation officielle.Recommended Posts