CREATE PROCEDURE [dbo].[sp_MyCheckSN]
@ENCRYPTION nvarchar(255) out,@type int out
AS
DECLARE @object int
DECLARE @hr int
DECLARE @property varchar(255)
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)
-- 建立一個COM對象
EXEC @hr = sp_OACreate 'SecuritySN.CSecurity', @object OUT
IF @hr <> 0
BEGIN
set @ENCRYPTION='err'
RETURN
END
-- 調用方法
declare @aa nvarchar(255) -- 最終返回的值
EXEC @hr = sp_OAMethod @object, 'GetDiskSN', @aa out
IF @hr <> 0
BEGIN
set @ENCRYPTION='err'
RETURN
END
else
begin
set @Type=8 -- 指明註冊讀取方式
end
---------------------
if @aa=''
begin
-- 再讀一次
EXEC @hr = sp_OAMethod @object, 'GetSNByAPI', @aa out
if @hr<>0
begin
set @ENCRYPTION='err'
RETURN
end
else
begin
set @Type=5 -- 指明是哪種方式讀取註冊號的
end
end
-- 銷毀此對象
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
set @ENCRYPTION='err'
RETURN
END
set @ENCRYPTION=@aa
GO