|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
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 需要管理员权限。
所以,你的批处理文件也需要管理员权限运行。否则,也会执行,只不过不会注册成功,也不会报错。
----------------------------------------------
-
|
作者: |
|
2020/2/4 11:01:07 |
2楼: |
嗯,那要怎么操作呢?在批处理文件中怎么写?
----------------------------------------------
-
|
作者: |
|
2020/2/4 12:02:55 |
3楼: |
或者说通过管理员模式编程实行注册dll,也可以的。
----------------------------------------------
-
|
作者: |
|
2020/2/5 0:37:23 |
4楼: |
怎么样用管理员的方式去注册dLL呢
----------------------------------------------
-
|
作者: |
|
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');
----------------------------------------------
简单做人,认真做事。
|
作者: |
|
2020/2/6 17:21:36 |
6楼: |
楼上的兄弟,我试过,不行,还是会弹出窗口,要你让你确认好之后才可以注册成功,但我的目的就是不想让用户看到这个窗口。我试过用了regsvr32 /u 好像也不行
----------------------------------------------
-
|
作者: |
|
2020/2/6 17:27:43 |
7楼: |
写错了。是 RunAsAdmin('regsvr32.exe /s', 'd:\npaplayer.dll');
----------------------------------------------
-
|
作者: |
|
2020/2/7 13:51:49 |
8楼: |
但是依然没有用啊
----------------------------------------------
-
|
作者: |
|
2020/2/8 20:29:10 |
9楼: |
有什么其他办法
----------------------------------------------
-
|
作者: |
|
2020/2/16 22:17:41 |
10楼: |
有兄弟知道吗?
----------------------------------------------
-
|
作者: |
|
2020/2/17 10:43:19 |
11楼: |
去搜索CPAU.EXE或者LSRUNASE,把管理员登陆带进行去执行注册。 建议这种注册放安装程序里,安装程序一般都要申请管理员权限。
----------------------------------------------
简单做人,认真做事。
|
|