打包之后Dcomconnnection的属性怎么设置? ( 积分: 100 )

  • 主题发起人 主题发起人 悠哉游哉
  • 开始时间 开始时间

悠哉游哉

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟现在初学用delphi做软件,要在局域网内共享一个sql server数据库,dcom的computername设置成自己电脑的名字,servername是数据库的名字。可是我把软件移植到别的局域网内,应该怎么办呢?我用的是installshield打包的。急等答案,请各位指教!!
 
小弟现在初学用delphi做软件,要在局域网内共享一个sql server数据库,dcom的computername设置成自己电脑的名字,servername是数据库的名字。可是我把软件移植到别的局域网内,应该怎么办呢?我用的是installshield打包的。急等答案,请各位指教!!
 
两天了怎么还没有人回答啊。顺便问一下,socketconnection是不是设置更方便一些?
 
可以写在注册表中,应用程序从注册表读取
socketconnection的设置和DCOMConnection差不多(多了Port)
 
能否具体的说一下呢?访问注册表的时候应在哪里设置?
 
http://www.delphibbs.com/delphibbs/dispq.asp?LID=2400958
InstallShield的脚本本人不熟悉, 不好意思。[:(]
但是, 做程序来配置, 我做过, 效果蛮好。
方法是:
做一个引导安装的AutoRun.exe程序,里面实现DCOM配置、运行InstallShield打包的安装
程序、其它东西等。
运行AutoRun.exe, 对于安装服务器端,它的动作是:
1、Shell方式执行InstallShield打包的安装程序, 由于是服务器端,不需要用户自定义
路径,因此最好做安装程序时,将服务器端程序的安装路径做在系统目录下,以便下
一步的定位。
2、仍然用Shell方式执行安装好的服务器端(由于是系统目录,因此路径是知道的)。
这个过程即注册。
3、注册后的配置大家都知道, 是空的,无法满足我们的需要。因此这一步你要做
的,是直接写注册表, 把配置改成你需要的。
或者: 事先把配置好的注册表项导出(注意:配置时一定要用: “按自定义方式”)
保存为*.reg文件, 把后缀改一下, 隐蔽些。然后把该文件做在光盘上, 在程序中
用shell方式执行:regedit /s 路径/该文件名。 把注册表项导入目标机器即可。
具体注册表项,我无法提供,因为配置是变化的, 我的和你的不一定雷同。
注册表项是那些?
你可以先做个简单的DCOM服务器端程序做实验, 把它的注册类名取一个特殊的名字,例如
“MyMyMyMyMyMyLove”(不大可能有相同的名称),然后运行它注册。然后你运行
regedit.exe, 用搜索功能, 输入“MyMyMyMyMyMyLove”做关键字,把所有严格匹配
的项目的都搜索出来,一个个地导出。这些就是你想要的东西。
把这些注册表文件, 拷贝粘贴合并为一个文件。就是上面提到的那个文件了。
你应该在配置以后再导出, 就携带你配置的信息了。
注意: 再提一遍, 配置时, 一定不能用“按默认”方式来做, 如果这样, 这些配置只
在你的机器上有效, 不在上述注册表项里。
希望对你有帮助。 [:)]
 
谢谢chenybin,你的意思是运行autorun的时候设置主机?没有这方面的经验不知道从何处下手。能否帮我体供一点这方面的书籍或者其他资料?
 
InstallShield有个功能是运行外部程序,叫LuanchApp,用他来运行你自己的是设置程序就可以了
下面是我转的资料
…………………………………………………………………………………………
用InstallShield制作专业Windows安装软件
作者:苏贵洋
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
  InstallShield可以说是软件安装的最好制作工具。其简单的操作、完全可视化的界面、方便的调试功能、多平台
(Windows3.1, Windows95, WindowsNT3.5, Windows NT4.0 )语言(中文、各种西文)的支持使它几乎成为了安装制
作的标准。难怪微软在它的拳头产品Visual C++4.X中开始,就以捆绑的形式包括了InstallShield3。而今,随着日月的
推移,InstallShield更是羽翼丰满,又陆续推出了InstallShield Professional 5.X(包括East Edition,West Edition)
和InstallShield 6.0,功能更为强大,操作更为简便。对于Shareware软件的制作者,包装上一个漂亮的安装程序,实
在是非常必要。本文简要探讨一下用InstallShield制作安装软件的方法,希望对感兴趣的朋友有所帮助。
在InstallShield的各种最新版本中,其专门制作的East Edition,可应用于汉语(GB、BIG5)、英语、印度尼西亚语、日
语、韩语、俄语、土耳其语、泰国语等多语种。本文便以InstallShield East Edition 5.1为探讨对象进行讨论。
InstallShield的其它语种版本的操作和East Edition几乎完全相同。
  进入InstallShield East Edition 5.1后便是两个“向导”面对你。
  习惯用VB的朋友可以用VB5 Project Wizard,它需要你的系统中安装了VB5。
  更为常用的是Project Wizard,它可以定制更为普便适用的安装程序。进入Project Wizard后如图1:在第一栏中写入
