2012-12-04 16 views
7

Moje ulubione IDE Wing IDE ma polecenie pokazujące aktywny plik w Eksploratorze. Oznacza to, że po uruchomieniu polecenia otwiera okno eksploratora w folderze, w którym znajduje się plik, a następnie wybiera plik.Pokazywanie pliku w Eksploratorze Windows

Problem polega na tym, że jeśli okno jest już otwarte, nie można wybrać pliku. Aktywuje to okno, ale plik nie zostanie wybrany. To irytujące. Chcę, aby plik był zawsze wybierany

Rozmawiałem z jednym z programistów i powiedział, że używają 'explorer /select,%s' % filename, aby pokazać plik, a powyższa uciążliwość może być dziwactwem tego polecenia.

Czy ktoś ma pomysł, jak tego uniknąć?

(roztwór musi działać w systemie Windows 2000, XP, 2003 Server, Vista i Windows 7)

+0

Istnieje pokrewne pytanie, jedna z odpowiedzi wskazuje na wywołania API; To może trochę pomóc: http://stackoverflow.com/questions/3887364/opening-an-explorer-window-with-designated-file-selected – Larry

+0

Na jakim systemie operacyjnym widzisz problem? Czy widzisz ten sam problem podczas uruchamiania "explorer/select, ..." z cmd.exe? –

+0

1. Zdarza się na XP. 2. Testowałem i tak, ten sam problem występuje, gdy uruchamiam go bezpośrednio z terminala. –

Odpowiedz

0

nie wiem, czy taka istnieje, ale jeśli stworzyć narzędzia, które byłoby wdrożyć takie rozwiązanie (C++) będzie działać zgodnie z oczekiwaniami:

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

Dzięki za kod, ale nie mogę programować w C++, więc to mi nie pomoże. –

+0

Nie widzę C++ w podanym kodzie. BTW, nie zapomnij wywołać 'CoInitializeEx' przed wywołaniem SHOpenFolderAndSelectItems! –

+0

@Werner Henze: Tak, po pierwsze wywołanie 'CoInitializeEx' jest obowiązkowe i ... ten kod został napisany w C++, :-) Wiem tylko C++, C# i ABAP. Powyższy kod można rozpoznać tylko jako C++ dla mnie. –

2

Zgodnie https://support.microsoft.com/en-us/kb/152457, który stwierdza, że ​​"przełączniki można łączyć", co:

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

/n powinno wymusić nowe okno.

+0

Nie chcę wymuszać nowego okna. Chcę użyć istniejącego, jeśli istnieje. –

+0

Ach, rozumiem. Nie widzę w tym przypadku programowego rozwiązania twojego problemu, ponieważ nie ma żadnych przełączników wiersza poleceń, aby osiągnąć to, czego chcesz, a jeśli nie ma opcji kodowania powłoki, to o to chodzi. Mogą być poprawki konfiguracyjne, które możesz wykonać na każdym komputerze, ale byłoby to pytanie dla superuser.com, nie stackoverflow, ponieważ jest to strona z pytaniami i pytaniami dotyczącymi programowania. –

Powiązane problemy