我正在编写一个应用程序,为需要将数据保存到程序文件(对于相关程序)的程序下载和安装插件.现在这在xp和vista上工作正常,uac已禁用,但由于虚拟文件夹,它在普通vista上失败.
如果每次应用程序启动时都需要请求管理员权限,那么如何解决这个问题呢?
Ps程序是用c ++编写的,相对于2005年
编辑:文件系统虚拟文件夹:http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx
如何在VB.NET中添加和嵌入清单文件,以便为我的应用程序添加UAC支持?
我正在使用Windows 7和Tortoise SVN.(虽然同样适用于Vista)
例如,如果我想通过使用上下文菜单选项"SVN Checkout"来下载存储库,并且想要检出文件inetpub文件夹(受UAC保护),则由于UAC而无法使用龟尾SVN并给出"拒绝访问"错误.
如何通过"管理模式"中的上下文菜单运行Tortoise SVN?
谢谢,
短发
当我在标准用户模式下运行此代码时,我得到了所有驱动器,包括网络驱动器.以管理员身份运行时,网络驱动器不会出现在列表中.是什么赋予了?
List<string> drives = Environment.GetLogicalDrives().ToList();
StringBuilder driveList = new StringBuilder();
foreach (string drive in drives)
driveList.AppendLine(drive);
MessageBox.Show(driveList.ToString());
Run Code Online (Sandbox Code Playgroud)
这是在Windows 7下运行的.网络驱动器来自Novell.代码是使用.NET 4框架用C#编写的.
我想构建一个简单的工具,将UAC清单文件附加到给定的exe文件,代码正常工作但没有任何反应.我必须说当我使用mainfest文件手动编译时,它可以正常工作.
procedure TForm1.Button1Click(Sender: TObject);
var
myRes:THandle;
test:PChar;
begin
test:='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+#13#10+
'<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">'+#13#10+
'<assemblyIdentity version="1.1.1.1"'+#13#10+
'processorArchitecture="X86"'+#13#10+
'name="[APP TO TEST WITH]"'+#13#10+
'type="win32"/>'+#13#10+
'<description>elevate execution level</description>'+#13#10+
'<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">'+#13#10+
'<security>'+#13#10+
'<requestedPrivileges>'+#13#10+
'<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>'+#13#10+
'</requestedPrivileges>'+#13#10+
'</security>'+#13#10+
'</trustInfo>'+#13#10+
'</assembly> ';
myRes := BeginUpdateResource('testuac.exe',false);
UpdateResource(myRes,MakeIntResource(24),'1',1033,test,length(test));
EndUpdateResource(myres,false);
ShowMessage(SysErrorMessage(GetLastError));
end;//Compiled with Delphi 7
Run Code Online (Sandbox Code Playgroud)
代码工作的资源出现在exe中,但它不起作用.任何想法为什么?
可能重复:
如何检查写入目录或文件的权限?
我试图弄清楚是否可以确定所请求的文件目录是否可写并且当前用户是否具有写入该文件夹的正确权限.
到目前为止,我正在通过创建新目录,将临时文件写入其中并将其删除(临时文件和目录)来测试所请求的路径.
此操作非常有问题,因为该目录可能已经存在并且其所有旧信息都可能丢失(当目录删除时).
任何的想法 ??TX ...
我有一个小的Delphi应用程序,它将一个密钥写入LOCAL_MACHINE注册表.当我在具有管理员权限的用户的Windows 7专业版上运行它时,它无法写入值,但是当我右键单击并选择"以管理员身份运行"时,它确实有效.
代码是:
var
reg : TRegistry;
begin
Result := false;
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if (reg.OpenKey('Software\YepYep', TRUE)) then
Begin
try
reg.WriteString('ProductKey', Trim(ProductKey));
Result := true;
finally
reg.CloseKey();
end;
End;
reg.Free;
end;
Run Code Online (Sandbox Code Playgroud)
计算机UAC设置设置为"仅在程序尝试更改计算机时通知"(第二低级别).当我把它归结为"从不通知"它也可以工作(不需要使用"以管理员身份运行").
如果您对可能存在的问题有任何想法/想法,我将不胜感激.
谢谢.
我搜索了许多类似的问题,但无法解决我的问题.
我想在文件中写一些东西,这给了我错误.
我的代码
try {
File f = new File(file_name);
f.createNewFile();
//System.out.println("Hello");
f.setWritable(true);
FileWriter fstream = new FileWriter(f);
BufferedWriter out = new BufferedWriter(fstream);
ListIterator<String> itr = account.listIterator();//account is a List object
while (itr.hasNext()) {
String element = itr.next();
out.write(element);
out.newLine();
}
out.close();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
错误是
java.io.IOException: A required privilege is not held by the client
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at com.example.Test.main(Test.java:25)
Run Code Online (Sandbox Code Playgroud)
此错误仅在以下file_name
情况下出现,C:\\Test.txt
但是当我将此file_name
值更改为C:\\New Folder\\Test.txt
(New Folder …
我已禁用UAC并在python中运行我的脚本.
command = "abcd.exe"
subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()
Run Code Online (Sandbox Code Playgroud)
此外,我将应用程序abcd.exe
从其属性设置为以管理员身份运行.
然后我收到以下错误:
WindowsError:[错误740]请求的操作需要提升
我正在尝试使用CreateSymbolicLinkW()函数(来自Kernel32.dll)来创建符号链接.
在相应的计算机上(Win7 Pro x64 SP1):
现在的情况是:
最后一个案例是实际问题.GetLastError返回的错误是:1314(="客户端未保留所需的权限").
为什么在没有升级的进程中管理员用户失败,而它适用于未高效的shell中的任何非管理员用户?
我的代码旨在由任何类型的用户运行,最好是在一个不高的过程中.要求管理员用户提升流程作为一种解决方法是我在任何情况下都要避免的.
使用Windows shell btw中的MKLINK命令也可以重现相同的行为(非升级shell中的admin用户失败,而非升级shell中的所有非管理员用户都失败).
我非常感谢任何想法/建议.提前谢谢了!
编辑:Python 2.7的示例代码:
import ctypes
CreateSymbolicLinkW = ctypes.WinDLL("Kernel32").CreateSymbolicLinkW
CreateSymbolicLinkW(u"c:\\linktest\\testlink.txt", u"c:\\linktest\\testtarget.txt",0)
print(ctypes.WinDLL("Kernel32").GetLastError())
Run Code Online (Sandbox Code Playgroud)