【发布时间】:2013-07-30 11:50:44
【问题描述】:
我尝试在 Windows 安装中找出字体文件夹。 AFAICS 建议的方法是在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,但我想得到一个合适的解决方案)。
参考资料:
【问题讨论】:
-
为什么投反对票?我可以做些什么来改善这个问题?