找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 898|回复: 9

[求助]:请教:怎样给程序打包?

[复制链接]
发表于 2003-2-22 22:52:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我用arx编了一段程序,并且定制了专业的菜单。我想问一下怎样才能给我的程序打包。使之整个成为一个可执行文件一点击就可以自动的装载到CAD中去,并且打开CAD。
请各位大侠不吝指教,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-2-23 10:16:10 | 显示全部楼层
做一个.exe,用com技术打开CAD,load你的ARX,只要你懂com,一切简单!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-23 10:28:22 | 显示全部楼层
给你一个我写的VBS程序作为例子。

这个是XD工具箱早期版本的安装程序中的一部份源代码。
你将其保存成setup.vbs 双击即可执行。

用其它语言的写法大致相同。


  1. [FONT=courier new]
  2. Option Explicit

  3. Const AcadID = "AutoCAD.Application.15"

  4. Sub AddSearchPath(PathName)
  5.         Dim AcadSearchPath
  6.         AcadSearchPath = AcadPrefiles.SupportPath
  7.         If InStr(UCase(AcadSearchPath), UCase(PathName))=0 Then
  8.                 AcadPrefiles.SupportPath = AcadSearchPath & ";" &PathName
  9.         End If
  10. End Sub

  11. Dim AcadApp, AcadPrefiles, AcadDoc, FSO, CurrentDir
  12. Dim AcadWorking, XDmenuGroup

  13. ' ----------------------------------------Start AutoCAD
  14. On Error Resume Next  'Track Error
  15. AcadWorking = true
  16. Set AcadApp = GetObject(,AcadID)
  17. If Err Then
  18.     Err.Clear
  19.            Set AcadApp = CreateObject(AcadID)
  20.            If Err Then  ' 当前的autocad版本没装
  21.                    WScript.Quit()
  22.            End If
  23.            AcadApp.visible = False
  24.     AcadApp.WindowState = 2
  25.     AcadWorking = false
  26. End If
  27. On Error Goto 0   ' Clear Error Track

  28. ' -----------------------------------------AutoCAD Launched

  29. Set AcadPrefiles = AcadApp.Preferences.Files
  30. Set AcadDoc = AcadApp.ActiveDocument
  31. Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
  32. CurrentDir = FSO.GetParentFolderName(WScript.scriptFullName)
  33. CurrentDir = FSO.GetParentFolderName(CurrentDir)

  34. AddSearchPath CurrentDir
  35. AddSearchPath CurrentDir & "\LISP"
  36. AddSearchPath CurrentDir & "\BIN"
  37. AddSearchPath CurrentDir & "\SYS"
  38. AddSearchPath CurrentDir & "\LIB"

  39. ' AcadApp.ActiveDocument.SendCommand "(load ""XDLoadMenu"")" & vbCr
  40. On Error Resume Next
  41. Set XDMenuGroup = AcadApp.MenuGroups.Load("XDSoft.MNU")
  42. If Err Then
  43.         Set XDMenuGroup = AcadApp.MenuGroups.item("XDSoft")
  44.     XDMenuGroup.Unload
  45.     XDMenuGroup = AcadApp.MenuGroups.Load("XDSoft.MNU")
  46.     Err.Clear
  47. End if
  48. XDmenuGroup.Menus.InsertMenuInMenuBar "XDSoft", AcadApp.MenuBar.Count - 2
  49. On Error Goto 0

  50. if not AcadWorking Then
  51.         AcadApp.quit
  52. End if       
  53. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-23 10:30:15 | 显示全部楼层
