Да рефрешнем shell-а

2 отговора 99 прегледа
#1

Да рефрешнем shell-а

Ми значи, аз разработвам една програма за настройки на Windows и понякога, за да заработи някоя промяна - трябва да се рефрешне explorer-a.
Сигурен съм, че има някоя АПИ функция, ама немога да я намеря!

Отговор
в отговор на hWnd|www.smilianov.dir.bg #2

Re: Да рефрешнем shell-а

Не става ли да килнеш Explroer.exe и да го стартираш пак ? :))

Отговор
в отговор на hWnd|www.smilianov.dir.bg #3

Re: Да рефрешнем shell-а

Това не съм го пробвал (така че не знам какъв ще бъде крайният резултат), защото нямам време да се занимавам с глупости:


Declare Sub SHChangeNotify Lib "shell32" (ByVal wEventId As Long, _
ByVal uFlags As Long, ByVal dwItem1 As Any, ByVal dwItem2 As Any)

Public Const SHCNE_UPDATEDIR = &H1000

Public Const SHCNF_IDLIST = &H0


Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, _
pidl As Long) As Long

Public Const NOERROR = 0


Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)


Public Function UpdateShellFolder(nFolder As Long) As Boolean
Dim pidl As Long
UpdateShellFolder = False

If (SHGetSpecialFolderLocation(0, nFolder, pidl) = NOERROR) Then
SHChangeNotify SHCNE_UPDATEDIR, SHCNF_IDLIST, pidl, 0&
CoTaskMemFree pidl
UpdateShellFolder = True
End If
End Function

Бии, за да те уважават!
Отговор