青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

春暖花開
雪化了,花開了,春天來了
posts - 149,comments - 125,trackbacks - 0
今天完成了一個任務,就是在mobile上如何監控文件的操作。這個SDK中有相應的例子,為FileChangeNotif

 
如何實現文件監控?
         
首先要在窗口注冊,這個要用到SHChangeNotifyRegister,這個函數的主要功能就是列舉一個窗口來接收change notifications.
         
在這個注冊的窗口中,響應WM_FILECHANGEINFO這個消息,來進行我們響應的操作。
         
如何我們不想監控了,則可以使用SHChangeNotifyDeregister,來移除相應的注冊窗口。

這樣我們就可以實現對一個文件夾內文件的生成,刪除,改名等等操作的監控。

下面我們再具體來談談每一步如何操作。
1
SHChangeNotifyRegister的運用
   SHChangeNotifyRegister
的原型為
  BOOL WINAPI SHChangeNotifyRegister(

HWND hwnd,

SHCHANGENOTIFYENTRY * pshcne

);

  其中,hwnd,為接收change notification的窗口;

pshcne是一個指向SHCHANGENOTIFYENTRY結構的指針,它用來指明窗口接收的change notification的類型.如果設為NULL,窗口將接收all file system, network media類型的notifications.

SHCHANGENOTIFYENTRY是什么樣的一個結構,我們看一下它的定義

typedef  struct  tagSHCHANGENOTIFYENTRY {
   DWORD dwEventMask;
   LPTSTR pszWatchDir;
 BOOL fRecursive;

} SHCHANGENOTIFYENTRY;

dwEventMask 指定發生什么時間來發送notification 消息

pszWatchDir 指定監控路徑,該值為NULL的情況下,是監控所有的文件。

fRecursive指定是否只監控指定路徑還是監控指定路徑及其子文件夾。

 

知道了這些,我們不妨寫一個這樣的函數,來啟動文件監控。

代碼如下:

BOOL StartFileMonitor(HWND hWnd, LPTSTR lpFilePath)

{

     SHCHANGENOTIFYENTRY schneNotifyEntry;

     schneNotifyEntry.dwEventMask = SHCNE_ALLEVENTS;

     schneNotifyEntry.pszWatchDir = lpFilePath;

     schneNotifyEntry.fRecursive = TRUE;

 

     return SHChangeNotifyRegister(hWnd, &schneNotifyEntry);

}

2、如何處理WM_FILECHANGEINFO消息

WM_FILECHANGEINFO 中的參數lParam,指向FILECHANGENOTIFY,含有相關的數據。所以我們在收到該消息后,先作的一部操作就是

FILECHANGENOTIFY *lpfcn = (FILECHANGENOTIFY*)lParam;

FILECHANGENOTIFY的結構為:

typedef struct tagFILECHANGENOTIFY {

 DWORD dwRefCount;

 FILECHANGEINFO fci;

} FILECHANGENOTIFY;

我們主要用到了其中的fci參數。

FILECHANGEINFO的結構為:

struct _FILECHANGEINFO {

 DWORD cbSize;

 LONG wEventId;

 ULONG uFlags;

 DWORD dwItem1;

 DWORD dwItem2;

 DWORD dwAttributes;

 FILETIME ftModified;

 ULONG nFileSize;

} FILECHANGEINFO, *LPFILECHANGEINFO;

dwEventId SHCHANGENOTIFYENTRY結構中的dwEventMask對應。

dwItem1,dwItem2是事件依賴的值,里面包括了我們需要的文件的完整路徑。如果是進行創建文件的操作,則dwItem1是創建后文件的完整路徑,如果是對文件進行重新命名操作的話,則dwItem2是修改后文件的完整路徑。此處對其他參數不做介紹,大家需要的話,可以查看一下。

 

我們做完相應的操作后,要知道釋放,此時要用到SHChangeNotifyFree。這個用起來就簡單很多,如SHChangeNotifyFreelpfcn)。

 

下面給大家一小段示例代碼,如下

