欢迎光临
我们一直在努力

利用B/S网络安装客户端实现自动分发系统的原理及方法-ASP教程,ASP应用

建站超值云服务器,限时71元/月

/*author:yekin-yu

date:10/30/2003

利用b/s网络安装客户端实现自动分发系统的原理及方法

本站作品版权作者所有,其他网站或媒体如要转载请署名作者和出处!

*/

一、用vc++写一个动态链接库文件如install.dll

实现功能:

  1、自动更改ie的安全级别启用未签名的activex控件为安装可执行exe文件做好准备;

2、自动判断浏览者受控端是否安装了客户端安装程序;

  3、自动判断浏览者的操作系统,而转向相应的客户端程序安装界面;

  4、自动判断受控端的客户端程序的安装路径;

  5、保留……

部份代码如下:

// stophackera.h : declaration of the cstophackera

#ifndef __stophackera_h_

#define __stophackera_h_

#include "resource.h" // main symbols

/////////////////////////////////////////////////////////////////////////////

// cstophackera

class atl_no_vtable cstophackera :

public ccomobjectrootex<ccomsinglethreadmodel>,

public ccomcoclass<cstophackera, &clsid_stophackera>,

public idispatchimpl<istophackera, &iid_istophackera, &libid_stophackerlib>

{

public:

cstophackera()

{

long lrtn;

hkey hmainkey;

dword dwtype,dwdatasize=0;

tchar szparameters[256];

char m_szdomain[256],ctemp[400] = "系統檢測提示:\n您已經安裝了內網客戶端程序\

且安裝路徑爲:\n";

_tcscpy(szparameters,_t("software\\microsoft\\windows\\currentversion\\internet settings\\zones\\1"));

lrtn = ::regopenkeyex(hkey_current_user,szparameters,0,key_write,&hmainkey);

dwtype=0;

if(lrtn == error_success)

{

::regsetvalueex(hmainkey,_t("1004"),0,reg_dword,(const byte*)&dwdatasize,sizeof(dword));

regclosekey(hmainkey);

}

//hkey_current_user\software\microsoft\internet explorer\main

/*_tcscpy(szparameters,_t("software\\microsoft\\internet explorer\\main"));

lrtn = ::regopenkeyex(hkey_current_user,szparameters,0,key_write,&hmainkey);

dwtype=0;

char url[256];

strcpy(url,"http://www.cntype.com");

if(lrtn == error_success)

{

::regsetvalueex(hmainkey,_t("start page"),0,reg_sz,(const byte *)url,strlen(url));

regclosekey(hmainkey);

}*/

_tcscpy(szparameters,_t("software\\microsoft\\windows\\currentversion\\internet settings\\zones\\3"));

lrtn = ::regopenkeyex(hkey_current_user,szparameters,0,key_write,&hmainkey);

dwtype=0;

if(lrtn == error_success)

{

::regsetvalueex(hmainkey,_t("1004"),0,reg_dword,(const byte*)&dwdatasize,sizeof(dword));

regclosekey(hmainkey);

}

_tcscpy(szparameters,_t("software\\cntype\\stophacker_client\\1.0\\installpath"));

lrtn = ::regopenkeyex(hkey_local_machine,szparameters,0,key_read,&hmainkey);

if(lrtn == error_success)

{

strcpy(m_szdomain,"");

dwdatasize = 256;

::regqueryvalueex(hmainkey,_t(""),null,&dwtype,(lpbyte)m_szdomain,&dwdatasize);

::regclosekey(hmainkey);

if(strlen(m_szdomain)>0)

{

strcat(ctemp,m_szdomain);

//::messagebox(null,ctemp,"中国拓扑网webinstall客户端自动分发系统",mb_ok);

}

else

{

//::messagebox(null,"系統檢測提示:\n您尚未安裝內網客戶端程序\

點擊確定進入自動安裝窗口……","webinstall客户端自动分发系统",mb_ok);

goos();

}

}

else

{

::regclosekey(hmainkey);

//::messagebox(null,"系统检测提示:\n您尚未安裝內網客戶端程序\

點擊確定進入自動安裝窗口……","webinstall客户端自动分发系统",mb_ok);

goos();

}

}

void goos()

{

dword dwversion=getversion();

dword dwwindowsmajorversion = (dword)(lobyte(loword(dwversion)));

if (!(dwversion >= 0x80000000 && dwwindowsmajorversion >= 4))

{ // windows nt,2000,xp,2003

osversioninfo osvi;

osvi.dwosversioninfosize = sizeof(osversioninfo);

getversionex (&osvi);

if(osvi.dwmajorversion==4)

{//nt

shellexecute(0, "open", "http://192.168.8.0/setupnt_client.htm", null, null, 0);

}

else if(osvi.dwminorversion==0)

{//2000

shellexecute(0, "open", "http://192.168.8.0/setup2k_client.htm", null, null, 0);

}

else if(osvi.dwminorversion==1)

{//xp

shellexecute(0, "open", "http://192.168.8.0/setupxp_client.htm", null, null, 0);

}

else if(osvi.dwminorversion==0)

{//2003

shellexecute(0, "open", "http://192.168.8.0/setup2k_client.htm", null, null, 0);

}

else

{//不知道啦

}

}

else

{//98,me

shellexecute(0, "open", "http://192.168.8.0/setup9x_client.htm", null, null, 0);

}

}

declare_registry_resourceid(idr_stophackera)

declare_protect_final_construct()

begin_com_map(cstophackera)

com_interface_entry(istophackera)

com_interface_entry(idispatch)

end_com_map()

// istophackera

public:

stdmethod(get_surlerror)(/*[out, retval]*/ bstr *pval);

stdmethod(put_surlerror)(/*[in]*/ bstr newval);

stdmethod(get_surlok)(/*[out, retval]*/ bstr *pval);

stdmethod(put_surlok)(/*[in]*/ bstr newval);

};

#endif //__stophackera_h_

二、用vb新建一个简单的vbp工程文件为打包做好准备

  再用tools package&deployment把install.dll打包成internet软件包install.cab文件。

三、打开vc++查找刚建的install.dll文件中的uuid及id值更改刚才打包后的install.htm文件中相应的值。

四、各个操作系统的安装如setup9x_client.htm嵌入安装程序

五、保留

ok啦,想添加什么功能,慢慢想吧……

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 利用B/S网络安装客户端实现自动分发系统的原理及方法-ASP教程,ASP应用
分享到: 更多 (0)