フォルダ作成をシステムに通知 <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