我试图在Windows系统中找到字体文件夹。据我所知,提议的方法是调用Shell32.dll
中的SHGetKnownFolderPath
函数,并将KNOWNFOLDERID
设置为FOLDERID_Fonts
。
我不知道在下面的代码中该传递什么给Call
函数:
package main
import (
"syscall"
)
func main() {
// HRESULT SHGetKnownFolderPath(
// _In_ REFKNOWNFOLDERID rfid,
// _In_ DWORD dwFlags,
// _In_opt_ HANDLE hToken,
// _Out_ PWSTR *ppszPath
// );
var (
shell32 = syscall.NewLazyDLL("Shell32.dll")
shGetKnowFolderPath = shell32.NewProc("SHGetKnownFolderPath")
// Doesn't work, of course:
folderId int
flags int
handle int
retval int
)
shGetKnowFolderPath.Call(uintptr(folderId), uintptr(flags), uintptr(handle), uintptr(retval))
}
有什么想法吗?(我猜现在的解决方法是坚持使用%windir%\Fonts
,但我想得到一个正确的解决方案。)
参考资料: