如何在net的应用程序运行其它的EXE文件? 解答:主要应用SystemDiagnostics名字空间中的Process类
主要代码:
[C#]
Process proc = new Process();
procStartInfoFileName = @D:\Program Files\Foxmail\Foxmailexe; //可以用绝对路径
procStartInfoArguments = ;
procStart();
[VBNET]
Dim proc As New Process()
procStartInfoFileName = D:\Program Files\Foxmail\Foxmailexe
procStartInfoArguments =
procStart();
如何检测当前操作系统?
解答:应用System名字空间中的Environment类
主要代码:
[C#]
string versionText = EnvironmentOSVersionVersionToString();
[VBNET]
Dim versionText As String = EnvironmentOSVersionVersionToString();
如何获取正在运行程序的路径?
解答:调用Application类中的ExecutablePath静态成员获取路径
主要代码:
[C#]
textBoxText = ApplicationExecutablePath;
[VBNET]
TextBoxText = ApplicationExecutablePath
如何查看电脑中已经安装的所有程序集?
解答:Net Framework把所有的程序集安装在 系统安装盘\winnt\Assembly(隐含)目录下查看属性可以看到该程序集的所有详细资料
如何用SystemWindowsFormsApplicationCompanyName设置公司名称?
解答:在Assembly中设置VSNet的开发环境中是在 AssemblyInfocs(vb)的文件中设置的打看文件可以
公司信息和版本等信息
主要代码:
[assembly: AssemblyCompany(天极网蚕蛹版权所有)]
如果用户的电脑没有安装NET运行框架是否可以运行NET的程序?
解答:不可以必需安装NET Framework
可在下面地址下载
http://msdnmicrosoftcom/library/defaultasp?url=/downloads/list/netdevframeworkasp
如何获取本地的IP地址?
解答:在名字空间SystemNet中定义了一个类Dns其中有一个方法GetHostByName()用来返回IPHostEntry 对象此对象有一个属性是AddressList此属性是一个IPAddress类型的数组包含了计算机此时的所有的IP地址信息包含了拨号上网得到的临时分配的IP地址和局域网固定的IP地址
主要代码:
[C#]
string s=;
SystemNetIPAddress[] addressList = DnsGetHostByName(DnsGetHostName())AddressList;
for (int i = ; i < addressListLength; i ++)
{
s += addressList[i]ToString();
}
[VBNET]
Dim s As String =
Dim addressList As SystemNetIPAddress() = DnsGetHostByName(DnsGetHostName())AddressList
Dim i As Integer
For i = To addressListLength
s += addressList(i)ToString() + ControlCharsLf
Next i
如何确保在C#中只有一个程序(实例)运行?
解答:主要应用SystemDiagnostics名字空间中的Process类来实现思路我们在运行程序前查找进程中是否有同名的进程同时运行位置也相同程如是没有运行该程序如果有就将同名的同位置的程序窗口置前
主要代码:
[C#]
public static Process RunningInstance()
{
Process current = ProcessGetCurrentProcess();
Process[] processes = ProcessGetProcessesByName (currentProcessName);
//查找相同名称的进程
foreach (Process process in processes)
{
//忽略当前进程
if (processId != currentId)
{
//确认相同进程的程序运行位置是否一样
if (AssemblyGetExecutingAssembly()LocationReplace(/ \\) == currentMainModuleFileName)
{
//Return the other process instance
return process;
}
}
}
//No other instance was found return null
return null;
}
[VBNET]
Public Shared Function RunningInstance() As Process
Dim current As Process = ProcessGetCurrentProcess()
Dim processes As Process() = ProcessGetProcessesByName(currentProcessName)
查找相同名的进程
Dim process As Process
For Each process In processes
忽略当前进程
If processId <> currentId Then
确认相同名的进程运行位置是否相同
If [Assembly]GetExecutingAssembly()LocationReplace(/ \) = currentMainModuleFileName Then
返回其它的运行实例
Return process
End If
End If
Next process
没有其它实例返加空值
Return Nothing
End Function RunningInstance
如何把所有的系统中正在运行的所有进程显示出来呢?
解答:用SystemDiagnostics名字空间中的ProcessGetProcess()静态成员
主要代码:
[C#]
Using SystemDiagnostics;
foreach ( Process p in ProcessGetProcesses() )
ConsoleWriteLine( p ); // string s = pToString();
[VBNET]
Imports SystemDiagnostics
Dim p As Process
For Each p In ProcessGetProcesses()
ConsoleWriteLine(p) string s = pToString()
Next p
如何列出所有正在运行的应用程序呢?
解答:可有用EnumWindows 函数将枚举计算机上的所有现有窗口但我们用SystemDiagnostics名字空间的静态函数ProcessGetProcesses()可以避免EnumWindows的互操作性问题
主要代码:
[C#]
Using SystemDiagnostics;
foreach ( Process p in ProcessGetProcesses(SystemEnvironmentMachineName) )
{
if( pMainWindowHandle != IntPtrZero)
{
//显示用户程序名
ConsoleWriteLine( p ); // string s = pToString();
}
}
[VBNET]
Imports SystemDiagnostics
Dim p As Process
For Each p In ProcessGetProcesses(SystemEnvironmentMachineName)
If pMainWindowHandle <> IntPtrZero Then
显示应用程序名
ConsoleWriteLine(p) string s = pToString();
End If
Next p