フォルダを監視する(C/C++版)
フォルダを監視するサンプルです。
サンプルの実行画面
ソースコード
[Sample90.c]
//--------------------------------------------------------------------------------------
// ■フォルダを監視する■ Sample NO.90
//
//--------------------------------------------------------------------------------------
#include <windows.h>
#define IDD_DIALOG 101
#define IDB_1 1000
//コールバックプロシージャ
LRESULT CALLBACK DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
/////////////////////////////////////////////////////////////////////////////////
//
// WinMain
//
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), 0, (DLGPROC)DialogProc);
return (0);
}
/////////////////////////////////////////////////////////////////////////////////
//
// DialogProc
//
LRESULT CALLBACK DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HANDLE hForder;
DWORD Result;
switch (uMsg)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDB_1:
MessageBox(hwnd,"10秒以内にC:\\Windowsフォルダ内の何らかのファイルを更新またはファイル名を変更した下さい。","説明",MB_OK);
//C:\Windowsフォルダ内のファイルを監視するハンドルを取得(フラグによってサブフォルダなども監視可能)
hForder= FindFirstChangeNotification("C:\\Windows",FALSE,
FILE_NOTIFY_CHANGE_FILE_NAME |
FILE_NOTIFY_CHANGE_ATTRIBUTES);
if (hForder!=INVALID_HANDLE_VALUE)
{
//監視開始
Result= WaitForSingleObject(hForder,10000);
if (Result==WAIT_TIMEOUT)
MessageBox(hwnd,"タイムアウト - 10秒の間、ファイルに変更はありませんでした。","失敗",MB_OK);
else if (Result==WAIT_OBJECT_0)
MessageBox(hwnd,"チェンジ - フォルダ内の何らかのファイルが変更されました。-","成功",MB_OK);
}
//解放
FindCloseChangeNotification(hForder);
break;
case 2:
EndDialog(hwnd, 2);
break;
default: return FALSE;
}
default: return FALSE;
}
return TRUE;
}
ソースコード一式のダウンロード
capi_sample90.zip 1,412 バイト
動作環境
このサンプルは 「Windows98」及び「Microsoft Visual C++5.0」「Borland C++ Compiler 5.5」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
Visual C++5.0でのコンパイル
VC5.0でサンプルをコンパイルする場合は新規プロジェクト(Win32Application)を作成後、各ファイルを追加してビルドしてください。
Borland C++ Compiler 5.5でのコンパイル
BCC5.5でサンプルをコンパイルする場合は「bcc32.exe」で*.c又は*.cppファイルをコンパイルします。リソースがある場合は「brc32.exe」で*resファイルを付与してください。
サンプルについて
このWindows APIサンプル集(C/C++版)は2000年頃にC/C++言語の学習の為に作成したものです。コードはエレガントではなく「初心者レベルのコーディング」です。仕事などの業務で利用する際にはエラー処理やメモリ解放などの再確認を必ずして下さい。
スポンサーリンク
関連記事
公開日:2015年03月19日
記事NO:00546
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









