2011-06-24 48 views
7

Tôi đang cố gắng thay đổi biểu tượng thư mục bằng cách thay đổi desktop.ini trên thư mục. Tôi có thể thiết lập một biểu tượng, nhưng không thể thay đổi nó ngay lập tức thông qua việc thay đổi "IconIndex". Biểu tượng cũng được thay đổi sau vài giây.Làm cách nào để tải lại ngay biểu tượng thư mục khi desktop.ini được thay đổi

Có ai biết cách thay đổi biểu tượng ngay lập tức không?

+3

Hãy xem SHChangeNotify API và tra cứu liên quan SO bài đăng nào. – 9dan

+1

Tôi đã tìm thấy giải pháp về câu hỏi của riêng mình. Đó là những gì nó sử dụng ** SHGetSetFolderCustomSettings ** Chức năng Win32. –

+2

Bạn có thể viết nó như là một câu trả lời đầy đủ dưới đây .. Điều đó sẽ làm cho nó dễ dàng hơn cho các khách truy cập của câu hỏi này và nó (câu trả lời của bạn) cũng sẽ được bình chọn. –

Trả lời

1

Tôi đã trả lời bằng cách nhận xét trả lời trước câu hỏi của tôi. Để thuận tiện hơn, tôi sẽ viết lại câu trả lời.

Nếu bạn muốn thực hiện bất kỳ thay đổi nào ở dạng xuất hiện của bất kỳ thư mục nào bằng Desktop.ini, hãy sử dụng một số hàm shell win32. Bạn không nên cố gắng chỉnh sửa trực tiếp Desktop.ini. Nó không nhận được bất kỳ sự thay đổi nào khi xuất hiện bất kỳ thư mục nào.

Bạn có thể nhận thêm thông tin về chức năng trình bao win32 thông qua liên kết sau.

http://msdn.microsoft.com/en-us/library/windows/desktop/bb776426(v=vs.85).aspx

1

Ví dụ:

SHFOLDERCUSTOMSETTINGS fcs = {0}; 
fcs.dwSize = sizeof(SHFOLDERCUSTOMSETTINGS); 
fcs.dwMask = FCSM_ICONFILE; 
fcs.pszIconFile = iconPath; 
fcs.cchIconFile = 0; 
fcs.iIconIndex = iconIndex; 
SHGetSetFolderCustomSettings(&fcs, folderPath, FCS_FORCEWRITE); 
0

Các thủ tục sau đây hoạt động tốt đối với tôi (trên Windows 7):

  1. tập tin Thay đổi desktop.ini
  2. Issue SHChangeNotify (SHCNE_DELETE, SHCNF_PATH, "path_to/desktop.ini", 0);
  3. Thư mục ico sẽ được làm mới

Hãy nhớ bao gồm Shlobj.h

+0

Sai bao gồm. Nó phải là Shlwapi.h. –

+0

KHÔNG có tác dụng gì cả. 5 giờ trong máy tính trong đêm hoạt động như ảo ảnh –

+0

Bất kỳ ý tưởng Làm thế nào để làm mới biểu tượng thư mục sau khi thay đổi desktop.ini? SHGetSetFolderCustomSettings không được hỗ trợ từ các cửa sổ XP. –

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