admin 管理员组

文章数量: 887021

笔记本重装系统后,以前能运行的程序中的Ping程序不能运行了。查看代码,创建套接字失败。 RawSock = socket ( AF_INET, SOCK_RAW, IPPROTO_ICMP ) ; RawSock==INVALID_SOCKET 用DWORD dwError=WSAGetLastError();查看错误代码为10013. 网上查了一下,说是权限被拒绝。以一种访问权限不允许的方式访问套接字。 说有可能是端口或IP冲突。但我的代码不是这两种原因。 后来收到一篇文章,http://blog.csdn/huaweiheart1/article/details/5915680 原始套接字SOCK_RAW 和 WINDOW7 普通家庭版 但这个方法,没试,不知道对于Windows7旗舰版是否管用。因为Windows7旗舰版,我的用户已经是属于Administrators管理员组的。 后来搜索原始套接字+Window7旗舰版关键字,看到这篇http://bbs.csdn/topics/350102571 虽然,没给出解决办法,但下面有人说管理员身份运行VS,就可以。 试了一下,确实可以。本以为问题得到解决,但发现编译生成的.exe文件双击运行时候,依然会报Socket错误。 但有了思路,知道和管理员权限有关,就有找解决方法的方向了。 计算机管理-本地用户和组——Administrator,取消勾选“账户已禁用”,然后用系统的Administrator这个内置的管理员账户登录,直接双击生成的exe程序可以运行。 我自己建立的这个管理员账户,却不可以。 然后,在这个exe文件上想办法。 直接在exe文件,右键管理员运行,可以正常运行,没有socket错误。 但这样还是有点麻烦。 于是找到了最善的解决方法: 以管理员身份运行VS; 生成的exe文件,属性——兼容性——特权等级,勾选“以管理员身份运行此程序”,确定后,双击此exe文件,则可以正常运行,没有报socket错误;(不过,勾选之后,这个勾选项就变成了灰色不可选状态了,不能再更改回去了:这个是因为我点击了“更改所有用户的设置”。再次点击,然后把“以管理员身份运行此程序”的勾选去掉即可,就可以设置这个用户是以管理员身份运行此程序。) 调试的时候,也可以正常调试,没有socket错误。

//创建原始套接字
m_s=socket(AF_INET,SOCK_RAW,IPPROTO_IP);

由于SOCK_RAW要管理员权限,在win系统中, 无法创建成功,以管理员方式运行也不行.

解决方法1:用管理员权限启动VS2012, 重新编译.。

解决方法2:http://jingyan.baidu/article/90808022a46db9fd90c80f6d.html

其他方法:程序解决,望各位大大告诉



本文标签: 旗舰版 原始 代码