!怎样能简单的实现这个小程序!文件的移动,目录的监控

求助!怎样能简单的实现这个小程序!文件的移动,目录的监控
这是程序的功能是监视电脑桌面有没有出现jpg图片,如果出现了就把jpg文件移动到一个指定的目录下。
要求尽量用C语言,尽量少涉及MFC的知识。可以使用少量API。毕竟这是C语言练手的。

我写的核心代码是用死循环不停地在桌面目录下查找后缀名为.jpg的文件,找到后就移动到一个目录下。一直这么循环。


用死循环是因为我不知道怎么监听一个目录下文件的改变。

我想把这个程序做成一个在后台运行的进程。可我不知道怎么隐藏控制台。

这样不停得循环查找消耗大吗?有更好的办法吗?
下面是我的初步代码
C/C++ code
// 演示.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <stdio.h>
#include<windows.h> 

int main()
{
    WIN32_FIND_DATA filedata;
    HANDLE handle=NULL;


    handle=FindFirstFile("C:\\Users\\chao\\Desktop\\*.jpg",&filedata);
    if(handle!=INVALID_HANDLE_VALUE)
    {
        MessageBox(NULL,(LPCTSTR)filedata.cFileName,"title",MB_YESNO);
        char path[256]={"C:\\Users\\chao\\Desktop\\"};
        char path2[256]={"C:\\Users\\chao\\Desktop\\图片\\"};
        strcat(path,filedata.cFileName);
        strcat(path2,filedata.cFileName);
            
        
        if(MoveFile(path,path2)==0)
            printf("移动失败");
    }
    else printf("NOT FIND!\n");
    return 0;
} 




------解决方案--------------------
控制台可以实现隐藏,可做成服务。

这个代码效率肯定不行,会耗CPU,外面加个while循环,里面调用sleep,1能起到定时器左右,2能一定程度上耗CPU。但这也不是好办法,好办法是监测桌面添加新文件的事件,然后通知程序。


------解决方案--------------------
2能一定程度上减少耗CPU
------解决方案--------------------
探讨

怎样做出服务?怎样隐藏呢?求解答
引用:

控制台可以实现隐藏,可做成服务。

这个代码效率肯定不行,会耗CPU,外面加个while循环,里面调用sleep,1能起到定时器左右,2能一定程度上耗CPU。但这也不是好办法,好办法是监测桌面添加新文件的事件,然后通知程序。

------解决方案--------------------
探讨
好吧!服务很复杂吗?
那监听一个目录的变化呢?