不安裝.NET Framework 運行C#.NET程式 收藏
首先,要說明的是飛信也是用C#寫的,但是我們在運行C#時,並不用安裝.NET Framework,這事因為,飛信本身內建了一個.NET 虛擬程式,由這個程式來調用我們飛信主程式。
同樣,我們要可以利用這可現成的虛擬機器來運行我們的C#.NET程式,這樣即使在沒有安裝.NETFramework的windows系統中,也可以運行我們的C#.NET程式。
具體方法如下,複製飛信下的檔案夾VMDotNet/v2.0.50727檔案夾到你的C#.NET目錄程式,該檔案夾下有一個程式FetionVM.exe,我們就是要通過它,運行我麼的C#主程式,起調用方法如下:
"FetionVM.exe C#程式路徑"(不包括引號),然後,我們只要用C/C++、VB、DELPHI等等windows下課直接啟動並執行程式,寫一個程式來調用該虛擬機器來運行我們的C#.NET程式。
下面一delphi為例子:
首先,程式目錄下虛擬機器的檔案夾名稱為VM,該目錄下有編寫好的C#程式名為ACs.exe,delphi代碼如下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,registry;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
reg:tregistry;
begin
reg:=tregistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
if reg.KeyExists('SOFTWARE/Microsoft/.NETFramework/v2.0.50727') then //通過註冊表,判斷系統是否安裝有.NETFramework v2.0 如果有,直接運行C#程式,如果沒有則通過虛擬機器調用C#程式
BEGIN
winexec('./VM/ACs.exe',SW_Show);
END
else //如果索引值不存在 調用虛擬機器
begin
Form1.Visible := false;
winexec('./VM/FetionVM.exe ./VM/ACs.exe',SW_Show);
end;
reg.CloseKey;
reg.free;
ExitProcess(0);
Application.Terminate;
end;
end.
//------------------------這樣主程式編寫完成
然後選擇 project>view source 然後添加語句
Application.ShowMainForm:=false; //隱藏程式主表單
然後產生程式
然後把delphi生產的exe程式放在程式目錄下,運行即可直接調用我們的C#程式
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/wazhpi/archive/2008/12/29/3634763.aspx