你的程序的名字,第二栏中写入公司的名字,在第三栏中选择开发程序使用的根据,第四栏中选择程序的种类,最后一栏
中填入程序的可执行文件的完整路径和名字。单击下一步,进入选择定制对话框:安装自己的喜好选择希望安装过程进行
时出现的对话框,按Priview键可以预览一下相应对话框的效果。接下来是选择要安装目标平台。也即程序将被运行在什么
平台之上。InstallShield共提供了四种平台供选择(Win31, win95, WinNT3.5, Windows NT4.0 )。然后是多语种支持,
也就是安装时可以提供的语言支持。再向下依次是安装类型选择、指定构成成份、指定文件组,最后是所有选项的概括。
完成选择后便可得到你自己定做的Project,进入InstallShield的可视化编程环境。
  下面让我们一步一步地完成我们的制作。
  整个InstallShield的可视化程度很高。支持鼠标右键的操作,在各个位置的鼠标右键可激活各种功能;编译、调试
方便,简直是VC++这种大型程序的简写本,却又比VC++方便了许多。
  一、在左面的选项中选择Scripts。
  这是全部制作的核心部分,也是我们所最应集中精力攻克的小小关口。当然不更改Scripts中的源程序也能制作一个
标准的安装程序,但如果能够控制Scripts的编程,整个安装程序的制作水准就可以达到一个新的高度,这也许是您与普通
制作者区别的开始吧。其实InstallShield的Scripts非常类似于C和C++的程序编写,相信对大多数程序员来说是非常
容易掌握的。而对于没有什么C和C++的基础的朋友来讲,看完这篇文章后,相信你也能很好地去制作自己的Scripts,
因为它具有相当程度的重复性,更容易被“依葫芦画瓢”。
  Scripts的布局同C语言非常类似。首先是头文件的包含,紧接着是字符串的定义、函数原形的说明、全局变量的说
明。你可以做的是在此加上你的函数说明、全局变量的说明。
  Scripts中遵循C的规则,同样有局部变量和定义。遵循C++的注释规则,可以用// 注释内容来进行单行注释,也
可以用/* 注释内容 */来注释一块语句。所有的关键字、宏定义都以不同颜色的字体标出,非常直观。Scripts 的编程
遵循结构化编程的思想,提供了大量类似Windows API的函数库供调用,每个宏定义都有详细的说明,每个函数除了详细
地说明,解释每个变量的意义外,还都附有相应的例子,参考这些说明和例子,可以让新手在非常短的时间内上路。对
用VC++开发过Windows程序的朋友来讲,简直就是一种6=2×3的转变而已,可以非常轻松地掌握。
  在程序的最前段,是program…………………endprogram,它相当于C中的main() {……}主函数。后面是一个个子函
数体的程序,排列顺序是按调用顺序排列。全部函数都非常简单易懂,并且一般不需太大改动。下面将几个常用、经常改
动的函数加以说明。
  (1) function SetupFolders()
  function SetupFolders()
  NUMBER nResult;
  STRING szFolderDir;
  begin
  szProgramFolder = FOLDER_PROGRAMS^
  SHELL_OBJECT_FOLDER;
//建立程序组或快捷方式的位置
szItemName = "眼部图象多功能处理系统";
//应用程序名称
szProgram = TARGETDIR^'eye95.exe';
//可执行文件名
szParam = "";
  LongPathToQuote (szProgram, TRUE);//合并路径
  LongPathToShortPath (szParam);//转为短路径,专为Win31和WinNT3.5而用
  szCommandLine = szProgram + "
"
+ szParam;
//生成命令行
  szWorkingDir = TARGETDIR;//工作路径
  szIconPath = "";
  nIcon = 0;
  szShortCutKey = "";
  nFlag = REPLACE;
  AddFolderIcon (szProgramFolder, szItemName,
  szCommandLine,
  szWorkingDir, szIconPath, nIcon,
  szShortCutKey, nFlag);
  szProgramFolder = FOLDER_DESKTOP;
  LongPathToQuote(szCommandLine, TRUE);
