在InstallShield中引用WINSOCK 的示例

原创 2003年08月26日 21:02:00
/* written by Jaron ,2002-08-15 */
/* 转载请注明出处和保留此版权信息 */
/* 欢迎使用SiteManager网站管理系统 http://sitemanager.cnzone.net ; */

通过以下示例,InstallShield可以用WINSOCK获取IP地址,可将以下文件保存为tcpip.rul

#define WSADESCRIPTION_LEN      256
#define WSASYS_STATUS_LEN       128

typedef
 WSAData
  begin
        INT                    wVersion;
        INT                    wHighVersion;
        char                   szDescription[WSADESCRIPTION_LEN+1];
        char                    szSystemStatus[WSASYS_STATUS_LEN+1];
        short                    iMaxSockets;
        short                  iMaxUdpDg;
        POINTER                lpVendorInfo;
end;
WSAData structWSAData;
WSAData POINTER pWSAData;

typedef  HostEnt
begin
        POINTER    ph_name; 
        POINTER    ph_aliases; 
        short      h_addrtype; 
        short      h_length;
        POINTER    ph_addr_list;
end;
HostEnt structHostEnt;
HostEnt POINTER pHostEnt;
SHORT nlen;
NUMBER nIPNetAddr;

NUMBER nVersion;
STRING szMsg;
STRING szDefault;
STRING szURL;
STRING szPath;
NUMBER nRC;
NUMBER nRC2;
STRING szHostName;
STRING szMYIPAddr;
POINTER pWinSockReturn;

typedef IPName
 begin
 STRING szIPAddr[100];
end;
IPName LocalIPName;
IPName  POINTER pLocalIPName;

typedef IPAddrList
 begin
 POINTER pIPAddr;
end;
IPAddrList  structIPAddrList;
IPAddrList  POINTER pIPAddrList;


typedef IPAddPtr
 begin
 LONG nIPAddr;
end;
IPAddPtr  structIPAddPtr;
IPAddPtr  POINTER pIPAddPtr;

POINTER pIN_Addr_Struct;


prototype POINTER wsock32.gethostbyname(BYREF STRING);
prototype POINTER wsock32.gethostname(BYREF STRING, NUMBER);
prototype POINTER wsock32.WSAStartup(INT, POINTER);
prototype POINTER wsock32.inet_ntoa( NUMBER);


prototype POINTER wsock32.WSACleanup();
prototype int     wsock32.WSAGetLastError (   );


 program
pWSAData = &structWSAData;

nRC = UseDLL ("wsock32.dll");
pWSAData -> wHighVersion = 1;
pWSAData -> wVersion     = 1;
nVersion =  0x02000002;   // 0x01000001

pWinSockReturn = WSAStartup(nVersion, pWSAData);
pWinSockReturn = gethostname(szHostName,100);
pHostEnt       = gethostbyname(szHostName);


 nlen         = pHostEnt   -> h_length;   
 pIPAddPtr    = pHostEnt    -> ph_addr_list;

pIPAddPtr   = *pIPAddPtr;
nIPNetAddr  = *pIPAddPtr;

// nIPNetAddr  = pIPAddPtr  -> nIPAddr;


pLocalIPName =  inet_ntoa( nIPNetAddr );
szMYIPAddr   =  pLocalIPName -> szIPAddr;

MessageBox(szMYIPAddr, INFORMATION);

WSACleanup();


exit;

一个完整的Installshield安装程序实例

一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于...
  • duanbeibei
  • duanbeibei
  • 2015年12月16日 22:06
  • 29967

InstallShield 2013 应用笔记(一)

背景因项目需要,将最终交付的应用打包成安装程序。在VS2010之前版本,所有安装包制作,我都使用VS自带的安装程序。在VS2010后,因对VS的安装程序维护成本过高,依赖的VBScript脚本语言,因...
  • black0707
  • black0707
  • 2015年05月14日 15:05
  • 1354

InstallShield使用介绍之一:InstallShield的工程类型的选择

熟悉InstallShield用户清楚有Basic MSI,InstallScript和InstallScript MSI三种工程类型可选择,如果你初次使用InstallShield,你可能面临一个问...
  • wuxiaoqrs
  • wuxiaoqrs
  • 2015年05月14日 10:49
  • 593

InstallShield安装包在Win7下权限问题的解决方案

众所周知,win7下的权限问题很让人头疼,最近在用InstallShield给AliProbe打包的时候,同样在win7下遇到了问题。主要的限制是:在安装目录下不能创建文件以及执行任何的写操作。这个问...
  • educast
  • educast
  • 2014年12月01日 12:47
  • 3998

关于Installshield 2010安装包如何更新旧版本

制作更新包的主要属性: 在给出升级包类型之前,首先说明几个概念: 1 Package code:从字面上理解就是包的代码,在IS中每构建一个包的时候都会给其赋予一个package code,而且是...
  • yulongguiziyao
  • yulongguiziyao
  • 2014年05月04日 17:29
  • 1835

InstallShield-用户界面函数(原创+转载)

这两天遇到一个InstallShield卸载的问题,不同的计算机上有不同的现象,就是在卸载的时候,当前产品的注册表项所在的目录(还有其他产品的注册表项),都被删除了,正确的做法应该是只删除当前产品的注...
  • hustypf
  • hustypf
  • 2013年07月26日 16:03
  • 3457

InstallShield安装包权限问题

1.更换写文件的目录         方法:将AliProbe需要写的文件都放在系统盘 用户的“Local Settings /Application Data”目录下。 这是一种常用的方法,软...
  • BrikOff
  • BrikOff
  • 2016年07月12日 15:20
  • 2016

InstallShield使用---安装设计界面

InstallShield使用---安装设计界面
  • eickandy
  • eickandy
  • 2015年11月03日 11:07
  • 1165

【吐槽】VS2012的安装项目只能用InstallShield Limited Edition[附资源下载]

【吐槽】VS2012的安装项目只能用InstallShield Limited Edition[附资源下载] 以前版本的Visual Stuido中安装项目都可以使用微软自家的Vis...
  • kingmax54212008
  • kingmax54212008
  • 2014年05月17日 11:11
  • 2740

InstallShield脚本编程基本语法

 脚本编程prototype语言functionstring [c-sharp] view plaincopyprint? InstallShield脚本语言是类...
  • u013408061
  • u013408061
  • 2014年08月09日 11:53
  • 1540
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在InstallShield中引用WINSOCK 的示例
举报原因:
原因补充:

(最多只允许输入30个字)