国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 應用 > 軟件技巧 > 正文

一種利用Windows未公開函數實現機器上所做的各種操作

2024-07-15 01:59:38
字體:
來源:轉載
供稿:網友
這里介紹一種利用Windows未公開函數實現這個功能的方法。

  在Windows下有一個未公開函數SHChangeNotifyRegister可以把你的窗口添加到系統的系統消息監視鏈中,該函數在Delphi中的定義如下:

  Function SHChangeNotifyRegister(hWnd,uFlags,dwEventID,uMSG,cItems:LongWord;
  lpps:PIDLSTRUCT):integer;stdcall;external 'Shell32.dll ' index 2;

  其中參數hWnd定義了監視系統操作的窗口得句柄,參數uFlags dwEventID定義監視操作參數,參數uMsg定義操作消息,參數cItems定義附加參數,參數lpps指定一個PIDLSTRUCT結構,該結構指定監視的目錄。

  當函數調用成功之后,函數會返回一個監視操作句柄,同時系統就會將hWnd指定的窗口加入到操作監視鏈中,當有文件操作發生時,系統會向hWnd發送uMsg指定的消息,我們只要在程序中加入該消息的處理函數就可以實現對系統操作的監視了。

  如果要退出程序監視,就要調用另外一個未公開得函數SHChangeNotifyDeregister來取消程序監視。

  下面是使用Delphi編寫的具體程序實現范例,首先建立一個新的工程文件,然后在Form1中加入一個Button控件和一個Memo控件,

  程序的代碼如下:

程序代碼

復制代碼代碼如下:
  unit Unit1;
  interface
  uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,shlobj,Activex;
  const
  SHCNE_RENAMEITEM = $1;
  SHCNE_Create = $2;
  SHCNE_Delete = $4;
  SHCNE_MKDIR = $8;
  SHCNE_RMDIR = $10;
  SHCNE_MEDIAInsertED = $20;
  SHCNE_MEDIAREMOVED = $40;
  SHCNE_DRIVEREMOVED = $80;
  SHCNE_DRIVEADD = $100;
  SHCNE_NETSHARE = $200;
  SHCNE_NETUNSHARE = $400;
  SHCNE_ATTRIBUTES = $800;
  SHCNE_UpdateDIR = $1000;
  SHCNE_UpdateITEM = $2000;
  SHCNE_SERVERDISCONNECT = $4000;
  SHCNE_UpdateIMAGE = $8000;
  SHCNE_DRIVEADDGUI = $10000;
  SHCNE_RENAMEFOLDER = $20000;
  SHCNE_FREESPACE = $40000;
  SHCNE_ASSOCCHANGED = $8000000;
  SHCNE_DISKEVENTS = $2381F;
  SHCNE_GLOBALEVENTS = $C0581E0;
  SHCNE_ALLEVENTS = $7FFFFFFF;
  SHCNE_INTERRUPT = $80000000;
  SHCNF_IDLIST = 0;
  // LPITEMIDLIST
  SHCNF_PATHA = $1;
  // path name
  SHCNF_PRINTERA = $2;
  // printer friendly name
  SHCNF_DWORD = $3;
  // DWORD
  SHCNF_PATHW = $5;
  // path name
  SHCNF_PRINTERW = $6;
  // printer friendly name
  SHCNF_TYPE = $FF;
  SHCNF_FLUSH = $1000;
  SHCNF_FLUSHNOWAIT = $2000;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 井陉县| 孙吴县| 台东市| 茂名市| 宣城市| 怀安县| 仁布县| 城步| 盐亭县| 永修县| 平度市| 麻栗坡县| 油尖旺区| 库伦旗| 内丘县| 博湖县| 秦安县| 湄潭县| 宜昌市| 萨嘎县| 徐水县| 北碚区| 石楼县| 共和县| 西畴县| 黄骅市| 新平| 汪清县| 辽源市| 如皋市| 永年县| 晋中市| 大洼县| 桃园市| 洪雅县| 左云县| 景宁| 静宁县| 大邑县| 孟连| 井陉县|