if(SprintfBox( OK|CANCEL,"请选择:","%s","你想在桌面上创建快捷方式吗?")==6)
  then
  AddFolderIcon(szProgramFolder,szItemName,szCommand
  Line,
  szWorkingDir,szIconPath,nIcon,szShortCutKey,
  nFlag);
endif;
szProgramFolder = FOLDER_PROGRAMS^ SHELL_OBJECT_FOLDER;
szItemName="readme";
szProgram = WINDIR ^ "notepad.exe";
szParam = TARGETDIR^"readme.txt";
LongPathToQuote (szProgram, TRUE);
LongPathToShortPath (szParam);
szCommandLine = szProgram + "
"
+ szParam;
AddFolderIcon(szProgramFolder,szItemName,
  szCommandLine ,
  szWorkingDir, szIconPath, 0,
  szShortCutKey,nFlag );
  nResult = CreateShellObjects( ""
);
  return nResult;
  end;

其实这段程序说白了是对AddFolderIcon的一个应用而已。应用AddFolderIcon来在开始选单中添加程序组、程序项或在桌
面桌面添加快捷方式等等。所以首先读一下AddFolderIcon的说明非常必要。它共有八个入口参数。第一个参数szProgramFolder
是确定要在Win95中添加选单的位置(路径),例如
  "C://WINDOWS//STARTMENU//PROGRAMS//ACCESSORIES//GAMES"。
  而在Windows95和WinNT4.0中,还可以用系统的宏定义:FOLDER_DESKTOP(添加在桌面上)、FOLDER_DESKTOP(添加在开
始选单中)、FOLDER_PROGRAMS(添加在开始-〉程序选单中)等。第二个参数为szItemName,即添加的图标的名称(应用程
序的名称)。第三个参数szCommandLine相对繁琐一些。它为了指定可执行程序和它的命令行,或者在子目录下的全路径(仅
适用于Windows95&winNT4.0)。szWorkingDir为工作路径,可为空:“”,或为TARGETDIR(目标路径)。szIconPath为图标
路径,一般设为空:“”。nIcon为图标序数,即若应用程序有若干个图标,想显示那个,依次为0,1,2……。
  szShortCutKey用来定义快捷键。nFlag用来指定图标的外观。如果在路径中包含长路径名,则必需用‘’或“”来包含,
然后用LongPathToQuote函数来合并。当用于16位的Win31和WinNT3.5时,还应再调用一下LongPathToShortPath进行转换。如
此便可创建程序组、程序项或快捷方式了。太麻烦了?没关系,如果您认为这一段操作实在麻烦,您完全可以略过,到Resource
中去完成,详情请往后看。
  (2)function SetupScreen()
  begin
  Enable( FULLWINDOWMODE );
  Enable( INDVFILESTATUS );
  SetTitle( "眼科多功能处理系统安装程序", 28,YELLOW );//修改字体和颜色
  SetTitle( "眼科多功能处理系统", 0, BACKGROUNDCAPTION );
// 标题行的字体和颜色
  Enable( BACKGROUND );
  Delay( 1 );
  end;
  这儿主要是SetTitle (szString, nPointSize, nColor)函数的应用。
  三个参数分别代表了所写字符串的内容、字体大小、文字颜色。
  (3)function DialogShowSdWelcome()
  NUMBER nResult;
  STRING szTitle, szMsg;
  begin
  szTitle = "欢迎";
  szMsg = "欢迎您光临 眼科多功能处理系统 安装程序!";
  nResult = SdWelcome( szTitle, szMsg );
  return nResult;
  end;
  在这个函数里写入您想制作程序的标题。
  (4)function SetupRegistry()
  NUMBER nResult;
STRING szKey, szNumName, szNumValue, svNumValue;
  NUMBER nType, nSize;
  begin
  szKey="Robert//RobertSoftware//Spirit//Version";//自己的主键
  szNumName = "TestValue";//键名
  szNumValue = "12345";//键值
  nType = REGDB_NUMBER;//类型
  nSize = -1;//指定大小
  RegDBSetKeyValueEx(szKey, szNumName, nType, szNumValue,nSize) ;//创建
nResult = CreateRegistrySet( ""
);
  return nResult;
  end;
  通过这种方法修改注册表,再辅以一些算法,可以投入很小但起到很好的加密程序的作用,您不妨一试! ?
  (5)function DialogShowSdFinishReboot()
  NUMBER nResult, nDefOptions;
  STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
  NUMBER bOpt1, bOpt2;
