首页 新闻 会员 周边 捐助

C#(Winform) 怎么关闭指定的文件夹或禁止打开指定的文件夹(是文件夹不是可执行文件)

0
悬赏园豆:20 [已解决问题] 解决于 2016-07-28 08:02

通过C#(Winform,XP系统)代码定时检测某个文件夹是否被打开,如果打开则自动关闭,怎样实现自动关闭文件夹的功能或者实现禁止打开文件夹的功能。非常感谢!

通过API接口中SendMessage函数在Win7系统环境已经实现,XP系统不行

凭栏处的主页 凭栏处 | 初学一级 | 园豆:45
提问于:2016-07-26 18:15
< >
分享
最佳答案
1

 [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]
        static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

 

[DllImport("User32.dll", EntryPoint = "FindWindow")]
        public static extern int FindWindow(string lpClassName, string lpWindowName);

 

 

 int hwCurr = FindWindow(null, "进程中应用程序名称");
ShowWindow((IntPtr)hwCurr,0);

凭栏处 | 初学一级 |园豆:45 | 2016-07-28 07:58
其他回答(1)
-1

请定义一下何为文件夹打开。

收获园豆:20
爱编程的大叔 | 园豆:30844 (高人七级) | 2016-07-27 09:26

我编写一个程序在后台运行,实时监控操作电脑的人,当发现操作电脑的人打开了我监控的禁止打开的文件夹后,程序立即自动给关闭,不知这么说明白了没有?

支持(0) 反对(0) 凭栏处 | 园豆:45 (初学一级) | 2016-07-27 09:32

@凭栏处: 不明白,打开文件夹是没有任何标志的,你想太多了。

书多读点还是好处的,起码你就不会一直在这儿纠缠一件Mission Impossible.

 

这样说不够明白,我就说得明白一点吧。

1、你说的是通用的打开文件夹,而不是说禁止微软的资源管理器打开文件夹,

你知道Windows下有多少类资源管理器软件吗?

2、你自己编一个C# Winform程序,也可以打开(我还是不懂啥叫打开)文件夹,

看到里面有啥文件。

3、所谓的文件夹只是一个指针,一个链接地址,你要真想完成这个目标,估计你得学习C++,

Windows核心编程,资质好点的话,学个十多年,也许就知道可以不可以做到这件事了。

4、你的初始需求也许只是不让人看到某个文件夹,想歪了方向(这就是需要看书涨姿势),你又不说原始需求,就在一个错误的方向上一直问,呵呵。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2016-07-27 09:32

@爱编程的大叔: 

看这两句代码是不是可以明白一点?

int hwnd = FindWindow(null, strTitle);

SendMessageA(hwnd, 0x10, 0, 0);

支持(0) 反对(0) 凭栏处 | 园豆:45 (初学一级) | 2016-07-27 10:33

@凭栏处: 好吧,服了你了,自己慢慢意淫吧。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2016-07-27 10:49

已经实现

 [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]
        static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

 

[DllImport("User32.dll", EntryPoint = "FindWindow")]
        public static extern int FindWindow(string lpClassName, string lpWindowName);

 

 

 int hwCurr = FindWindow(null, "进程中应用程序名称");
ShowWindow((IntPtr)hwCurr,0);

支持(0) 反对(0) 凭栏处 | 园豆:45 (初学一级) | 2016-07-27 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册