我正在使用.NET 2.0。 我注意到,似乎没有为常见的桌面和常见的开始菜单文件夹Environment.SpecialFolder成员。
我宁愿一种不涉及加载shell32.dll和使用SHGetSpecialFolderPath的方式
以编程方式更改IE开发人员工具用户代理设置
我如何尝试创build一个文件,并返回一个值,指出它是否被创build?
如何获取.NET 2.0中的Environment.SpecialFolders.MyVideo文件夹?
我可以使用单声道的AOTfunction本地“预编译”.NET DLL / EXE,使他们更难以逆向工程?
我使用P / Invoke … 0x19对应于Common Desktop枚举,0x16对应于Common Start Menu
public static string GetCommonDesktopFolder() { var sb = new StringBuilder(260); SHGetFolderPath(IntPtr.Zero,0x19,IntPtr.Zero,sb); // CSIDL_COMMON_DESKTOPDIRECTORY return sb.ToString(); } [DllImport("shell32.dll")] private static extern int SHGetFolderPath( IntPtr hwndOwner,int nFolder,IntPtr hToken,uint dwFlags,StringBuilder pszPath); }
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine; key = key.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"); String commonDesktop = key.GetValue("Common Desktop").ToString();
从这里
尝试铸造0x19和0x16 Environment.SpecialFolder传递给Environment.GetFolderPath
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。