2012-12-04 34 views
7

IDE yêu thích của tôi Wing IDE có lệnh hiển thị tệp đang hoạt động trong Explorer. Điều này có nghĩa là khi bạn khởi động lệnh, nó sẽ mở ra một cửa sổ thám hiểm trên thư mục mà tệp đang ở, và sau đó chọn tệp.Hiển thị tệp trong Windows Explorer

Vấn đề là, nếu cửa sổ đã mở, nó sẽ không chọn tệp. Nó kích hoạt cửa sổ, nhưng tập tin không được chọn. Điều đó thật khó chịu. Tôi muốn tệp luôn được chọn

Tôi đã nói chuyện với một trong những nhà phát triển và anh ấy nói rằng họ đang sử dụng 'explorer /select,%s' % filename để hiển thị tệp và sự phiền toái ở trên có thể là dấu ngoặc đơn của lệnh đó.

Có ai có ý tưởng về cách tránh hành vi này không?

(Các giải pháp cần phải làm việc trong Windows 2000, XP, 2003 Server, Vista, và Windows 7.)

+0

Một câu hỏi liên quan tồn tại, một trong những câu trả lời trỏ đến các cuộc gọi API; Nó có thể giúp một chút: http://stackoverflow.com/questions/3887364/opening-an-explorer-window-with-designated-file-selected – Larry

+0

Trên hệ điều hành nào bạn thấy vấn đề? Bạn có thấy cùng một vấn đề khi chạy 'explorer/select, ...' từ một cmd.exe không? –

+0

1. Nó xảy ra trên XP. 2. Tôi đã thử nghiệm, và có, cùng một vấn đề xảy ra khi tôi chạy nó trực tiếp từ một thiết bị đầu cuối. –

Trả lời

0

Tôi không biết nếu có, nhưng nếu bạn tạo tiện ích đó sẽ là thực hiện giải pháp như vậy (C++) nó sẽ làm việc như bạn mong đợi:

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

Cảm ơn bạn đã viết mã, nhưng tôi không thể lập trình trong C++ vì vậy điều này không giúp tôi. –

+0

Tôi không thấy C++ trong mã đã cho. BTW, đừng quên gọi 'CoInitializeEx' trước khi gọi SHOpenFolderAndSelectItems! –

+0

@Werner Henze: đúng vậy, hãy gọi 'CoInitializeEx' trước tiên là bắt buộc và ... mã đó thực sự được viết bằng C++, :-) Tôi chỉ biết C++, C# và ABAP. Và mã ở trên có thể được nhận ra chỉ như C++ cho tôi –

2

theo https://support.microsoft.com/en-us/kb/152457, trong đó nêu "công tắc có thể kết hợp", những gì về:

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

/n nên buộc một cửa sổ mới.

+0

Tôi không muốn ép buộc một cửa sổ mới. Tôi muốn sử dụng cái hiện có nếu nó tồn tại. –

+0

Ah, tôi hiểu rồi. Tôi không thể nhìn thấy một giải pháp có lập trình cho vấn đề của bạn trong trường hợp đó, vì không có công tắc dòng lệnh nào để đạt được những gì bạn muốn, và nếu mã hóa shell không phải là một lựa chọn, thì đó là về nó. Có thể có các chỉnh sửa cấu hình bạn có thể thực hiện trên mỗi máy, nhưng đó sẽ là một câu hỏi cho superuser.com không phải stackoverflow vì đây là một trang Q & A lập trình. –

Các vấn đề liên quan