分動態靜態兩種。
成都創新互聯是網站建設專家,致力于互聯網品牌建設與網絡營銷,專業領域包括做網站、成都網站設計、電商網站制作開發、小程序制作、微信營銷、系統平臺開發,與其他網站設計及系統開發公司不同,我們的整合解決方案結合了恒基網絡品牌建設經驗和互聯網整合營銷的理念,并將策略和執行緊密結合,且不斷評估并優化我們的方案,為客戶提供全方位的互聯網品牌整合方案!
靜態,也就是編譯之前確定兩個exe文件??梢杂觅Y源文件來實現。要代碼可以發郵件到我郵箱kqwd@163點抗
動態,也就是說程序編譯之后,由用戶指定兩個exe,然后合并。這個比較困難。較簡單的方法是用WinRAR的命令行。生成一個參數,用shell執行Winrar的命令行程序。
方法一:
通過WINSOCK傳
方法二:
程序一生成一文件,然后程序二讀取
方法三:
利用數據庫存取這個是調用自制DLL示例,至于用ActiveX EXE,你可以參考一下,關鍵是留接口給另一程序
VB制作標準DLL文件并調用該文件的示例
1、建立一個ActiveX DLL工程,這時工程中將包括一個類模塊Class1。
2、在ActiveX DLL工程中添加一個Form。
3、在類模塊添加如下函數:
Public Function ShowMyForm(s As String)
Form1.Caption = s
Form1.Show vbModal
End Function
4、將工程編譯為DLL。
調用時:
1、建立一個標準EXE,在菜單“工程|引用”中選擇前面編譯的DLL。
2、使用如下代碼調用:
Private Sub Form_Click()
Dim cls As New Class1
cls.ShowMyForm("Hello")
End Sub
DDE是一種動態數據交換機制(Dynamic Data Exchange,DDE)。使用DDE通訊需要兩個Windows應用程序,其中一個作為服務器處理信息,另外一個作為客戶機從服務器獲得信息??蛻魴C應用程序向當前所激活的服務器應用程序發送一條消息請求信息,服務器應用程序根據該信息作出應答,從而實現兩個程序之間的數據交換。
DDE(Dynamic data exchange)的工作原理是:
甲方申請一塊全局內存,然后把內存指針postmessage到乙方,
乙方根據收到的指針訪問那塊全局內存。
有幾個API函數是做這種事的,你在MSDN里查一下 DDE 打頭的函數全都出來了。
因為是已經淘汰的技術,連MFC都沒對他進行封裝。
很難保證它同樣會出現在以后的Windows API中。
DDE = Dynamic Data Exchange,是 16 位 Windows 時代實現不同應用程序之間互相交換數據和控制的技術,現在用得很少了,Windows Shell 外殼打開某些文件類型還用到 DDE。
OLE = Object Linking and Embedding,從 16 位 Windows 時代發展而來,建立在 COM 基礎之上(實際上 OLE 是 COM 的第一個實際應用,OLE 標準推出時,COM 標準還沒有定型;COM 的成熟取決于 OLE 在技術上的成熟),最近看到的 COM 標準是 0.9 版。請參考其他資料得到能全面的知識。
注意project的編譯Title(標題)
和Form的LinkTopic和LinkMode屬性.
LinkMode要設置為1-Source
通訊時候要設置
MyDDE.LinkMode = 0
MyDDE.LinkTopic = "Remote Application Title|Form LinkTopic"
MyDDE.LinkMode = 2
MyDDE.LinkExecute "My Message"
在Form的Form_LinkExecute事件處理另一個應用發過來的信息.
---------------------------------------
上網的朋友一定都用過網絡螞蟻(Net Ants)的吧?不知你在使用過程中有沒有注意過,那就是如果你想調動兩個“螞蟻”為您效力是不可能的——它總會把新運行的關閉。 而“螞蟻”程序的妙處就在于:在重復運行“螞蟻”時它不僅拒絕運行,而且能把已經運行的“螞蟻”激活,這樣用上面的程序就無能為力了。但事實上實現拒絕運行并激活已運行的程序有多種方法:
使用DDE技術
所謂DDE技術,就是動態數據交換技術。也許你很奇怪,這與本文所討論的內容有什么相干的?且聽我慢慢講來。
為了實現拒絕運行并把已經運行的程序激活并實現各種功能,我們可以先用本文開頭提到的方法,檢測一下程序有沒有被運行過,如果沒有,就正常運行,如果已經被運行過,就打通與它的DDE通道,傳給它一個(或一些)數據,然后由已經運行的程序對數據進行處理,再去實現各種“意想不到”的功能,這時也許就有人對這你的程序喊:“酷、酷……”
好了,耳聽為虛,眼見為實,下面讓我們動點真格的。
打開VB,新建一個工程,選擇菜單中的“工程-工程1 屬性”,把工程名稱改為“P1”,把已有的一個窗體的“LinkTopic”屬性改為“FormDDE”,把“LinkMode”屬性改為“1 - Source”,添加一個PictureBox控件作為DDE執行控件,命名為picDDE。然后添加一個 TextBox控件,命名為“txtInfo”,并把“MultiLine”屬性設置為“True”,以便顯示多行文本,作為消息顯示控件。
最后在窗體代碼區輸入以下代碼:
Const COMMANDLINE = "CommandLine=" 注釋: 還是為了省事,定義一個常量
Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
Static lngCount As Long
Dim Info As String
Info = txtInfo.Text 注釋: 保留原有信息
Select Case CmdStr 注釋: CmdStr 是DDE程序傳送過來的參數
Case "Max"
Me.WindowState = 2
Info = Info + vbNewLine + "窗體已被最大化"
Case "ShowTime"
Info = Info + vbNewLine + "最后一次運行這個程序的時間是:" + Str(Now)
Case "Count"
lngCount = lngCount + 1
Info = Info + vbNewLine + "你已經第" + Str(lngCount) + "次重復調用這個程序。" _
+ vbNewLine + "但怕您不多給工資,所以只運行了一個 ^_^"
End Select
If Left(CmdStr, Len(COMMANDLINE)) = COMMANDLINE Then
Info = Info + vbNewLine + "新程序曾以命令行形式運行" + vbNewLine + "命令行為:" _
+ vbNewLine + Right(CmdStr, Len(CmdStr) - Len(COMMANDLINE))
End If
txtInfo.Text = Info 注釋: 把信息顯示出來
Cancel = False
End Sub
Private Sub LinkAndSendMessage(ByVal Msg As String)
Dim t As Long
picDDE.LinkMode = 0 注釋:--
picDDE.LinkTopic = "P1|FormDDE" 注釋: |______連接DDE程序并發送數據/參數
picDDE.LinkMode = 2 注釋: | “|”為管道符,是“退格鍵”旁邊的豎線,
picDDE.LinkExecute Msg 注釋:-- 不是字母或數字!
t = picDDE.LinkTimeout 注釋:--
picDDE.LinkTimeout = 1 注釋: |______終止DDE通道。當然,也可以用別的方法
picDDE.LinkMode = 0 注釋: | 這里用的是超時強制終止的方法
picDDE.LinkTimeout = t 注釋:--
End Sub
Private Sub Form_Load()
If App.PrevInstance Then 注釋: 程序是否已經運行
Me.LinkTopic = "" 注釋: 這兩行用于清除新運行的程序的DDE服務器屬性,
Me.LinkMode = 0 注釋: 否則在連接DDE程序時會出亂子的
LinkAndSendMessage "Max" 注釋:--
LinkAndSendMessage "Count" 注釋: |-----連接DDE接受程序并傳送數據/參數
LinkAndSendMessage "ShowTime" 注釋:--
If Command "" Then 注釋: 如果有命令行參數,就傳遞過去
LinkAndSendMessage COMMANDLINE + Command
End If
End 注釋: 結束新程序的運行
End If
End Sub
測試一下:
把工程“P1”編譯成EXE文件(設名稱為 P1.EXE )
1、打開“我的電腦”,找到 P1.EXE 并執行??梢钥吹匠绦蛘_\行了。
2、再運行一次,這次新程序沒有運行成功,而原來運行的程序卻被最大化了,而且文本框中有以下字符:
窗體已被最大化
你已經第 1次重復調用這個程序
但怕您不多給工資,所以只運行了一個 。
最后一次運行這個程序的時間是:05-2-6 7:11:01
3、打開 MS-DOS方式 ,用命令行方式再次運行程序,如 “P1 How Are You?”,這時原來運行的程序文本框中又多了幾行字:
窗體已被最大化
你已經第 2次重復調用這個程序。
但怕您不多給工資,所以只運行了一個
最后一次運行這個程序的時間是:05-2-6 7:14:32
新程序曾以命令行形式運行
命令行為:
How Are You?
OK,運行完全正確,然后你就可以把它應用的你的程序中了。
1、簡單的程序,就只要在"File(文件)"菜單下的"Make
xxx.exe(生成)",生成的EXE文件和你要用的數據庫和其他外部文件一起移植到其他電腦上,就可以了。
2、復雜的程序,建議用"打包",打包完以后,在其他電腦上安裝以后再用.打包方法--------打開菜單欄“外接程序”——“外接程序管理器”,選擇“打包和展開向導”,選擇“加載/卸載”,確定。在“外接程序管理器”里找到“打包和展開向導”,打開“打包和展開向導”,再一步步進行打包就可以生成一個安裝程序。
分享題目:關于vb點虐
兩個exe的信息
當前網址:http://m.newbst.com/article2/ddsheic.html
成都網站建設公司_創新互聯,為您提供App開發、網站制作、關鍵詞優化、靜態網站、企業網站制作、Google
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