DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tino0914
今日帖子: 20
在线用户: 30
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/3 23:42:57
标题:
批处理文件和cmd执行结果不一样? 浏览:1037
加入我的收藏
楼主: 遇到个奇怪的问题,想要注册2个dll文件。
用cmd管理员模式没问题
C:\Windows\system32>regsvr32 d:\npaplayer.dll

但是把他写进批处理文件中
regsvr32  npaplayer.dll

虽然说2者都不报错,且都是提示注册成功。
但是经过了我多次的实验,我发现只有通过cmd管理员模式运行的注册才使程序真正运行,而批处理文件的却没问题反应。不懂是为啥道理?
----------------------------------------------
-
作者:
男 vkow (vkow) ★☆☆☆☆ -
普通会员
2020/2/3 23:45:43
1楼: regsvr32 需要管理员权限。

所以,你的批处理文件也需要管理员权限运行。否则,也会执行,只不过不会注册成功,也不会报错。
----------------------------------------------
-
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/4 11:01:07
2楼: 嗯,那要怎么操作呢?在批处理文件中怎么写?
----------------------------------------------
-
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/4 12:02:55
3楼: 或者说通过管理员模式编程实行注册dll,也可以的。
----------------------------------------------
-
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/5 0:37:23
4楼: 怎么样用管理员的方式去注册dLL呢
----------------------------------------------
-
作者:
男 jackalan (nVicen) ★☆☆☆☆ -
盒子活跃会员
2020/2/5 11:01:24
5楼: function RunAsAdmin(const sFile: string; const sParameters: string = ''; Handle: HWND = 0):Boolean;
var
  seiInfo : TShellExecuteInfo;
begin
  FillChar(seiInfo, SizeOf(seiInfo), 0);

  with seiInfo do
  begin
    cbSize := SizeOf(seiInfo);
    Wnd    := Handle;
    fMask  := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
    lpVerb := 'runas';
    nShow  := SW_SHOWNORMAL;
    lpFile := PWideChar(sFile);
    lpParameters := PWideChar(sParameters);
  end;

  Result := ShellExecuteEx(@seiInfo);
end;

使用方法:
RunAsAdmin('regsvr32.exe', 'd:\npaplayer.dll');
----------------------------------------------
简单做人,认真做事。
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/6 17:21:36
6楼: 楼上的兄弟,我试过,不行,还是会弹出窗口,要你让你确认好之后才可以注册成功,但我的目的就是不想让用户看到这个窗口。我试过用了regsvr32 /u 好像也不行
----------------------------------------------
-
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/6 17:27:43
7楼: 写错了。是
RunAsAdmin('regsvr32.exe /s', 'd:\npaplayer.dll');
----------------------------------------------
-
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/7 13:51:49
8楼: 但是依然没有用啊
----------------------------------------------
-
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/8 20:29:10
9楼: 有什么其他办法
----------------------------------------------
-
作者:
男 zhouying (zy) ★☆☆☆☆ -
盒子活跃会员
2020/2/16 22:17:41
10楼: 有兄弟知道吗?
----------------------------------------------
-
作者:
男 jackalan (nVicen) ★☆☆☆☆ -
盒子活跃会员
2020/2/17 10:43:19
11楼: 去搜索CPAU.EXE或者LSRUNASE,把管理员登陆带进行去执行注册。
建议这种注册放安装程序里,安装程序一般都要申请管理员权限。
----------------------------------------------
简单做人,认真做事。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行437.5毫秒 RSS