在部署一个政府OA系统中的邮件模块时,由于用户全都是五六十岁的老人,邮件客户端统一采用Outlook Express,甲方项目经理要求邮件客户端的配置实现全自动化,非常头疼,好不容易才解决,来此与大家分享。
输入分析:
要配置邮件客户端,以下几个输入是必须由用户来完成的:
1.用户名,即PREFIX,@之前的内容
2.域
3.输入密码
存储分析:
用户输入数据的存储位置如下:
1.用户名——存于注册表(明文)
2.域——存于注册表(明文)
3.输入密码——存于注册表(密文)
技术选取:
有了以上两步需求,接下来就开始技术选择。由于必须访问注册表,所以排除所有的web技术,ActiveX成本较高,也排除
.NET Winform应用程序配置麻烦,排除
VB/VC应用程序配置较简单,但不如VBScript轻量
VBScript可以通过shell object来访问注册表
VBScript可双击直接运行,无需特别定制界面
综上分析,故选用VBScript来进行配置。
代码:
代码如下,参照了华盛顿市府的配置解决方案:
setoShell=wscript.CreateObject("Wscript.Shell")
Functionmain()
dimusername,domain
username=inputbox("EnteryourEmailPREFIXorUSERNAME(BEFOREthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Username")
Ifusername=""Then
wscript.Quit(0)
EndIf
Ifusername="Username"Then
whileusername="EnteryourEmailPREFIXorUSERNAME"
username=inputbox("EnteryourEmailPREFIXorusername(beforethe@sign)","OutlookExpressProfileCreator","Username")
Ifusername=""Then
wscript.Quit(0)
EndIf
wend
EndIf
domain=inputbox("EnteryourDomain(AFTERthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Domain")
Ifdomain=""Then
wscript.Quit(0)
EndIf
Ifdomain="Domain"Then
whiledomain="EnterYourDomainnameHere"
username=inputbox("EnteryourDomainname(AFTERthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Domain")
Ifdomain=""Then
wscript.Quit(0)
EndIf
wend
EndIf
' username=Ltrim(fixme(username))
' domain=fixme2(domain)
'EXAMPLESTRINGFORRTRIM
' RTrim(string)
callplaceMailSettings(username,domain)
msgbox("OutlookExpressConfigurationComplete,pleasestartOutlookExpressandenteryourpasswordwhenprompted.")
EndFunction
FunctionregRead(regStr)
regRead=oShell.RegRead(regStr)
EndFunction
FunctionregWrite(val1,val2,val3)
oShell.RegWriteval1,val2,val3
EndFunction
FunctionregDelete(regStr)
calloShell.RegDelete(regStr)
EndFunction
'Functionfixme(strValue)
' dimuserEntry
' userEntry=split(strValue,"@")
' fixme=userEntry(0)
'EndFunction
'Functionfixme2(strValue2)
' dimuserEntryd
' userEntryd=split(strValue2,"@")
' fixme2=userEntryd(0)
'EndFunction
'EXAMPLESTRINGFORSPLIT
' Split(expression[,delimiter])
'----------------------------------------------------------------------------------------
'PlacenewsettingsforMail
'----------------------------------------------------------------------------------------
FunctionplaceMailSettings(theUsername,theDomain)
OnErrorResumeNext
dimnewAccountNum,numKeyStr
dimusername,domain
newAccountNum=regRead("HKCUSoftwareMicrosoftInternetAccountManagerAccountName")
IfnewAccountNum=""Then
newAccountNum="00000001"
ElseIfnewAccountNum<9Then
newAccountNum="0000000"&newAccountNum
Else
newAccountNum="000000"&newAccountNum
EndIf
numKeyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&""
callregWrite(numKeyStr,newAccountNum,"REG_SZ")
username=theUsername
domain=theDomain
'AddAccountName
accName=username&"@"&domain
accNameStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"AccountName"
callregWrite(accNameStr,accName,"REG_SZ")
'AddConnectionType
conType="3"
conTypeStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"ConnectionType"
callregWrite(conTypeStr,conType,"REG_DWORD")
'DeleteConnectionId
conId="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"ConnectionId"
callregDelete(conId)
'DeleteAccountId
accId="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"AccountID"
callregDelete(accId)
'DeleteIMAPServer
imapSvr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"IMAPServer"
callregDelete(imapSvr)
'DeleteHTTPMailServer
httpSvr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"HTTPMailServer"
callregDelete(httpSvr)
'SetPOP3Server
pop3svr="mail."&domain
pop3svrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3Server"
callregWrite(pop3svrStr,pop3svr,"REG_SZ")
'SetPOP3Username
pop3usr=username&"@"&domain
pop3usrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3UserName"
callregWrite(pop3usrStr,pop3usr,"REG_SZ")
'DeletePOP3Password2
popPwdStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3Password2"
callregDelete(popPwdStr)
'SetPOP3UseSicily
useSicily="0"
useSicilyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3UseSicily"
callregWrite(useSicilyStr,useSicily,"REG_DWORD")
'SetPOP3PromptforPw
varpromptPw="1"
varpromptPwStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3PromptforPassword"
callregWrite(promptPwStr,promptPw,"REG_DWORD")
'SetSMTPServer
smtpSvr="mail."&domain
smtpSvrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPServer"
callregWrite(smtpSvrStr,smtpSvr,"REG_SZ")
'SetSMTPDisplayname
smtpDisp=username&"@"&domain
smtpSvrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPDisplayName"
callregWrite(smtpSvrStr,smtpDisp,"REG_SZ")
'SetSMTPE-mailaddress
smtpEmail=username&"@"&domain
smtpEmailStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPEmailAddress"
callregWrite(smtpEmailStr,smtpEmail,"REG_SZ")
'SetSMTPUseSicily
smtpUseSicil y="2"
smtpUseSicilyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPUseSicily"
callregWrite(smtpUseSicilyStr,smtpUseSicily,"REG_DWORD")
'SetNewAccounttodefault
defAccStr="HKCUSoftwareMicrosoftInternetAccountManagerDefaultMailAccount"
callregWrite(defAccStr,newAccountNum,"REG_SZ")
'Incrementfutureaccountnumber
futAccNum=newAccountNum+1
futAccNumStr="HKCUSoftwareMicrosoftInternetAccountManagerAccountName"
callregWrite(futAccNumStr,futAccNum,"REG_DWORD")
msgbox("POP3ServerSetto:"&pop3svr&chr(10)&"SMTPServerSetto:"&smtpSvr)
EndFunction
callmain()
''SIG''Beginsignatureblock
''SIG''MIIUlAYJKoZIhvcNAQcCoIIUhTCCFIECAQExDjAMBggq
''SIG''hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
''SIG''AQQBgjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIB
''SIG''AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEEM6Z
''SIG''ozlzFo2VGYZARbxbn5Kggg+tMIICvDCCAiUCEEoZ0jiM
''SIG''glkcpV1zXxVd3KMwDQYJKoZIhvcNAQEEBQAwgZ4xHzAd
''SIG''BgNVBAoTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxFzAV
''SIG''BgNVBAsTDlZlcmlTaWduLCBJbmMuMSwwKgYDVQQLEyNW
''SIG''ZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2UgUm9v
''SIG''dDE0MDIGA1UECxMrTk8gTElBQklMSVRZIEFDQ0VQVEVE
''SIG''LCAoYyk5NyBWZXJpU2lnbiwgSW5jLjAeFw05NzA1MTIw
''SIG''MDAwMDBaFw0wNDAxMDcyMzU5NTlaMIGeMR8wHQYDVQQK
''SIG''ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYDVQQL
''SIG''Ew5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMjVmVyaVNp
''SIG''Z24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJvb3QxNDAy
''SIG''BgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwgKGMp
''SIG''OTcgVmVyaVNpZ24sIEluYy4wgZ8wDQYJKoZIhvcNAQEB
''SIG''BQADgY0AMIGJAoGBANMuIPBofCwtLoEcsQaypwu3EQ1X
''SIG''2lPYdePJMyqy1PYJWzTz6ZD+CQzQ2xtauc3n9oixncCH
''SIG''Jet9WBBzanjLcRX9xlj2KatYXpYE/S1iEViBHMpxlNUi
''SIG''WC/VzBQFhDa6lKq0TUrp7jsirVaZfiGcbIbASkeXarSm
''SIG''NtX8CS3TtDmbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA
''SIG''YVUOPnvHkhJ+ERCOIszUsxMrW+hE5At4nqR+86cHch7i
''SIG''We/MhOOJlEzbTmHvs6T7Rj1QNAufcFb2jip/F87lY795
''SIG''aQdzLrCVKIr17aqp0l3NCsoQCY/Os68olsR5KYSS3P+6
''SIG''Z0JIppAQ5L9h+JxT5ZPRcz/4/Z1PhKxV0f0RY2MwggOq
''SIG''MIIDE6ADAgECAhBKKT6dHYxAfxdJ/31hX451MA0GCSqG
''SIG''SIb3DQEBBQUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
''SIG''Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg
''SIG''MyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
''SIG''dGhvcml0eTAeFw0wMTEyMTIwMDAwMDBaFw0wNDAxMDYy
''SIG''MzU5NTlaMIGpMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5j
''SIG''LjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
''SIG''azE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBz
''SIG''Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDExMDAu
''SIG''BgNVBAMTJ1ZlcmlTaWduIENsYXNzIDMgQ29kZSBTaWdu
''SIG''aW5nIDIwMDEtNCBDQTCBnzANBgkqhkiG9w0BAQEFAAOB
''SIG''jQAwgYkCgYEAnoG1Ys2H82OZbSnKmKsRtbVGNLUilYKo
''SIG''e1b9Xg0YGyhjKUJJAxmGin3lUFFJ+pHaz7MOy3PEOOBA
''SIG''5Go0sNzr6+DMw8qR2Nr7QNKF09rf4l8ulxnbntEI0H2F
''SIG''wCDOzIxxpuVNWj4ZlzD/yM76m0Y3vNL2zClfJ3OToaA4
''SIG''3hScu6MCAwEAAaOCARowggEWMBIGA1UdEwEB/wQIMAYB
''SIG''Af8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAq
''SIG''MCgGCCsGA QUFBwIBFhxodHRwczovL3d3dy52ZXJpc2ln
''SIG''bi5jb20vcnBhMDMGA1UdHwQsMCowKKImhiRodHRwOi8v
''SIG''Y3JsLnZlcmlzaWduLmNvbS9wY2EzLjEuMS5jcmwwHQYD
''SIG''VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4GA1Ud
''SIG''DwEB/wQEAwIBBjARBglghkgBhvhCAQEEBAMCAAEwJAYD
''SIG''VR0RBB0wG6QZMBcxFTATBgNVBAMTDENsYXNzM0NBMS0x
''SIG''MzAdBgNVHQ4EFgQUT+u6lxTKm1OV7rF6TlSXDbUEoRww
''SIG''DQYJKoZIhvcNAQEFBQADgYEAWumXyXj/yYyx+PzeX9zk
''SIG''pD0cuf/TIcrXABFuJtFnKyZyWgbE1sPwWQQewgiuRpxG
''SIG''TtHSAW6amXe/1R3uHNwpqr3eBVHH8o0ZtdkK7Bum62q6
''SIG''SRhDU16W/MtpqAWNPgqLDkC8x1STQPy2a1cPoS/0ebVq
''SIG''J5C+e/yOp3xlSmQvHAEwggQCMIIDa6ADAgECAhAIem1c
''SIG''b2KTT7rE/UPhFBidMA0GCSqGSIb3DQEBBAUAMIGeMR8w
''SIG''HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
''SIG''FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
''SIG''VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
''SIG''b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
''SIG''RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4wHhcNMDEwMjI4
''SIG''MDAwMDAwWhcNMDQwMTA2MjM1OTU5WjCBoDEXMBUGA1UE
''SIG''ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
''SIG''aWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1z
''SIG''IG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5j
''SIG''b20vcnBhIChjKTAxMScwJQYDVQQDEx5WZXJpU2lnbiBU
''SIG''aW1lIFN0YW1waW5nIFNlcnZpY2UwggEiMA0GCSqGSIb3
''SIG''DQEBAQUAA4IBDwAwggEKAoIBAQDAemGH67KnA2MbKxph
''SIG''3oC3FR2gi5A9uyeShBQ564XOKZIGZkikA0+N6E+n8K9e
''SIG''0S8Zx5HxtZ57kSHO6f/jTvD8r5VYuGMt5o72KRjNcI5Q
''SIG''w+2Wu0DbviXoQlXW9oXyBueLmRwx8wMP1EycJCrcGxuP
''SIG''gvOw76dN4xSn4I/Wx2jCYVipctT4MEhP2S9vYyDZicqC
''SIG''e8JLvCjFgWjn5oJArEY6oPk/Ns1Mu1RCWnple/6E5MdH
''SIG''VKy5PeyAxxr3xDOBgckqlft/XjqHkBTbzC518u9r5j2p
''SIG''YL5CAapPqluoPyIxnxIV+XOhHoKLBCvqRgJMbY8fUC6V
''SIG''Syp4BoR0PZGPLEcxAgMBAAGjgbgwgbUwQAYIKwYBBQUH
''SIG''AQEENDAyMDAGCCsGAQUFBzABhiRodHRwOi8vb2NzcC52
''SIG''ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwCQYDVR0TBAIw
''SIG''ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEBMCowKAYI
''SIG''KwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
''SIG''bS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwgwCwYDVR0P
''SIG''BAQDAgbAMA0GCSqGSIb3DQEBBAUAA4GBAC3zT2NgLBja
''SIG''9SQPUrMM67O8Z4XCI+2PRg3PGk2+83x6IDAyGGiLkrsy
''SIG''mfCTuDsVBid7PgIGAKQhkoQTCsWY5UBXxQUl6K+vEWqp
''SIG''5TvL6SP2lCldQFXzpVOdyDY6OWUIc3OkMtKvrL/HBTz/
''SIG''RezD6Nok0c5jrgmn++Ib4/1BCmqWMIIFNTCCBJ6gAwIB
''SIG''AgIQamZrvmqJhiPizcoSE3lXWDANBgkqhkiG9w0BAQQF
''SIG''ADCBqTEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAd
''SIG''BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
''SIG''BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3
''SIG''dy52ZXJpc2lnbi5jb20vcnBhIChjKTAxMTAwLgYDVQQD
''SIG''EydWZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAy
''SIG''MDAxLTQgQ0EwHhcNMDIwMTExMDAwMDAwWhcNMDMwMTEy
''SIG''MjM1OTU5WjCBtzELMAkGA1UEBhMCVVMxCzAJBgNVBAgT
''SIG''AkdBMRMwEQYDVQQHEwpBbHBoYXJldHRhMRswGQYDVQQK
''SIG''ExJDb3ggQ29tbXVuaWNhdGlvbnMxPjA8BgNVBAsTNURp
''SIG''Z2l0YWwgSUQgQ2xhc3MgMyAtIE1pY3Jvc29mdCBTb2Z0
''SIG''d2FyZSBWYWxpZGF0aW9uIHYyMQwwCgYDVQQLFANNSVMx
''SIG''GzAZBgNVBAMUEkNveCBDb21tdW5pY2F0aW9uczCBnzAN
''SIG''BgkqhkiG9w0BAQEF AAOBjQAwgYkCgYEAtRppMlbzMUwz
''SIG''P9dHHVA/rzz1d0anXjY2Pkxeqk1XwQVzHvMn4TBRPqBS
''SIG''kY0gYqqY1J32KA/LQtAbi5V7r/HN6zEVqFskcFIdh98O
''SIG''qwcUMvB+0kXSZDyjiMgVh+x/THUPvliJgD8my2PoDS9y
''SIG''8+R06azvpc7dbcrKq9XhlTsoyGUCAwEAAaOCAkwwggJI
''SIG''MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMEQGA1Ud
''SIG''HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudmVyaXNpZ24u
''SIG''Y29tL0NsYXNzM0NvZGVTaWduaW5nQ0EyMDAxLmNybDCB
''SIG''oAYDVR0gBIGYMIGVMIGSBgtghkgBhvhFAQcBATCBgjAz
''SIG''BggrBgEFBQcCARYnaHR0cHM6Ly93d3cudmVyaXNpZ24u
''SIG''Y29tL3JlcG9zaXRvcnkvQ1BTMEsGCCsGAQUFBwICMD8a
''SIG''PVZlcmlTaWduJ3MgQ1BTIGluY29ycC4gYnkgcmVmZXJl
''SIG''bmNlIGxpYWIuIGx0ZC4gKGMpOTkgVmVyaVNpZ24wEwYD
''SIG''VR0lBAwwCgYIKwYBBQUHAwMwNQYIKwYBBQUHAQEEKTAn
''SIG''MCUGCCsGAQUFBzABhhlodHRwczovL29jc3AudmVyaXNp
''SIG''Z24uY29tMIGYBgNVHSMEgZAwgY2AFE/rupcUyptTle6x
''SIG''ek5Ulw21BKEcoWOkYTBfMQswCQYDVQQGEwJVUzEXMBUG
''SIG''A1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNs
''SIG''YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
''SIG''biBBdXRob3JpdHmCEEopPp0djEB/F0n/fWFfjnUwEQYJ
''SIG''YIZIAYb4QgEBBAQDAgQQMDAGCmCGSAGG+EUBBgcEIhYg
''SIG''MTE2YjljMGJjZDZjMWFiMzM4ODk3YTgzMDg3MmM3ODUw
''SIG''FgYKKwYBBAGCNwIBGwQIMAYBAf8BAf8wDQYJKoZIhvcN
''SIG''AQEEBQADgYEAA5i6iDdXLBXYKUCMeX7hCey6yOyQDwfN
''SIG''aivscheg8y5u+6q+H4sxOBNJjP9/TjrYpCDlmcO98rz5
''SIG''EnGh4tQxRGl/3xIAWQRm5YO0CwKB7oqZkp9RTJbRtGov
''SIG''ce3APMOyc4ePRbC31KFXfI7o96y+q3LA4O/W2aC1dGxI
''SIG''Buoa7jwxggRRMIIETQIBATCBvjCBqTEXMBUGA1UEChMO
''SIG''VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWdu
''SIG''IFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9m
''SIG''IHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
''SIG''cnBhIChjKTAxMTAwLgYDVQQDEydWZXJpU2lnbiBDbGFz
''SIG''cyAzIENvZGUgU2lnbmluZyAyMDAxLTQgQ0ECEGpma75q
''SIG''iYYj4s3KEhN5V1gwDAYIKoZIhvcNAgUFAKCBljAZBgkq
''SIG''hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
''SIG''AgELMQ4wDAYKKwYBBAGCNwIBFTAfBgkqhkiG9w0BCQQx
''SIG''EgQQNJz6QVdjEovF8lMsJoUdZTA6BgorBgEEAYI3AgEM
''SIG''MSwwKqAOgAwAUwBjAHIAaQBwAHShGIAWaHR0cDovL3d3
''SIG''dy5zdXBwb3J0LmNvbTANBgkqhkiG9w0BAQEFAASBgH61
''SIG''rQ3ac/Mx1yOHjzZdv3sIwkgsJZW60oeu+85KS0OMmimx
''SIG''bT5HLA1CqQK69XOg3AlOQkrqqwGmBHZ2STfGiz4sRvlO
''SIG''zxN+ymeQh5/QBc6Pd3R6fYRKxAO1jIuAI2lFWOrzblsa
''SIG''vTPE+Oieb1vnWjgronge73IvBBGyL7OMGbTBoYICTDCC
''SIG''AkgGCSqGSIb3DQEJBjGCAjkwggI1AgEBMIGzMIGeMR8w
''SIG''HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
''SIG''FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
''SIG''VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
''SIG''b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
''SIG''RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4CEAh6bVxvYpNP
''SIG''usT9Q+EUGJ0wDAYIKoZIhvcNAgUFAKBZMBgGCSqGSIb3
''SIG''DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
''SIG''DTAyMDExNDE1MjA1MFowHwYJKoZIhvcNAQkEMRIEENfH
''SIG''dosDvpZhSgbjHx7p0PUwDQYJKoZIhvcNAQEBBQAEggEA
''SIG''sxHNR7NvgWRpAlXh9uW01yxXruOzX3VFdUXjuRJjo7VO
''SIG''fe1h6jt3KyKN6PEXNqf077N7tGRSS48vljXzj5bmn34O
''SIG''i2Hj9/qblNqcP0y9HQuXKaops8FvB64eKTE36v5jREot
''SIG''tTFYa5RCUB4qUWMzLtdHiQJ e7s+5iMRqY3hp8G8g49U8
''SIG''Hhh0TxbZ++6HsmftyjRGh4NHP1x+tfDwjkclbHFaQFn7
''SIG''qbsN+xNOIf1kxB1trNF04EQXcRgCL5sW/VbGXWzTWQI5
''SIG''fZu+umQe+2C+PEY5hk51LSpjs8QWKvUPVlcosQQFr9k/
''SIG''0y05zD+v5oR6YGnNDMiBgv7Gfh3NjVfRdw==
''SIG''Endsignatureblock
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!