C# 打开特定文件夹时自动注销(家庭作业)

C# 打开特定文件夹时自动注销(家庭作业),c#,C#,下面的代码从电脑上注销。但我想要的是,当我单击特定文件夹时,例如:E:\Picture,Windows应该注销 我不知道如何在代码中加入这样的条件。谁能给我指出正确的方向吗 记录的代码: using (Process proc = new Process()) { proc.StartInfo.FileName = Path.Combine(Environment.SystemDirectory, "shutdown.exe");

下面的代码从电脑上注销。但我想要的是,当我单击特定文件夹时,例如:
E:\Picture
,Windows应该注销

我不知道如何在代码中加入这样的条件。谁能给我指出正确的方向吗

记录的代码:

using (Process proc = new Process())
            {
                proc.StartInfo.FileName = Path.Combine(Environment.SystemDirectory, "shutdown.exe");
                proc.StartInfo.Arguments = "-l";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();
            }

因为这是家庭作业,这里有一些出发点

  • 在explorer.exe上创建本地钩子

  • 了解是否可以使用WinAPI在资源管理器上查找进程信息

  • 执行关机


  • 你说的“打开文件夹”是什么意思?如果你想制作一些安全工具,最好使用另一种方法。代码与你的要求无关。您的问题不是如何执行
    shutdown.exe
    (特别是因为有用于此的API),而是检测到Windows资源管理器“打开”了一个文件夹。如果不实现某种Shell扩展,就无法实现这一点。在任何情况下,这样的操作都会比无意义的操作更糟糕-它会被认为是恶意的。我想说的是,“点击文件夹”程序在检测到路径不可访问后应该注销。。。!!您的问题是“如何检测用户试图打开某个目录?”?那么你能定义“开放”吗?不,你不想像这样使用你自己的安全系统。你真的真的不知道。所以“打开”是指“点击”?如果用户使用键盘导航到目录怎么办?还是命令提示符?还是OpenFileDialog?还是本机的
    OpenFile()
    Win32调用?您的应用程序在什么上下文中运行,您希望在哪些会话中检测对给定目录的访问?同样,您真的,真的不想自己这样做,当然也不想从用户级应用程序代码中这样做。只需使用NTFS权限。