コード例 #1
0
        //int tempIndex = 0;

        public GPUInfo(string GPUId)
        {
            MAGPUId = GPUId.Trim();
            MAState = MSIABControl.Start(0);

            if (MAState == MSIABControlState.Success)
            {
                //for (int i = 0; i < MSIABControl.GpuCount; i++)
                //{
                //  if (MSIABControl.MAHM.GpuEntries[i].GpuId.ToUpper().Trim() == MAGPUId.ToUpper())
                //  {
                //    MAIndex = i;
                //    DeviceName = MSIABControl.MAHM.GpuEntries[i].Device;
                //    break;
                //  }
                //}

                //for (int i = 0; i <= MAIndex; i++)
                //{
                //  if (MSIABControl.MAHM.GpuEntries[i].Device == DeviceName)
                //    tempIndex++;
                //}
                OHIndex = MSIABControl.GetAtiNvidiaCardIndex(GPUId);
            }

            if ((DeviceName != "") && (OHIndex >= 0))//(tempIndex>0))
            {
                OHComputer.Open();
                OHComputer.GPUEnabled = true;

                //for (int i = 0; i < OHComputer.Hardware.Length; i++)
                //{
                //  if (OHComputer.Hardware[i].Name.ToUpper().Contains(DeviceName.ToUpper()) || DeviceName.ToUpper().Contains(OHComputer.Hardware[i].Name.ToUpper()))
                //  {
                //    tempIndex--;
                //    if (tempIndex == 0)
                //    {
                //      OHIndex = i;
                //      break;
                //    }
                //  }
                //}

                if (OHComputer.Hardware[OHIndex].Name.ToUpper() != DeviceName.ToUpper())
                {
                    OHIndex = -1;
                }

                if (OHIndex >= 0)
                {
                    for (int j = 0; j < OHComputer.Hardware[OHIndex].Sensors.Length; j++)
                    {
                        string _name = OHComputer.Hardware[OHIndex].Sensors[j].Name.Trim().ToUpper();

                        switch (OHComputer.Hardware[OHIndex].Sensors[j].SensorType)
                        {
                        case SensorType.Clock:
                            if (_name.Contains(OHCoreIndexName.ToUpper()))
                            {
                                OHCoreClockIndex = j;
                            }
                            else if (_name.Contains(OHMemoryIndexName.ToUpper()))
                            {
                                OHMemoryClockIndex = j;
                            }
                            break;

                        case SensorType.Temperature:
                            if (_name.Contains(OHCoreIndexName.ToUpper()))
                            {
                                OHCoreTemperatureIndex = j;
                            }
                            break;

                        case SensorType.Control:
                            if (_name.Contains(OHFanIndexName.ToUpper()))
                            {
                                OHControlFanIndex = j;
                            }
                            break;

                        default:
                            break;
                        }
                    }
                }

                OHComputer.Close();
            }
        }