Theo tôi được biết thì .net không hỗ trợ việc truy xuất các thư mục đặc biệt trong Shell như Desktop, RecycleBin, Control Panel ....
Bạn phải làm pure API, nghiên cứu về Shell, trong đó chú ý đến PIDL (lâu dữ tui cũng quên mất tiêu rồi)
Mình đang làm bài viết Window Explorer (giống phiên bản Win XP), cửa sổ bên trái mình dùng treeView thì ko có jì để nói nhưng, cửa sổ bên phải mình dùng Web Browse thay cho ListView, nhưng mình ko thể nào load dc cái MyComputer, các ổ đĩa và thư mục khác thì load bình thường, còn MyComputer và ControlPanel thì ko biết cách load làm sao cả .......Mình viết bằng C# .Net2005 .Các bác cao thủ chỉ dùm em với
Theo tôi được biết thì .net không hỗ trợ việc truy xuất các thư mục đặc biệt trong Shell như Desktop, RecycleBin, Control Panel ....
Bạn phải làm pure API, nghiên cứu về Shell, trong đó chú ý đến PIDL (lâu dữ tui cũng quên mất tiêu rồi)
Keep moving forward!
... Retired ...
bạn có thể nói rõ hơn dc ko,mình mới viết win form chưa dc lâu ......Có code minh họa thì càng tốt
°º¤ø,¸¸,ø¤º°`°º¤ø,¸Tay cầm bút viết mắt đăm chiêu°º¤ø,¸¸,ø¤º°
×÷·.·´¯`·)» Lòng dạ buâng khuâng muốn viết nhiều«(·´¯`·.·÷×
,.-~*'¨¯¨'*·~-Nhưng biết viết sao cho em hiểu~*'¨¯¨'*·~-.¸
<º))))><.·´¯`Thôi đành viết chữ "I Love You"¸´¯`·.¸><((((º>
Lục lại được tí code này hồi đó học API. Tui nghĩ là rất khó tham khảo khi làm trên C#.
Cái này mới chỉ là cho desktop :(
P/s: đừng hỏi tui, tui không biết gì đâu :|Code:BOOL EnumDesktop() { // cấp phát bộ nhớ cho IMalloc IMalloc* pMalloc = NULL; SHGetMalloc(&pMalloc); // bắt đầu từ desktop ITEMIDLIST* pidlDesktop = NULL; SHGetSpecialFolderLocation(hWnd, CSIDL_DESKTOP, &pidlDesktop); // tạo mới đối tượng CMyPIDLTreeItem* pItem = new CMyPIDLTreeItem(pidlDesktop, pidlDesktop, 0, 0); // add node desktop vào tree HTREEITEM hParent = myTreeView.AddItem(pItem->GetDisplayName(), pItem->GetIconIndex(FALSE), pItem->GetIconIndex(TRUE), TRUE, TVI_ROOT, TVI_LAST, (LPARAM)pItem); // expand node desktop (để nhìn cho đẹp :D) TreeView_Expand(myTreeView.GetHandle(), hParent, TVE_EXPAND); // giải phóng bộ nhớ pMalloc->Release(); return TRUE; }
Keep moving forward!
... Retired ...