case WM_FILECHANGEINFO:

     {  

FILECHANGENOTIFY    *lpfcn;

          FILECHANGEINFO        *lpfci;   

lpfcn = (FILECHANGENOTIFY *)lParam;

         if (NULL == lpfcn)

         {

             break;

         }

         // see if the pointer to the file change info structure

         lpfci = &(lpfcn->fci);

         if (NULL == lpfci)

         {

             break;

         }

           else

           {

               switch (lpfci->wEventId) 

                     {

                     case SHCNE_RENAME:

                            {

                                   //……

                            }

                            break;

                     }    

           }

           SHChangeNotifyFree(lpfcn);

}

break;

 

3、如何停止文件監控

   停止文件監控比較簡單,只要使該窗口不接收WM_FILECHANGEINFO消息即可。使用SHChangeNotifyDeregister(hWnd)即可。

 

以上是我今天學習的一些總結,此外需要注意的一個小地方,在mobile上,把一個文件從一個文件夾拷到另一個文件夾,此時響應的事件是SHCNE_CREATE,二從電腦上拷貝一個文件到mobile上,響應的消息為SHCNE_RENAME。我注意到從電腦上拷貝的話,mobile會先生成一個Temp文件夾內生成一個臨時文件,然后再在我們指定的文件夾內生成一個文件。這個機制我還不是很清楚為什么。

posted on 2009-02-08 16:20 Sandy 閱讀(1630) 評論(2)  編輯 收藏 引用 所屬分類: windows學習

FeedBack:
# re: mobile上監控文件的操作[未登錄]
2009-12-22 10:47 | kkk
這個監控是在文件操作完成之后才能收到嗎?要是防止復制、發送等能不能用這個呢?  回復  更多評論
  
# re: mobile上監控文件的操作
2009-12-22 15:09 | Sandy
@kkk

