如,文件夹名称是:568
                  22
                  547
当打开含有“数字”名称的文件夹或纯数字的文件夹时,自动关闭该文件夹, 就是不想让用户打开含有数字的文件夹
禁止
这个禁止,不光指我的电脑,c盘,资源管理器的打开方式
也包括禁止其它程序的浏览,如qq的传送文件时,不也要浏览文件夹,这种方式也要禁止最好有代码

解决方案 »

  1.   

    下策:file system filter driver
      

  2.   


    不包括cmd浏览
    另外,我想说的是,没要求哪么高,其它程序浏览时,会弹出一个“打开”的窗口,只要打开窗口浏览到含有数字的文件夹时,把它关掉就行
      

  3.   

    你可以用RegisterShellHookWindow监视窗口的创建,然后检查窗口的标题,窗口的类名等
      

  4.   

    http://blog.csdn.net/lactoferrin/article/details/7212893
    用到了RegisterShellHookWindow监视窗口的创建
      

  5.   

    这不都差不多吗,就是一堆api
      

  6.   

    网上找了一个
    http://blog.csdn.net/wojiaosha123/article/details/4354619
      

  7.   

    那个是告诉你怎么用RegisterShellHookWindow的,具体的功能要你自己实现
    比如资源管理器浏览文件夹的窗口的标题就是文件夹的名字,类名是CabinetWClass,比较一下即可
      

  8.   

    还有窗口的类名
    资源管理器文件夹的是CabinetWClass,qq的是TXGuiFoundation
      

  9.   

    仅支持我的电脑的文件夹打开,QQ发送文件的时候并未创建新窗口。
    http://temp.itsong.com/RegisterShellHook.rarprocedure TMainForm.WindowCreated(var message: TMessage);
    var
      classname: array[0..254] of char;
      windowname: array[0..254] of char;
      { 检测字串是否包含数字 }
      function CheckNumContained(const s: string): Boolean;
      var
        i: Integer;
      begin
        for i := 1 to Length(s) do
        begin
          if s[i] in ['0'..'9'] then
          begin
            Result := True;
            Exit;
          end;
        end;
        Result := False;
      end;
    begin
      case message.WParam of
        HSHELL_WINDOWCREATED:
          begin
            FillChar(classname[0], 255, 0);
            FillChar(windowname[0], 255, 0);
            GetClassName(message.LParam, classname, 255);
            GetWindowText(message.LParam, windowname, 255);
            mmoLog.Lines.Add('Window created name:' + windowname + ' class:' + classname);
            if classname = 'CabinetWClass' then
            begin
              if CheckNumContained(windowname) then
              begin
                SendMessage(message.LParam, WM_CLOSE, 0, 0);
              end;
            end;
          end;
      end;
    end;
      

  10.   

    挂全局钩子,hook CreateFileW吧。
      

  11.   

    能否取到里面的edit的文本?
    另外,你的代码要改成 PostMessage(message.LParam,WM_close,0,0);才有效
    但为什么只对c盘和桌面的文件夹有效果,e盘的数字文件夹没效果?
      

  12.   

    那你就用用户模式的hook或者过滤驱动程序
      

  13.   

    算了,你把邮箱发过来我给你用user mode hook做一个
      

  14.   

    [email protected]
    希望能达到一楼要求?
      

  15.   

    我的版本是delphi xe2 update 3
      

  16.   

    大多数人都在用d7,delphi xe2这是什么版本,开发苹果的啊? 
      

  17.   

    什么消息,我又给你发了一个,原来多hook了一个东西会导致某些进程不能启动