Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 获取用于操作的正确shell谓词文本_Windows_Shell_Windows Vista_Windows Xp_Internationalization - Fatal编程技术网

Windows 获取用于操作的正确shell谓词文本

Windows 获取用于操作的正确shell谓词文本,windows,shell,windows-vista,windows-xp,internationalization,Windows,Shell,Windows Vista,Windows Xp,Internationalization,我一直在查看以下VB代码: 如果您在“方法”下查看,您将看到他进行了一项测试,以查看shell项动词是否为“En&able”或“Disa&ble”-很明显,这些文本字符串与网络连接中右键单击上下文菜单中列出的文本字符串相同。这种方法的一个明显问题(正如有人在对CodeProject的评论中指出的)是,这是英语特有的;根据操作系统运行的语言,它将使用不同的单词。程序员的反应是可能会使用动词的索引,但这可能比原始解决方案更糟糕,因为如果不是正确的命令,您将执行一些任意操作(我不相信它一定会在动词列

我一直在查看以下VB代码:

如果您在“方法”下查看,您将看到他进行了一项测试,以查看shell项动词是否为“En&able”或“Disa&ble”-很明显,这些文本字符串与网络连接中右键单击上下文菜单中列出的文本字符串相同。这种方法的一个明显问题(正如有人在对CodeProject的评论中指出的)是,这是英语特有的;根据操作系统运行的语言,它将使用不同的单词。程序员的反应是可能会使用动词的索引,但这可能比原始解决方案更糟糕,因为如果不是正确的命令,您将执行一些任意操作(我不相信它一定会在动词列表中按特定顺序)


那么我的问题是,是否有可能从系统(通过一些调用或注册表)获取特定于操作系统语言的启用和禁用文本?我在注册表中搜索了这两个字符串,但都没有成功,但我认为有更多多语言经验的人可能会找到答案。另外,我不使用VB(我将使用C++),所以不用担心在任何特定的语言中使用它-API调用或伪代码都可以。我还需要在XP和Vista(希望还有Windows7)上工作的解决方案。谢谢

动词的文本似乎可以通过处理。您需要标识connections组件的CLSID。我四处搜索,但没有找到任何为我遇到的网络连接CLSID注册的动词…

我找到的最接近的东西是IShellFolder的一部分,特别是GetCommandString(),它返回一个描述操作的通用字符串——在本例中,它字面上返回“启用”或“禁用”。这个特定API的问题是,虽然它可以工作,但实际上在XP上并没有返回任何内容——显然,虽然它在较旧的OSs上可用,但它只在Vista或更高版本上有用