好像不可以。要是防止復制、發送操作什么的,可以用一下鉤子吧。  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美午夜精品久久久久久孕妇| 一区二区三区蜜桃网| 久久成人一区| 中文在线资源观看网站视频免费不卡 | 性欧美8khd高清极品| 中文精品视频| 午夜精品福利在线| 久久久青草青青国产亚洲免观| 久久综合导航| 亚洲国产精品一区二区久| 久久久久**毛片大全| 美女黄色成人网| 欧美激情亚洲综合一区| 亚洲精品乱码久久久久| 亚洲主播在线| 久久免费黄色| 欧美三日本三级三级在线播放| 国产精品久久久久一区二区| 国产亚洲第一区| 91久久线看在观草草青青| 亚洲网站在线看| 久久久久久9| 亚洲日本在线视频观看| 翔田千里一区二区| 欧美精品二区| 国产一区二区三区黄| 亚洲三级影片| 久久色在线观看| 亚洲日本成人| 久久久久久亚洲精品杨幂换脸| 欧美成人一区二区三区在线观看| 国产精品久久久久三级| 亚洲免费观看视频| 久久资源av| 亚洲特色特黄| 欧美激情第10页| 韩国在线视频一区| 中文av一区特黄| 欧美成人性网| 午夜精品视频在线| 欧美日韩一区免费| 亚洲国产三级网| 久久九九热re6这里有精品| 日韩一二在线观看| 裸体丰满少妇做受久久99精品 | 欧美午夜精品久久久久久久 | 久久久99精品免费观看不卡| 亚洲理论电影网| 久久美女性网| 国产在线视频不卡二| 国产精品日韩欧美大师| 一区精品在线播放| 欧美在线三级| 中文欧美在线视频| 欧美日本韩国一区二区三区| 亚洲电影av在线| 久久婷婷一区| 欧美伊人久久久久久久久影院| 欧美视频免费| 亚洲少妇中出一区| 亚洲精品综合| 欧美三级资源在线| 亚洲欧美高清| 亚洲欧美日韩国产中文在线| 国产精品女同互慰在线看| 中国成人黄色视屏| 日韩视频在线一区| 国产精品福利在线观看| 亚洲欧美制服另类日韩| 亚洲免费婷婷| 国产在线观看91精品一区| 久久久久国产一区二区三区| 久久久噜噜噜久久人人看| 在线日韩欧美| 亚洲激情另类| 欧美亚男人的天堂| 欧美中文字幕在线观看| 久久精品72免费观看| 一区在线播放| 麻豆国产精品777777在线| 久久av红桃一区二区小说| 在线日本成人| 亚洲精品日日夜夜| 国产精品午夜在线观看| 久久精品国产免费| 久久久久国产一区二区三区四区| 亚洲福利精品| 亚洲国产天堂久久国产91| 欧美伦理91| 性欧美暴力猛交另类hd| 性欧美videos另类喷潮| 亚洲人精品午夜| 夜色激情一区二区| 国产亚洲一区二区在线观看| 亚洲第一中文字幕| 国产精品久久久久久久久久免费 | 蜜臀久久99精品久久久久久9| 亚洲日本中文字幕| 一区二区三区视频在线| 国产一区二区三区的电影| 欧美国产第一页| 欧美日韩在线一区| 久久男人资源视频| 欧美日韩亚洲视频| 欧美一级视频| 欧美v亚洲v综合ⅴ国产v| 亚洲一区二区伦理| 久久久国产精品一区| 在线午夜精品自拍| 久久精品日韩| 亚洲综合色网站| 鲁大师成人一区二区三区| 男同欧美伦乱| 午夜精品久久久久久99热| 麻豆九一精品爱看视频在线观看免费| 亚洲午夜精品久久| 免费的成人av| 久久久久一本一区二区青青蜜月| 欧美日韩成人综合| 老牛国产精品一区的观看方式| 欧美日韩精品一区二区在线播放| 老牛嫩草一区二区三区日本| 国产乱码精品一区二区三区五月婷 | 亚洲精品美女久久久久| 国产亚洲综合精品| 99在线精品观看| 亚洲欧洲日本专区| 久久久久国产一区二区| 欧美在线免费| 国产精品久久久久av免费| 亚洲精品久久7777| 亚洲国产高清自拍| 看片网站欧美日韩| 久久夜色精品亚洲噜噜国产mv| 国产精品入口夜色视频大尺度| 一本大道久久a久久精品综合 | 一本综合久久| 欧美激情一区二区| 亚洲国产精品www| 亚洲电影自拍| 久久五月天婷婷| 麻豆精品视频| 在线观看91精品国产入口| 午夜欧美大片免费观看| 欧美在线播放视频| 国产婷婷一区二区| 午夜久久影院| 久久久久久夜| 在线视频成人| 欧美成人嫩草网站| 欧美国产视频日韩| 亚洲精品影院| 欧美日韩理论| 亚洲综合精品自拍| 久久精品视频在线观看| 狠狠噜噜久久| 免费欧美日韩国产三级电影| 亚洲风情亚aⅴ在线发布| 亚洲每日更新| 欧美色欧美亚洲高清在线视频| 99精品视频免费观看| 午夜视频在线观看一区| 狠狠色狠狠色综合人人| 欧美成人在线免费观看| 一本色道88久久加勒比精品| 午夜精品久久久久久久久久久久久| 国产欧美在线看| 久久九九国产精品| 亚洲人成网站777色婷婷| 亚洲欧美激情四射在线日| 国产一区二区三区四区hd| 猛干欧美女孩| 午夜精品久久久久久久99水蜜桃 | 亚洲欧美精品在线观看| 国产麻豆9l精品三级站| 香蕉成人久久| 欧美不卡三区| 亚洲综合色激情五月| 影音先锋亚洲视频| 欧美精品高清视频| 亚洲欧美一区二区三区在线| 亚洲第一在线综合在线| 欧美一区中文字幕| 日韩视频在线免费观看| 国产午夜精品全部视频在线播放 | 国内成+人亚洲| 欧美高清不卡| 欧美在线观看网址综合| 亚洲青色在线| 久久在线免费观看| 亚洲视频播放| 在线观看亚洲视频| 国产精品影音先锋| 欧美人与禽猛交乱配| 久久久久一区二区| 亚洲女人天堂av| 亚洲美女少妇无套啪啪呻吟| 美日韩精品免费| 欧美综合77777色婷婷| 一区二区欧美日韩视频|