begin
  if (!BATCH_INSTALL) then
   bOpt1 = FALSE;//不选
   bOpt2 = FALSE;//不选
   szMsg1 = "%P 安装结束!/n";//%P代表安装程序名字。
szMsg2 = "按结束键结束 %p 安装。";//提示信息
szOption1 = "我想看自述文件。";
   szOption2 = "我想现在就运行程序。";
   nResult = SdFinish( szTitle, szMsg1, szMsg2,
  szOption1, szOption2, bOpt1, bOpt2 );
if(bOpt1) then
   LaunchAppAndWait(WINDIR^"Notepad.exe",TARGETDIR^"readme.txt",WAIT);//如果选中,调用Windows的笔记本载入自述文件。
  endif;
if(bOpt2) then
   LaunchApp(TARGETDIR^'eye95.exe',"");//如选中,立刻执行应用程序
  endif;
   return 0;
  endif;
  nDefOptions = SYS_BOOTMACHINE;
  szTitle = "";
  szMsg1 = "";
  szMsg2 = "";
  nResult = SdFinishReboot( szTitle, szMsg1,
  nDefOptions, szMsg2, 0 );//由此控制决定是否重新启动计算机。
  return nResult;
  end;
  这一段程序便是安装到最后,可以提示用户是否看自述文件、是否立刻启动程序运行、是否重新启动计算机。
  Scripts最需要改动的地方可能就是这五个地方。其它则根据制作者自己的需要来做相应修改。
  二、修改File Groups
  双击相应的Examples Files、Help Files、Program DLLs、Program Executable Files、Shared Dlls,在相应的Links中,
单击右键,可以插入一组文件、一个文件夹或一个文件。而在Examples Files、Help Files、Program DLLs、Program Executable Files、
Shared Dlls中分别加入文件是为了在程序安装时的选项安装。更为简便的方法是在Tools中启动Launch Explorer,然后把所需的文
件或文件夹拖拉到右面空白处即可。
  三、修改Components
  单击Program Files、Example Files、Help Files或Shared Dlls,在右面的表格中双击Include File Groups,在弹出的属性对话
框里单击Add…,加入相应的文件组。
  四、修改Setup Types
  单击Compact、Typical或Custom,在右面的表格中选择各自包括的组成成份。
  注:有了二、三、四项的操作,才能完成安装时的“典型安装、简洁安装和定制安装”的选择。
  五、修改Setup Files
  在Splash Screen-〉Language Independent中你会发现一个Setup.bmp文件,这个是系统提供给你的安装开始时的闪烁画面。你可
以用你的封面替代这个setup.bmp。在Language Independent-〉Operating System Independent中,你会发现license.txt和
infolist.txt。你可以将你的应用程序的说明、版权信息写入相应文件。
  六、修改Resource
  在Register Entires中,你可以添加你的键值。对Register Entires单击鼠标右键,单击New Entry,便可在右面的
Register Set中加入自己的键值。
  在Shell Objects中,有Explorer Shell和Program Manager Shell两个分类,分别是为了windows95、WinNT4.0和
win31、winNT3.5设计的。在Explorer Shell中,又有Desktop、Start Menu、Programs、Startup的层次之分。你可以
在任一层单击右键,插入您所需要加的快捷方式或文件夹。
  单击快捷方式或文件夹,双击右面的表格选项,依次填入空白项,那么在您理想的目的地的文件夹或快捷方式便
建好了。不要着急去按下Run Setup工具按钮,否则您会发现您运行后得到的并不完全是您所设计的!这是因为您少了:
  七、运行Media Wizard
  在Media栏,单击Media Build Wizard,按照提示一步一步执行,直至结束(而实际上您仅需连续按“下一步”按
钮)。您完全可以再此基础上加上更多的更精彩的小花招,如:加密、安装拷贝时的不同的背景变换、
制成一个自解包的安装文件、做一个带时间限制的试用版安装等等,InstallShield都可以满足您的需要。但这些小花
招,基本都需要您对Scripts的熟练掌握,这些都是用简洁方式所不能控制的。
  好了,您可以Run Setup了。怎么样?够不够专业?酷不酷?可不要把嘴乐歪了!
 
为了方便修改,如你愿意你可以写到外部的配置文件里,一起分发就好了,写不写注册表好像和你的问题没关系。
 
后退
顶部