System.ComponentModel.Win32Exception:“访问被拒绝” - c#

时间:2018-03-28 08:54:26

标签: c#

今天我尝试为gta sa编写一个简单的培训师。

该程序应定义玩家的位置

由于某些原因启动此程序后,我遇到了这样的错误:

public static void AddIfNotNullAndInAdvancedSearch(
        this List<TreeDocument> docs,
        TreeDocument value,
        params SearchModel[] searchCriteria)
    {
        var filteredSearchCriteria = searchCriteria
            .Where(x => x.SearchResult != "No Match" &&
                        x.SearchResult != "Empty")
            .ToList();

        if (filteredSearchCriteria.Any() && 
            filteredSearchCriteria.All(x => x.SearchResult == "Match"))
        {
            docs.Add(value);
        }
    }

为什么会这样?

我做错了什么?

可能需要以root身份运行吗?或者我不明白......但错误仍然存​​在

完整代码:

System.ComponentModel.Win32Exception: "Access is denied"

你能帮助我吗?

P.S抱歉我的英文不好:D

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容(替换)在项目的属性下添加app.manifest:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="<yourProjectName>" />
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
      </requestedPrivileges>
      <applicationRequestMinimum>
        <defaultAssemblyRequest permissionSetReference="Custom" />
        <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>
</asmv1:assembly>

然后在项目属性中引用清单 - &gt;申请 - &gt;在图标下方并在清单文本框中显示:Properties \ app.manifest

通过这种方式,您的应用程序确实需要您拥有的最高权限。启动调试时,Visual Studio还会提示您以管理员身份重新启动以运行项目。

如果您仍然遇到此错误,则可能尝试写入受保护的内存。在其他进程内存中写入是一项艰巨的任务,可能会因安全原因而受到限制。