如何检查你是否有权限运行exe文件

发布于 2025-01-03 19:10:30 字数 306 浏览 1 评论 0原文

C# .net 框架 4.0 有没有一种简单的方法来检查您是否有权运行文件?

在执行此操作之前:

//e.g. Press a button
....
string exePath = "D:\something\something.exe";
Process.Start(exePath);

我想检查用户是否有权运行该文件? 当我调用 Process.Start 函数时,窗口会弹出一个消息框,并提示我无权运行此应用程序,并且此应用程序是“D:\something\something.dat”而不是 .exe?

C# .net Framework 4.0
Is there a simple way to check if you have the rights to run a file?

Before i do this:

//e.g. Press a button
....
string exePath = "D:\something\something.exe";
Process.Start(exePath);

i would like to check if the user has the rights to run that file?
When i'm making the function call Process.Start, windows popsup with a messagebox and says that i'm not authorized to run this application and this application is "D:\something\something.dat" and NOT .exe?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁与争疯 2025-01-10 19:10:30

如何检查您是否有权限运行exe文件?

EAFP:请求宽恕比获得许可更容易

因此,您可以使用 try/catch 块包围代码:

try {
    Process.Start(path);
} catch (Win32Exception ex) {
    // ...
}

并且可以使用 Win32Exception.NativeErrorCode 访问与此异常关联的错误代码的数字表示形式。

有关错误代码的详细信息,请查看 Win32 系统错误代码

How to check if you have permission to run a exe file?

EAFP: It is Easier to Ask Forgiveness than it is to get Permission.

So, you can surround your code with try/catch block:

try {
    Process.Start(path);
} catch (Win32Exception ex) {
    // ...
}

and you can use Win32Exception.NativeErrorCode to access the numeric representation of the error code associated with this exception.

For more information about the error codes, check out Win32 System Error Codes.

忆依然 2025-01-10 19:10:30

尝试使用 try catch 包围 Proccess.Start

//e.g. Press a button
....
    string exePath = "D:\something\something.exe";
    try
    {
        Process.Start(exePath);
    } catch (Exception e) {
        // No permissions or file not found?
    }

即可完成这项工作。

Try surrounding Proccess.Start with try catch:

//e.g. Press a button
....
    string exePath = "D:\something\something.exe";
    try
    {
        Process.Start(exePath);
    } catch (Exception e) {
        // No permissions or file not found?
    }

that'll do the job.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文