用VC控制iis的属性

用VC控制iis的属性,第1张

Author:zfive (zidong) Email :   需求       用VC修改IIS的属性 如设为可以匿名访问将默认网站下的主目录路径C:\Inetpub\root 在VC程序里面可以更改成任意路径.   实现       看到masterz在纯vc编写控制IIS属性代码的文章(url ) 总感觉有些麻烦 可能是用vb两年来的缘故吧 想了一个懒人的方法 编写vbscript脚本 vc调用scriptcontrol控件在解析脚本了     还记得两年前用msscriptcontrol 解决过一个网络问题!   代码如下:  void CTestDlgDlg::OnBnClickedOk() {        // TODO: 在此添加控件通知处理程序代码        //OnOK()       char szBUF[ ]=                Function ChangeWebPath(puter webname path ) \r\n                On Error Resume Next \r\n                Dim vRoot websvc site \r\n                ChangeWebPath= \r\n                Set websvc = GetObject(\ IIS://\ &puter&\ /W svc\ ) \r\n                if (Err <>) Then exit function \r\n                for each site in websvc \r\n                 if site class = \ IIsWebServer\ then \r\n                   if site ServerComment = webname Then \r\n                      Set vRoot = site GetObject(\ IIsWebVirtualDir\ \ Root\ ) \r\n                     vRoot Path = path \r\n                     vRoot SetInfo \r\n                     ChangeWebPath= \r\n                     exit function \r\n                    end If \r\n                 end if \r\n                next \r\n               End function \r\n                             CString szScript =        szScript Format( %s szBUF)       CString szScript = z =ChangeWebPath(\ \ \ 默认网站\ \ c:\\\ )        szScript +=szScript          m_iis put_Language( VBScript )       m_iis AddCode(szScript )       VARIANT result= m_iis Eval( z )       if(result iVal== )        {               AfxMessageBox( Success )       }        else        {               AfxMessageBox( Fail )       }            return}   脚本参照C:\Inetpub\AdminScripts\* vbs编写     总体要比纯vc编写简单的多 而且几乎同样的代码 完全可以编写出控制iis其他属性的程序!只需编写脚本! lishixinzhi/Article/program/net/201311/12436

假设编辑框关联的变量为 m_show

定义一个cstring 类型的变量str,具体如下

sctring str ;

str.Format("%s",.......)//这里是你要显示的内容

m_show=str;

updatedata(0);

在stdafx.h下 添加

#import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")这个msado15.dll是微软公司提供的ADO相关组件的一个dll。你可以在自己电脑下C盘中搜索下msado15.dll文件 然后把它的目录替换掉上面这个目录就好。

输入完上述内容后 先编译一下工程,而后在执行其他 *** 作就可以了。

示例代码:(以下代码是访问oracle数据库的,也可以用在其他类型数据库中)

void CadotDlg::OnBnClickedBtnQuery()

{

// TODO: 在此添加控件通知处理程序代码

CoInitialize(NULL)

_ConnectionPtr pConn(__uuidof(Connection))

_RecordsetPtr pRst(__uuidof(Recordset))

try

{

pConn->ConnectionString="Provider=MSDAORA.1"

"User ID=XHPassword=XHData Source=GPSPersist Security Info=False"

HRESULT HR=pConn->Open("","","",adConnectUnspecified)

if(SUCCEEDED(HR))

MessageBox(_T("XHGPS数据库连接成功!"))

pRst=pConn->Execute("select * from SMSSEND",NULL,adCmdText)

while(!pRst->adoEOF)

{

_variant_t vID

CString strID

vID=pRst->GetCollect("ID")

strID=((char*)(_bstr_t)vID)

((CListBox*)GetDlgItem(IDC_LIST1))->AddString(strID)//_bstr_t类中有对char*的重载函数

pRst->MoveNext()

}

pRst->Close()

pConn->Close()

pRst.Release()

pConn.Release()

CoUninitialize()

}

catch(_com_error e)

{

CString str

str.Format("对数据库 *** 作出错! %s",(char *)e.Description())

AfxMessageBox(str)

return

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11105185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存