フォルダ作成をシステムに通知 <TOP>
SHChangeNotify イベントをシステムに通知
SHCNE_MKDIR(&H8) フォルダが作成された
SHCNE_RMDIR(&H10) フォルダが削除された
SHCNF_PATH(&H1) パス名SHCNF_PATHA
SHCNF_PATH(&H5) パス名SHCNF_PATHW(UNICODE)
例では、フォルダが作成されたことをシステムに通知し、その後削除した状態を示しています。

'================================================================ '= フォルダ作成をシステムに通知 '= (SHChangeNotify2.bas) '================================================================ #include "Windows.bi" #include "File.bi" #define SHCNE_MKDIR &H8 'フォルダが作成された #define SHCNE_RMDIR &H10 'フォルダが削除された
#define SHCNF_PATH &H1 'パス名SHCNF_PATHA
'#define SHCNF_PATH &H5 'パス名(UNICODE)SHCNF_PATHW
' イベントをシステムに通知
Declare Sub Api_SHChangeNotify Lib "shell32" Alias "SHChangeNotify" (ByVal wEventId&, ByVal uFlags&, dwItem1 As Any, dwItem2 As Any)
Var Shared Text1 As Object
Var Shared Text2 As Object
Var Shared Button1 As Object
Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Text2.Attach GetDlgItem("Text2") : Text2.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
Var FolderName As String
'フォルダを作成
FolderName = "Test"
MkDir FolderName
'イベントをシステムに通知
Api_SHChangeNotify SHCNE_MKDIR, SHCNF_PATH, FolderName, ByVal CLng(0)
'Api_SHChangeNotify SHCNE_RMDIR, SHCNF_PATH, FolderName, ByVal CLng(0)
'結果を表示
Text2.SetWindowText "通知しました。"
'フォルダ作成・削除確認のため
A% = MessageBox("フォルダ作成・削除確認", "通知しました。", 0, 2)
'フォルダを削除
RmDir FolderName
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End