蠶蛹··yesky 1、如何在.net的應(yīng)用程序運(yùn)行其它的EXE文件?
解答:主要應(yīng)用System.Diagnostics名字空間中的Process類
主要代碼:
[C#] Process proc = new Process(); proc.StartInfo.FileName = @"D:\Program Files\Foxmail\Foxmail.exe"; //可以用絕對路徑 proc.StartInfo.Arguments = ""; proc.Start();
[VB.NET] Dim proc As New Process() proc.StartInfo.FileName = "D:\Program Files\Foxmail\Foxmail.exe" proc.StartInfo.Arguments = "" proc.Start();
示例程序點擊下載(C#)
2、如何檢測當(dāng)前操作系統(tǒng)?
解答:應(yīng)用System名字空間中的Environment類
主要代碼:
[C#] string versionText = Environment.OSVersion.Version.ToString();
[VB.NET] Dim versionText As String = Environment.OSVersion.Version.ToString();
示例程序點擊下載(C#)
3、如何獲取正在運(yùn)行程序的路徑?
解答:調(diào)用Application類中的ExecutablePath靜態(tài)成員獲取路徑
主要代碼:
[C#] textBox1.Text = Application.ExecutablePath; [VB.NET] TextBox1.Text = Application.ExecutablePath
示例程序點擊下載(C#)
4、如何查看電腦中已經(jīng)安裝的所有程序集?
解答:.Net Framework把所有的程序集安裝在 系統(tǒng)安裝盤\winnt\Assembly(隱含)目錄下,查看屬性可以看到該程序集的所有詳細(xì)資料。
5、如何用System.Windows.Forms.Application.CompanyName設(shè)置公司名稱?
解答:在Assembly中設(shè)置,VS.Net的開發(fā)環(huán)境中是在 AssemblyInfo.cs(vb)的文件中設(shè)置的,打看文件可以 公司信息和版本等信息
主要代碼:
[assembly: AssemblyCompany("天極網(wǎng)蠶蛹-版權(quán)所有")]
6、如果用戶的電腦沒有安裝.NET運(yùn)行框架,是否可以運(yùn)行.NET的程序?
解答:不可以,必需安裝.NET Framework
可在下面地址下載 http://msdn.microsoft.com/library/default.asp?url=/downloads/list/netdevframework.asp
7、如何獲取本地的IP地址?
解答:在名字空間System.Net中定義了一個類Dns,其中有一個方法GetHostByName(),用來返回IPHostEntry 對象,此對象有一個屬性是AddressList,此屬性是一個IPAddress類型的數(shù)組,包含了計算機(jī)此時的所有的IP地址信息,包含了撥號上網(wǎng)得到的臨時分配的IP地址和局域網(wǎng)固定的IP地址
主要代碼:
[C#] string s=""; System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList; for (int i = 0; i < addressList.Length; i ++) { s += addressList[i].ToString(); } [VB.NET] Dim s As String = "" Dim addressList As System.Net.IPAddress() = Dns.GetHostByName(Dns.GetHostName()).AddressList Dim i As Integer For i = 0 To addressList.Length - 1 s += addressList(i).ToString() + ControlChars.Lf Next i
示例程序點擊下載(c#)
8、如何確保在C#中只有一個程序(實例)運(yùn)行?
解答:主要應(yīng)用System.Diagnostics名字空間中的Process類來實現(xiàn),思路,我們在運(yùn)行程序前,查找進(jìn)程中是否有同名的進(jìn)程,同時運(yùn)行位置也相同程,如是沒有運(yùn)行該程序,如果有,就將同名的同位置的程序窗口置前. 主要代碼:
[C#] public static Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName (current.ProcessName); //查找相同名稱的進(jìn)程 foreach (Process process in processes) { //忽略當(dāng)前進(jìn)程 if (process.Id != current.Id) { //確認(rèn)相同進(jìn)程的程序運(yùn)行位置是否一樣. if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName) { //Return the other process instance. return process; } } } //No other instance was found, return null. return null; } [VB.NET]
Public Shared Function RunningInstance() As Process Dim current As Process = Process.GetCurrentProcess() Dim processes As Process() = Process.GetProcessesByName(current.ProcessName) '查找相同名的進(jìn)程 Dim process As Process For Each process In processes '忽略當(dāng)前進(jìn)程 If process.Id <> current.Id Then '確認(rèn)相同名的進(jìn)程運(yùn)行位置是否相同 If [Assembly].GetExecutingAssembly().Location.Replace("/", "\") = current.MainModule.FileName Then '返回其它的運(yùn)行實例 Return process End If End If Next process '沒有其它實例,返加空值 Return Nothing End Function 'RunningInstance
示例程序點擊下載(C#)
9、如何把所有的系統(tǒng)中正在運(yùn)行的所有進(jìn)程顯示出來呢?
解答:用System.Diagnostics名字空間中的Process.GetProcess()靜態(tài)成員
主要代碼:
[C#] Using System.Diagnostics; ... foreach ( Process p in Process.GetProcesses() ) Console.WriteLine( p ); // string s = p.ToString();
[VB.NET] Imports System.Diagnostics ... Dim p As Process For Each p In Process.GetProcesses() Console.WriteLine(p) ' string s = p.ToString() Next p
示例程序點擊下載(C#)
10、如何列出所有正在運(yùn)行的應(yīng)用程序呢?
解答:可有用EnumWindows 函數(shù)將枚舉計算機(jī)上的所有現(xiàn)有窗口,但我們用System.Diagnostics名字空間的靜態(tài)函數(shù)Process.GetProcesses()可以避免EnumWindows的互操作性問題。
主要代碼:
[C#] Using System.Diagnostics; ... foreach ( Process p in Process.GetProcesses(System.Environment.MachineName) ) { if( p.MainWindowHandle != IntPtr.Zero) { //顯示用戶程序名 Console.WriteLine( p ); // string s = p.ToString(); } } [VB.NET] Imports System.Diagnostics ... Dim p As Process For Each p In Process.GetProcesses(System.Environment.MachineName) If p.MainWindowHandle <> IntPtr.Zero Then '顯示應(yīng)用程序名 Console.WriteLine(p) ' string s = p.ToString(); End If Next p
|