【发布时间】:2013-01-25 04:31:48
【问题描述】:
已解决:看看后面的帖子
任务:重命名一个名为 TabletFilter.sys 的文件(它是我的图形输入板驱动程序),因为 Windows 8(我的操作系统)应用程序需要一个其他驱动程序,然后是 photoshop 的引脚压力。我想编写一个 c++ 程序,将所有驱动程序文件重命名为 .old
基于 cplusplus.com 的重命名示例的代码
#include <stdio.h>
int main ()
{
int result;
char oldname[] ="TabletFilter.sys";
char newname[] ="TabletFilter.sys.old";
result= rename( oldname , newname );
if ( result == 0 )
puts ( "File successfully renamed" );
else{
result= rename( newname , oldname );
if( result == 0)
puts ( "File successfully renamed" );
else
perror( "Error renaming file" );
}
return 0;
}
我也尝试过“以管理员身份运行”,但还是得到了
Error renaming file: No such file or directory
我能做什么?
编辑:
该文件肯定在同一个文件夹中...我将它们都复制到那里...即使在 c:\windows\ 我也尝试过...并且我使用了清单
Executable: TabletRenameDriver.exe
Manifest: TabletRenameDriver.exe.manifest
Sample application manifest file:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="TabletRenameDriver"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
我试过uiAccess真假。
是的,我的权利有问题 驱动程序已加载,但我仍然能够更改他的名字......不知道为什么,但它是可能的。我试过了。我想用 C++ 解决这个问题,所以请不要告诉我有很多脚本语言可以很好地处理这个问题;-) 我知道这个
【问题讨论】:
-
你在哪里运行这个?文件名不完全符合文件夹名称,所以我想它正在寻找当前工作目录中的文件。在这种情况下,在代码中使用文件的完整路径名可能更安全。
-
在我开始询问之前,我尝试了两个版本。我将 exe 放入与 TabletFilter.sys 相同的文件夹中。
-
您不需要 C++ 程序来重命名文件。脚本将完成这项工作。
-
我想用快捷键+plugout/in设备换驱动
-
有很多方法是行不通的。从要求 Wow64DisableWow64FsRedirection() 开始,此尝试提前失败的可能原因。接下来是 UAC,它会阻止您访问此目录。您的反恶意软件可以阻止您弄乱驱动程序。需要卸载原始驱动程序,这可能会导致此代码的用户模式部分崩溃。并且需要以某种方式启动新驱动程序。成功的几率很低。