ShellExecute如何不显示窗口?

nibani 2003-05-31 05:53:42
想调用regsvr32.exe来注册我的dll文件。
::ShellExecute(NULL,"open","regsvr32.exe ","test.dll",NULL,SW_HIDE);
在98下可以不弹出注册成功的窗口。但在2000下要弹出来。
如果改成
::ShellExecute(NULL,"open","regsvr32.exe ",pszDllName,"/s",SW_HIDE);
在2000下仍然弹出注册成功的窗口。
有什么方法不弹出这个窗口?
...全文
557 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
constantine 2003-06-06
  • 打赏
  • 举报
回复
gz
ghiewa 2003-06-06
  • 打赏
  • 举报
回复
我也想知道呢呢
nibani 2003-06-01
  • 打赏
  • 举报
回复
楼上的方法98可以,2000不行!
Sephil 2003-06-01
  • 打赏
  • 举报
回复
同意楼上
yyszh 2003-06-01
  • 打赏
  • 举报
回复
用如下格式即可(即加s-开关):
regsvr32.exe /s- dllname
nibani 2003-05-31
  • 打赏
  • 举报
回复
找到了tregsvr.exe的文件,可是还是没有原代码呀?
给一个具体的路径吧。
GodBirdFlying 2003-05-31
  • 打赏
  • 举报
回复
是没错就是 tregsvr.exe
RomanticProgrammer 2003-05-31
  • 打赏
  • 举报
回复
Tregsvr.exe
nibani 2003-05-31
  • 打赏
  • 举报
回复
是叫TRegsrvr32.exe吗?我的BCB5的example中怎么没有?
RomanticProgrammer 2003-05-31
  • 打赏
  • 举报
回复
当然需要编译并用这段代码注册你的组件。
nibani 2003-05-31
  • 打赏
  • 举报
回复
大家都吃饭去了吗?
做过的这个问题应该很简单的呀?
RomanticProgrammer 2003-05-31
  • 打赏
  • 举报
回复
::ShellExecute(NULL,"open","regsvr32.exe ","test.dll",NULL,SW_HIDE);
是不让regsvr32.exe程序的console界面弹出来,成功窗口还是要弹出来的。
在98下会不会弹出来我认为是一个系统的漏洞而已。

你想实现“偷偷摸摸”注册组件就主要做。
在BCB的Demo下面找到TRegsrvr32.exe的源代码,然后拷贝到你的工程。

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