首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#/Windows:获取本地化的默认名称“新建文件夹”

C#/Windows:获取本地化的默认名称“新建文件夹”
EN

Stack Overflow用户
提问于 2013-08-22 09:38:11
回答 1查看 1.1K关注 0票数 1

我使用一个FileSystemWatcher来检查是否在被监视的目录中创建了新目录。如果用户根据资源管理器创建->,首先右键单击->新建文件夹,就会创建一个目录“新建文件夹”,用户可以立即重命名该目录。不过,我在“新建文件夹”上得到了创建的事件,我可以处理该事件。我的问题是,以不同的方式运行该软件的Windows机器本地化,使得它不可能检查与“新文件夹”。如何获得浏览器在当前语言中使用的新文件夹的名称。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-22 11:22:13

见以下内容:

您需要做的是发现用于“新建文件夹”....then的字符串的"ID“,您可以使用LoadStringShell32.dll中的字符串表资源加载它。

但是,ID并不一定是稳定的,并且在Windows版本之间发生了变化。

对于instance...XP,字符串表设置如下:

  • http://www.askvg.com/customize-new-folder-and-new-shortcut-text-in-windows-xp/

在Windows764 bit...the上,“新建文件夹”字符串的ID为16888。

您可以尝试两种不同的方法来完成这个ID发现:

1.通过在要支持的每个Windows版本上预先发现“新建文件夹”字符串的ID

您需要编写一个实用程序,在每个Windows的英语/美国版本(XP、Vista、Windows7等)上调用该函数,...to查找ID。

UINT new_folder_id = FindResourceStringId(shell_handle,L“新文件夹”,0x409);

然后,您可以在代码中进行一个开关,根据运行的Windows当前版本使用正确的ID。

2.运行时的动态

通过查找英语资源中的“新建文件夹”字符串来查找其ID。但是,这需要在系统上安装英语MUI语言包。

使用此C#代码加载给定特定ID的特定“字符串”。

  • http://khason.net/blog/how-to-load-unmanaged-native-resources-from-managed-c-code/

要测试您的代码是否是working....you,可以安装MUI语言包,然后尝试为不同的地区加载字符串。

  • http://www.microsoft.com/en-gb/download/details.aspx?id=22108
  • http://support.microsoft.com/kb/972813
  • http://www.froggie.sk/7lp64sp1.html
  • http://technet.microsoft.com/en-us/library/cc766472(v=ws.10).aspx

或者,您可以使用SHChangeNotifyRegister来侦听“在shell中”所做的更改.Explorer在执行某些事情时调用SHChangeNotify

在这里使用代码:

  • http://www.codeproject.com/Articles/3054/Shell-Notifications-in-C

使用合适的标志,如SHCNRF_ShellLevel,SHCNE_MKDIR。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18376781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档