简单的问题,请问在程序中怎样编写代码来设置某个目录为IIS的默认目录? 其实就是在程序中把IIS中原来那个目录(C:\Inetpub\wwwroot)改为其它目录! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function CreateWebSite(szServerIPDefault,szServerPortDefault) STRING szCmdLine,szWaitTxt;begin if ((szServerIPDefault = "") || (szServerPortDefault = "")) then MessageBox ("您没有设定"+@PRODUCT_NAME+"运行的服务器IP地址或端口!!IIS信息服务设置失败!\n请自行创建IIS站点,并将主目录设为:"+TARGETDIR,SEVERE); else szWaitTxt=" 正在创建IIS和设置站点...."; SdShowMsg (szWaitTxt, TRUE); Delay(2); szCmdLine = "\""+TARGETDIR ^"mkw3site.vbs\""+" -r \""+TARGETDIR+"\\CRM_NET\" -i "+szServerIPDefault+" -o "+szServerPortDefault+" -t \"e_Anlcrm\""; if (ShellExecute("CScript.exe " + szCmdLine) < 0) then MessageBox ("不能建立WEB 虚拟目录,没有找到 CScript.exe 或执行脚本错误.",SEVERE); endif; SdShowMsg (szWaitTxt, FALSE); endif; return 0;end;这是InstallShield的语法,你可以自行改写。 难道没有可以实现该功能的API函数吗? 问题已经解决!我将方法写出来,这个方法是在大富翁论坛资料中参考并修改的,不对之处请指点。如果有更好的方法,请务必告诉我哦!procedure TfrmServer.fButton3Click(Sender: TObject);var WebSite, WebServer, WebRoot: Variant;begin try try WebSite := CreateOleObject('IISNamespace'); WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc'); //IIS服务对象 WebServer := WebSite.GetObject('IIsWebServer', '1'); WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root'); //IIS主虚拟目录对象 Sleep(2000); WebRoot.Path := ExtractFileDir(ParamStr(0)); //设置虚拟目录为应用程序本身目录 WebRoot.AccessRead := true; //设置虚拟目录属性 WebRoot.SetInfo; //保存设置 MessageBox(Handle,'WEB服务器虚拟目录设置完毕! ','系统信息',0+64); except On E: Exception Do MessageBox(Handle,PChar('WEB服务器虚拟目录设置失败:' + E.Message),'系统消息',0+16); end; finally WebSite := Null; WebServer := Null; WebRoot := Null; end;end; 碰到系统服务问题,先看有没有系统的COM接口Windows是用COM堆起来的。:) 如何得到记录被删除的状态 【偶家宝宝】今天一周岁,生日快乐! delphi 界面控件 关于在ADODATASET中取数据 可否用程序动态改变机器名? 谁有动态设置ODBC好一点的方法? 求教在指定位置弹出系统菜单的具体用法!分可加。。。 连续纸打印时长度出错???!!! 如何用拼音查询记录? 如何按分割符截取txt文件里的数值? ADO数据更新 **据说99%都会作错?,答对有分**
STRING szCmdLine,szWaitTxt;
begin
if ((szServerIPDefault = "") || (szServerPortDefault = "")) then
MessageBox ("您没有设定"+@PRODUCT_NAME+"运行的服务器IP地址或端口!!IIS信息服务设置失败!\n请自行创建IIS站点,并将主目录设为:"+TARGETDIR,SEVERE);
else
szWaitTxt=" 正在创建IIS和设置站点....";
SdShowMsg (szWaitTxt, TRUE);
Delay(2);
szCmdLine = "\""+TARGETDIR ^"mkw3site.vbs\""+" -r \""+TARGETDIR+"\\CRM_NET\" -i "+szServerIPDefault+" -o "+szServerPortDefault+" -t \"e_Anlcrm\"";
if (ShellExecute("CScript.exe " + szCmdLine) < 0) then
MessageBox ("不能建立WEB 虚拟目录,没有找到 CScript.exe 或执行脚本错误.",SEVERE);
endif;
SdShowMsg (szWaitTxt, FALSE);
endif;
return 0;
end;这是InstallShield的语法,你可以自行改写。
我将方法写出来,这个方法是在大富翁论坛资料中参考并修改的,不对之处请指点。如果有更好的方法,请务必告诉我哦!procedure TfrmServer.fButton3Click(Sender: TObject);
var
WebSite, WebServer, WebRoot: Variant;
begin
try
try
WebSite := CreateOleObject('IISNamespace');
WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc'); //IIS服务对象
WebServer := WebSite.GetObject('IIsWebServer', '1');
WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root'); //IIS主虚拟目录对象
Sleep(2000);
WebRoot.Path := ExtractFileDir(ParamStr(0)); //设置虚拟目录为应用程序本身目录
WebRoot.AccessRead := true; //设置虚拟目录属性
WebRoot.SetInfo; //保存设置
MessageBox(Handle,'WEB服务器虚拟目录设置完毕! ','系统信息',0+64);
except
On E: Exception Do
MessageBox(Handle,PChar('WEB服务器虚拟目录设置失败:' + E.Message),'系统消息',0+16);
end;
finally
WebSite := Null;
WebServer := Null;
WebRoot := Null;
end;
end;
Windows是用COM堆起来的。:)