2012-12-04 69 views
7

我最喜欢的IDE Wing IDE有一个用于在资源管理器中显示活动文件的命令。这意味着当您启动该命令时,它将在该文件所在的文件夹上打开一个资源管理器窗口,然后选择该文件。在Windows资源管理器中显示文件

的问题是,如果窗口已经打开,它无法选择文件。它激活窗口,但文件没有被选中。这很烦人。我希望文件总是被选中

我与其中一位开发者交谈过,他说他们正在使用'explorer /select,%s' % filename来显示文件,而上述烦恼可能是该命令的一个怪癖。

有没有人有一个想法如何避免这种行为?

(该解决方案需要在Windows 2000,XP,Server 2003的,Vista和Windows 7的工作)

+0

存在一个相关问题,API调用的答案之一;它可能会有所帮助:http://stackoverflow.com/questions/3887364/opening-an-explorer-window-with-designated-file-selected – Larry

+0

你在哪个操作系统上看到问题?从cmd.exe运行“explorer/select,...”时是否出现同样的问题? –

+0

1.它发生在XP上。 2.我测试过,是的,当我直接从终端运行它时,会发生同样的问题。 –

回答

0

我不知道如果存在的话,但是如果你创建的工具,它会实现这样的解决方案(C++ )如你预期它会工作:

void OpenFileInExplorer(LPCTSTR filename) 
{ 
    ITEMIDLIST *pidl = ILCreateFromPath(filename); 
    if(pidl) 
    { 
     SHOpenFolderAndSelectItems(pidl,0,0,0); 
     ILFree(pidl); 
    } 
} 
+0

感谢您的代码,但我无法用C++编程,所以这对我没有帮助。 –

+0

我在给定的代码中看不到C++。顺便说一句,不要忘记在调用SHOpenFolderAndSelectItems之前调用'CoInitializeEx'! –

+0

@Werner Henze:没错,首先调用'CoInitializeEx'是强制性的,而且......代码实际上是用C++编写的,:-)我只知道C++,C#和ABAP。和上面的代码可以被认为只是像我的C++ –

2

https://support.microsoft.com/en-us/kb/152457,其中规定 “开关可组合”,怎么样:

explorer /n,/select,c:\path\to\file.ext 

/N 应该强制一个新窗口。

+0

我不想强制一个新的窗口。如果存在,我想使用现有的。 –

+0

啊,我明白了。在这种情况下,我看不到您的问题的编程解决方案,因为没有命令行开关可以实现您想要的功能,并且如果shell编码不是一种选择,那就是它。可能会在每台机器上进行配置调整,但这是superuser.com的问题,而不是stackoverflow,因为这是一个编程问答网站。 –

相关问题