这是前帖的反安装程序。反向代码。XD工具箱卸载时执行的代码。


  1. [FONT=courier new]
  2. Option Explicit

  3. ' 这个函数split是为win98的wscript host 1.0定义的,2.0以上的版本vbs中含有这个标准函数
  4. ' 来自明经通道, 修改成vbscript版本
  5. Function Split(Str, Delim)
  6.      Dim tokens(), pos, i

  7.     pos = InStr(1, Str, Delim, vbTextCompare)
  8.     i = 0

  9.     Do While pos > 0
  10.       ReDim Preserve tokens(i)
  11.       tokens(i) = Mid(Str, 1, pos - 1)
  12.       If tokens(i) = Delim Then tokens(i) = ""
  13.       Str = Mid(Str, pos + Len(Delim))
  14.       i = i + 1
  15.       pos = InStr(1, Str, Delim, vbTextCompare)
  16.     Loop

  17.     If Len(Str) > 0 Then
  18.       ReDim Preserve tokens(i)
  19.       tokens(i) = Str
  20.     End If

  21.     Split = tokens

  22. End Function


  23. Const AcadID = "AutoCAD.Application.15"

  24. Dim AcadApp, AcadPrefiles, AcadDoc, FSO, CurrentDir
  25. Dim AcadWorking, AcadSearchPath, PathArray, TempStr, XDMenuGroup

  26. ' ----------------------------------------Start AutoCAD
  27. On Error Resume Next  'Track Error
  28. AcadWorking = true
  29. Set AcadApp = GetObject(,AcadID)
  30. If Err Then
  31.     Err.Clear
  32.            Set AcadApp = CreateObject(AcadID)
  33.            If Err Then  ' 当前的autocad版本没装
  34.                    WScript.Quit()
  35.            End If
  36.            AcadApp.visible = false
  37.     AcadApp.WindowState = 2
  38.     AcadWorking = false
  39. End If
  40. On Error Goto 0   ' Clear Error Track
  41. ' -----------------------------------------AutoCAD Launched

  42. Set AcadPrefiles = AcadApp.Preferences.Files
  43. Set AcadDoc = AcadApp.ActiveDocument
  44. Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
  45. CurrentDir = FSO.GetParentFolderName(WScript.scriptFullName)
  46. CurrentDir = FSO.GetParentFolderName(CurrentDir)
  47. AcadSearchPath = AcadPrefiles.SupportPath
  48. PathArray = Split(AcadSearchPath, ";")

  49. ' AcadApp.ActiveDocument.SendCommand "(load ""XDUnLoadMenu"")" & vbCr
  50. On Error Resume Next
  51. Set XDMenuGroup = AcadApp.MenuGroups.item("XDSoft")
  52. if not Err then XDMenuGroup.Unload
  53. AcadApp.UnloadARX("xdrx_api15.arx")
  54. On Error Goto 0

  55. AcadSearchPath = ""
  56. For Each TempStr In PathArray
  57.         If (UCase(TempStr)<>UCase(CurrentDir)) And _
  58.            (UCase(TempStr)<>UCase(CurrentDir & "\LISP")) And _
  59.            (UCase(TempStr)<>UCase(CurrentDir & "\BIN")) And _
  60.            (UCase(TempStr)<>UCase(CurrentDir & "\LIB")) And _
  61.            (UCase(TempStr)<>UCase(CurrentDir & "\SYS")) Then
  62.                 If  AcadSearchPath = ""  Then
  63.                         AcadSearchPath = TempStr
  64.                 Else
  65.                         AcadSearchPath = AcadSearchPath & ";" & TempStr
  66.                 End If
  67.         End If
  68. Next

  69. AcadPrefiles.SupportPath = AcadSearchPath

  70. if not AcadWorking Then
  71.         AcadApp.quit
  72. End if       
  73. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-23 10:33:19 | 显示全部楼层
vbs文件能编译吗?我不懂,也就是说加密.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-23 10:37:22 | 显示全部楼层
不能编译。

ms有一个encode程序,可以加密。但只是对源代码加密执行。解释执行。XD工具箱原来的安装程序是全明码的。但由于有的win95/98没有自带vbscript 解释器,所以执行有点问题。后来还是改用exe方式了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-26 11:35:25 | 显示全部楼层
1. 选定一个基本软件,如installshield, wiseinstall,等;
2. 将要打包的文件打进去, 如果用了控件,要将控件包进来并设为自动注册
3.如果用了微软的数据库联接, 要将相应的库包含进来
4.如果用到加密DOG,要将相应的驱动程序包进来并自动安装.
5.用VB或VC写一个EXE来对AutoCAD进行初始化. 初始化可以有以下内容:
5.1 )  自动查找AutoCAD的版本\配置, 如果目标机上有多个AutoCAD, 要选一个出来;
5.2 )  在当前的CAD用户下配置支持路径
5.3 )  配置AutoCAD安装方式,  在何时以及如何load你的文件到AutoCAD中;
5.4 ) 桌面图标启动,可以改变AutoCAD的启动方式, 也可以设一个全新的图标来启动.

6. 这样, 整个安装将只是SETUP 就可以了. Every thing is OK.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-26 14:46:47 | 显示全部楼层
用VB或VC写了对AutoCAD进行初始化的EXE, 如 何 使 其 在SETUP 时 自 动 运 行, 我 用 的 是installshield
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-13 15:53:37 | 显示全部楼层
诸位见题所示问题,有试过的吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-1 18:47:13 | 显示全部楼层
这个问题我也想问哦!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 14:36 , Processed in 0.308721 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表