以下是引用吹水佬在2020-2-20 09:33:06的发言:
没用过 Windows server 版本,情况不明
按理能手动“以管理员身份运行”成功,用代码自动运行也应该可以,是否系统登录身份也要有管理权?
另:用 regsvr32 注册的DLL,自身就有注册函数:
示例:
FUNCTION _RegServer(szName, ddFlags)
IF INLIST(ddFlags, 1, 2) AND !FILE(szName)
MESSAGEBOX(szName + " 文件不存在")
RETURN .F.
ENDIF
LOCAL szCLSID, ddRet
DO CASE
* 检测是否已注册, szName为DLL文件名
CASE ddFlags == 0
DECLARE LONG CLSIDFromProgID IN Ole32 STRING@, STRING@
szCLSID = REPLICATE(0h00, 16)
ddRet = CLSIDFromProgID(STRCONV(szName + 0h00, 5), @szCLSID)
CLEAR DLLS "CLSIDFromProgID"
RETURN (ddRet == 0)
* 注册
CASE ddFlags == 1
DECLARE LONG DllRegisterServer IN (szName)
ddRet = DllRegisterServer()
CLEAR DLLS "DllRegisterServer"
* 卸载
CASE ddFlags == 2
DECLARE LONG DllUnregisterServer IN (szName)
ddRet = DllUnregisterServer()
CLEAR DLLS "DllUnregisterServer"
OTHERWISE
MESSAGEBOX("调用_RegServer()的参数无效")
RETURN .F.
ENDCASE
IF (ddRet != 0)
MESSAGEBOX("调用_RegServer()失败,试用管理员身份运行。")
ENDIF
RETURN (ddRet == 0)
ENDFUNC
我手动注册成功后,?_RegServer("d:\gpycs\eloamcom.dll", 0)返回.F.
https://meta.box.
这是官网控件,有空麻烦看看,多谢版主!
[此贴子已经被作者于2020-2-20 20:33编辑过]