Created
March 11, 2020 02:08
-
-
Save stilllisisi/37e0b11f495cd0178d1e0fc5a88e9ad8 to your computer and use it in GitHub Desktop.
【游戏-unity】Unity读取外部exe程序控制台信息
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//由于需要获取显卡信息,但是unity的自带函数,只能输出1个显卡,c#倒是可以但是引用了一个下载的dll System.Management.dll,这个dll放到unity用不了,因为mono不支持,所以先用vs写个外部exe程序: | |
using System; | |
using System.Management; | |
public class Sample | |
{ | |
public static void Main(string[] args) | |
{ | |
string Gname = ""; | |
ManagementObjectSearcher objvide = new ManagementObjectSearcher("select * from Win32_VideoController"); | |
foreach (ManagementObject obj in objvide.Get()) | |
{ | |
Gname += ("Name - " + obj["Name"] + "</br>"); | |
//System.Console.WriteLine("Name - " + obj["Name"] + "</br>"); | |
//System.Console.WriteLine("DeviceID - " + obj["DeviceID"] + "</br>"); | |
//System.Console.WriteLine("AdapterRAM - " + obj["AdapterRAM"] + "</br>"); | |
//System.Console.WriteLine("AdapterDACType - " + obj["AdapterDACType"] + "</br>"); | |
//System.Console.WriteLine("Monochrome - " + obj["Monochrome"] + "</br>"); | |
//System.Console.WriteLine("InstalledDisplayDrivers - " + obj["InstalledDisplayDrivers"] + "</br>"); | |
//System.Console.WriteLine("DriverVersion - " + obj["DriverVersion"] + "</br>"); | |
//System.Console.WriteLine("VideoProcessor - " + obj["VideoProcessor"] + "</br>"); | |
//System.Console.WriteLine("VideoArchitecture - " + obj["VideoArchitecture"] + "</br>"); | |
//System.Console.WriteLine("VideoMemoryType - " + obj["VideoMemoryType"] + "</br>"); | |
//Console.WriteLine("====================================================="); | |
} | |
Console.WriteLine(Gname); | |
Console.WriteLine("====================================================="); | |
//Console.ReadKey(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Unity代码 | |
using System; | |
using System.Collections; | |
using System.Collections.Generic; | |
using System.Diagnostics; | |
using UnityEngine; | |
public class GetSystemInfo : MonoBehaviour { | |
string a = ""; | |
// Use this for initialization | |
void Start () { | |
//这种方法可以 | |
GetStr(); | |
//这种方法也可以 | |
//OpenEXE("C://Users/zts/source/repos/ConsoleApp9/ConsoleApp9/bin/Debug/ConsoleApp9.exe", ""); | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="_exePathName">路径</param> | |
/// <param name="_exeArgus">启动参数</param> | |
public void OpenEXE(string _exePathName, string _exeArgus) | |
{ | |
try | |
{ | |
Process myprocess = new Process(); | |
ProcessStartInfo startInfo = new ProcessStartInfo(_exePathName, _exeArgus); | |
myprocess.StartInfo = startInfo; | |
myprocess.StartInfo.CreateNoWindow = true; | |
myprocess.StartInfo.UseShellExecute = false; | |
myprocess.StartInfo.RedirectStandardOutput = true; | |
//myprocess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; | |
myprocess.Start(); | |
a += myprocess.StandardOutput.ReadLine();//只能读取1行 | |
UnityEngine.Debug.Log(a); | |
myprocess.WaitForExit(); | |
} | |
catch (Exception ex) | |
{ | |
UnityEngine.Debug.Log("出错原因:" + ex.Message); | |
} | |
} | |
public void GetStr() | |
{ | |
try | |
{ | |
Process proc = new Process(); | |
proc.EnableRaisingEvents = false; | |
proc.StartInfo.FileName = "C://Users/zts/source/repos/ConsoleApp9/ConsoleApp9/bin/Debug/ConsoleApp9.exe"; | |
proc.StartInfo.CreateNoWindow = true; | |
proc.StartInfo.UseShellExecute = false; | |
proc.StartInfo.RedirectStandardOutput = true; | |
//proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//这句会让unity卡死 | |
proc.Start(); | |
a += proc.StandardOutput.ReadToEnd(); | |
proc.WaitForExit(); | |
proc.Close(); | |
UnityEngine.Debug.Log(a); | |
} | |
catch (Exception) | |
{ | |
throw; | |
} | |
} | |
/********************************unity获取设备信息*******************************/ | |
string systemInfo; | |
public void GetUnityInfo() | |
{ | |
systemInfo = "\tTitle:当前系统基础信息:\n设备模型:" + SystemInfo.deviceModel + "\n设备名称:" + SystemInfo.deviceName + "\n设备类型:" + SystemInfo.deviceType + | |
"\n设备唯一标识符:" + SystemInfo.deviceUniqueIdentifier + "\n显卡标识符:" + SystemInfo.graphicsDeviceID + | |
"\n显卡设备名称:" + SystemInfo.graphicsDeviceName + "\n显卡厂商:" + SystemInfo.graphicsDeviceVendor + | |
"\n显卡厂商ID:" + SystemInfo.graphicsDeviceVendorID + "\n显卡支持版本:" + SystemInfo.graphicsDeviceVersion + | |
"\n显存(M):" + SystemInfo.graphicsMemorySize + "\n显卡像素填充率(百万像素/秒),-1未知填充率:" + SystemInfo.graphicsPixelFillrate + | |
"\n显卡支持Shader层级:" + SystemInfo.graphicsShaderLevel + "\n支持最大图片尺寸:" + SystemInfo.maxTextureSize + | |
"\nnpotSupport:" + SystemInfo.npotSupport + "\n操作系统:" + SystemInfo.operatingSystem + | |
"\nCPU处理核数:" + SystemInfo.processorCount + "\nCPU类型:" + SystemInfo.processorType + | |
"\nsupportedRenderTargetCount:" + SystemInfo.supportedRenderTargetCount + "\nsupports3DTextures:" + SystemInfo.supports3DTextures + | |
"\nsupportsAccelerometer:" + SystemInfo.supportsAccelerometer + "\nsupportsComputeShaders:" + SystemInfo.supportsComputeShaders + | |
"\nsupportsGyroscope:" + SystemInfo.supportsGyroscope + "\nsupportsImageEffects:" + SystemInfo.supportsImageEffects + | |
"\nsupportsInstancing:" + SystemInfo.supportsInstancing + "\nsupportsLocationService:" + SystemInfo.supportsLocationService + | |
"\nsupportsRenderTextures:" + SystemInfo.supportsRenderTextures + "\nsupportsRenderToCubemap:" + SystemInfo.supportsRenderToCubemap + | |
"\nsupportsShadows:" + SystemInfo.supportsShadows + "\nsupportsSparseTextures:" + SystemInfo.supportsSparseTextures + | |
"\nsupportsStencil:" + SystemInfo.supportsStencil + "\nsupportsVertexPrograms:" + SystemInfo.supportsVertexPrograms + | |
"\nsupportsVibration:" + SystemInfo.supportsVibration + "\n内存大小:" + SystemInfo.systemMemorySize; | |
} | |
void OnGUI() | |
{ | |
GUILayout.Label(systemInfo); | |
} | |
/************************************************************************/ | |
// Update is called once per frame | |
void Update () { | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://gameinstitute.qq.com/community/detail/128750