J'essaie d'obtenir l'emplacement du dossier Local AppData de Windows de manière agnostique en utilisant Haskell, et j'ai un peu de mal à le faire. J'ai essayé d'utiliser la bibliothèque System.Win32.Registry, et j'ai été en mesure d'obtenir le code ci-dessous (après quelques essais et erreurs), mais je n'ai pas réussi à comprendre comment utiliser le regQueryValueEx
ou toute autre fonction pour obtenir la valeur dont j'ai besoin.Obtention du dossier Local AppData dans Haskell
import System.Win32.Types
import System.Win32.Registry
userShellFolders :: IO HKEY
userShellFolders = regOpenKeyEx hKEY_CURRENT_USER "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\\" kEY_QUERY_VALUE
J'ai essayé aussi regarder le code source de la fonction getAppUserDataDirectory
dans le module System.Directory, mais cela ne m'a pas aidé non plus.
Peut-être qu'il y a un moyen plus facile de le faire que je suis juste manquant.
Merci beaucoup, cela fait exactement ce dont j'ai besoin. – Alasdair
Pas la manière documentée de le faire, et pas clair sur quel Windows il fonctionne. C'est peut-être le plus proche de ce qu'Aasdairn avait déjà, mais la solution API est meilleure. – MSalters
Je me suis contenté de ce qu'Alasdair avait déjà fait et je n'ai pas cherché d'autres appels Api. Quoi qu'il en soit, je ne vais pas supprimer cela car il pourrait être utile pour d'autres personnes qui essaient de lire différentes valeurs de registre qui n'ont pas accès à un API distinct. – sth