在我的C++/WinAPI应用程序中,我使用以下代码获取我的文档文件夹路径:wchar_tpath[MAX_PATH];SHGetFolderPathW(NULL,CSIDL_PERSONAL,NULL,SHGFP_TYPE_CURRENT,path);其中一个用户在连接到他的公司网络的电脑上运行我的程序。他在网络上有我的文档文件夹。所以我的代码返回类似\\paq\user.name$\我的文档尽管他说他有一份“我的文档”的本地副本。问题是,当他“交换VPN”时,在线我的文档变得不可用,我的程序崩溃并出现系统错误代码64“指定的网络名称不再可用”(它尝试写入在在线我的文件中打开的文件文
我有一种情况,我想对一些Windowsshell特殊文件夹(那些对应于CSIDL枚举中的值的文件夹)执行特殊处理。(我的解决方案必须与WinXP兼容。)我遇到的问题是,当我当我在层次结构中工作时遇到IShellFolders,我找不到将IShellFolders与其CSIDL匹配的方法。这是我目前的做法:将所有CSIDL的静态一对一数据结构(csidlToFromFullPIdl)初始化为其由SHGetSpecialFolderLocation返回的pIDL。foreach(CSIDLcsidlinEnum.GetValues(typeof(CSIDL)){IntPtrfullPIdl
我使用的是sapi5.4,我能够保留音频用于培训,但可以将其添加到注册表项中,如本AcoustictrainingusingSAPI5.3SpeechAPI中所示我无法理解用于ISpObjectToken::GetStorageFileName的参数,有人可以帮我解决这个问题吗? 最佳答案 ISpObjectToken::GetStorageFileName不是世界上记录最好的API。幸运的是,我有一些工作示例可以帮助改进文档。clsidCaller如果您需要与对象token关联的文件名,请设置此项。对于培训,这应该是CLSID_N
有没有办法让在64位系统上运行的32位应用程序访问64位应用程序的默认文件夹?例如,在32位应用程序中将SHGetSpecialFolderPath与CSIDL_PROGRAM_FILES结合使用会返回“C:\从32位应用程序获取“C:\ProgramFiles”的方法?这里的一个相关问题没有帮助SHGetFolderPath()32bitvs64bit在调用SHGetSpecialFolderPath之前也不会抑制wow64文件系统重定向 最佳答案 回答我自己的问题,SHGetSpecialFolderPath似乎是不可能的。在V
我是Windows开发的新手(在Mac方面有经验),我正在尝试使用SHGetFolderPath(因为它与WindowsXP兼容)来获取当前用户的应用程序数据文件夹的路径。然而,无论我传入什么标志,我每次都会得到“C”的输出路径。我都试过了:CSIDL_APPDATA和CSIDL_LOCAL_APPDATA有和没有CSIDL_FLAG_CREATE标志。每次结果相同:“C”。我在这里做错了什么?#include#include//SHGetFolderPath#include#include//#pragmacomment(lib,"shell32.lib")intmain(){CHA
我正在为安装程序执行自定义操作。它必须读取存储在CSIDL_COMMON_DOCUMENTS中的文件以确定安装目录。(我希望在自定义操作中更改安装目录不会成为问题,但这是另一个问题。)我看到.NET4添加了CommonDocuments到Environment.SpecialFolder。不幸的是,我坚持使用.NET3.5。获得这条路径的下一个最简单的方法是什么? 最佳答案 我知道的最简单的方法是P/InvokeSHGetFolderPathfunction,这很可能是.NETFramework在内部用来检索Environment.