Esempio n. 1
0
        /// <summary>
        /// Get the total ram available
        /// </summary>
        /// <returns></returns>
        public static string GetTotalRAM()
        {
            double ram = 0;

            try
            {
                System.Management.ObjectQuery myQuery = new System.Management.ObjectQuery("SELECT * FROM Win32_PhysicalMemory");
                System.Management.ManagementObjectSearcher mySearcher = new System.Management.ManagementObjectSearcher(myQuery);

                foreach (System.Management.ManagementObject myObject in mySearcher.Get())
                {
                    ram += ConvertUtil.cDbl(myObject["Capacity"].ToString());
                }

                if (ram == 0)
                {
                    return("Unknown RAM");
                }
                else
                {
                    return(Convert.ToString(ram / MEM_MB) + " MB");
                }
            }
            catch
            {
                return("Unknown RAM");
            }
        }
Esempio n. 2
0
        public static Size GetMaximumScreenSizePrimary()
        {
            var scope = new System.Management.ManagementScope();
            var q = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");

            UInt32 maxHResolution;
            UInt32 maxVResolution;

            using (var searcher = new System.Management.ManagementObjectSearcher(scope, q))
            {
                var results = searcher.Get();
                maxHResolution = 0;
                maxVResolution = 0;

                foreach (var item in results)
                {
                    if ((UInt32)item["HorizontalResolution"] > maxHResolution)
                        maxHResolution = (UInt32)item["HorizontalResolution"];

                    if ((UInt32)item["VerticalResolution"] > maxVResolution)
                        maxVResolution = (UInt32)item["VerticalResolution"];
                }
            }

            return new Size((int)maxHResolution, (int)maxVResolution);
        }
Esempio n. 3
0
        private static List <string> GetAllPrintersInternal(int failCounter)
        {
            try
            {
                List <string> printers = new List <string>();

                string selectAllQuery = "SELECT * FROM Win32_Printer";

                System.Management.ObjectQuery oq = new System.Management.ObjectQuery(selectAllQuery);

                System.Management.ManagementObjectSearcher   query1           = new System.Management.ManagementObjectSearcher(oq);
                System.Management.ManagementObjectCollection queryCollection1 = query1.Get();

                foreach (System.Management.ManagementObject mo in queryCollection1)
                {
                    System.Management.PropertyDataCollection pdc = mo.Properties;
                    printers.Add(mo["Name"].ToString());
                }

                return(printers);
            }
            catch
            {
                if (failCounter > 3)
                {
                    throw;
                }

                Thread.Sleep(new TimeSpan(0, 0, 5));
                return(GetAllPrintersInternal(++failCounter));
            }
        }
Esempio n. 4
0
        internal static byte[] GetDmi()
        {
            var scope = new System.Management.ManagementScope("\\\\" + "." + "\\root\\WMI");

            scope.Connect();
            var wmiquery         = new System.Management.ObjectQuery("SELECT * FROM MSSmBios_RawSMBiosTables");
            var searcher         = new System.Management.ManagementObjectSearcher(scope, wmiquery);
            var coll             = searcher.Get();
            var M_ByMajorVersion = 0;
            var M_ByMinorVersion = 0;

            byte[] data = null;
            foreach (var O in coll)
            {
                var queryObj = (System.Management.ManagementObject)O;
                if (queryObj["SMBiosData"] != null)
                {
                    data = (byte[])(queryObj["SMBiosData"]);
                }
                if (queryObj["SmbiosMajorVersion"] != null)
                {
                    M_ByMajorVersion = (byte)(queryObj["SmbiosMajorVersion"]);
                }
                if (queryObj["SmbiosMinorVersion"] != null)
                {
                    M_ByMinorVersion = (byte)(queryObj["SmbiosMinorVersion"]);
                }
                //if (queryObj["Size"] != null) m_dwLen = (long)(queryObj["Size"]);
                //m_dwLen = m_pbBIOSData.Length;
            }

            Version = (ushort)(M_ByMajorVersion << 8 | M_ByMinorVersion);

            return(data);
        }
Esempio n. 5
0
        private static List<string> GetAllPrintersInternal(int failCounter)
        {
            try
            {
                List<string> printers = new List<string>();

                string selectAllQuery = "SELECT * FROM Win32_Printer";

                System.Management.ObjectQuery oq = new System.Management.ObjectQuery(selectAllQuery);

                System.Management.ManagementObjectSearcher query1 = new System.Management.ManagementObjectSearcher(oq);
                System.Management.ManagementObjectCollection queryCollection1 = query1.Get();

                foreach (System.Management.ManagementObject mo in queryCollection1)
                {
                    System.Management.PropertyDataCollection pdc = mo.Properties;
                    printers.Add(mo["Name"].ToString());
                }

                return printers;
            }
            catch
            {
                if (failCounter > 3)
                    throw;

                Thread.Sleep(new TimeSpan(0, 0, 5));
                return GetAllPrintersInternal(++failCounter);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Returns the total available system memory. Uses the System.Managment interface so only available when run in Windows.
        /// Will return double.maxValue if error or non windows environment.
        /// </summary>
        /// <returns></returns>
        public static double AvailableSystemMemoryMB()
        {
            if (Type.GetType("Mono.Runtime") == null)
            {
                try
                {
                    System.Management.ObjectQuery wql = new System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem");
                    System.Management.ManagementObjectSearcher   searcher = new System.Management.ManagementObjectSearcher(wql);
                    System.Management.ManagementObjectCollection results  = searcher.Get();

                    double total = 0;

                    foreach (System.Management.ManagementObject result in results)
                    {
                        ulong?value = result["FreePhysicalMemory"] as ulong?;
                        if (value != null)
                        {
                            total += (ulong)value;
                        }
                    }

                    return(total / 1024.0);
                }
                catch (Exception)
                {
                    return(double.MaxValue);
                }
            }
            else
            {
                return(double.MaxValue);
            }
        }
        static AndroidUsbDriverHelper( )
        {
            try {
                System.Management.ManagementClass wmi = new System.Management.ManagementClass ( );
                System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery ( QUERY );
                System.Management.ManagementScope oMs = new System.Management.ManagementScope ( );
                System.Management.ManagementObjectSearcher oSearcher = new System.Management.ManagementObjectSearcher ( oMs, oQuery );
                System.Management.ManagementObjectCollection oResults = oSearcher.Get ( );
                if ( oResults.Count == 1 ) {
                    foreach ( var item in oResults ) {
                        string dv = string.Format ( CultureInfo.InvariantCulture, "{0}", item["DriverVersion"] );
                        if ( !string.IsNullOrEmpty ( dv ) ) {
                            DriverVersion = new Version ( dv );
                        } else {
                            // default
                            DriverVersion = new Version ( "0.0.0.0" );
                        }

                        string cg = string.Format ( CultureInfo.InvariantCulture, "{0}", item["ClassGuid"] );
                        if ( !string.IsNullOrEmpty ( cg ) ) {
                            IsRevision2Driver = string.Compare ( cg, DRIVER_CLASS_GUID_REVISION2, true ) == 0;
                            IsRevision1Driver = !IsRevision2Driver;
                        } else {
                            // default to cupcake
                            IsRevision1Driver = true;
                            IsRevision2Driver = false;
                        }
                    }
                }
            } catch ( Exception ex ) {
                Logger.LogError ( typeof ( AndroidUsbDriverHelper ), ex.Message, ex );
                DriverVersion = new Version ( "0.0.0.0" );
            }
        }
        } // End Function AddUserToLocalGroup

        public static string GetProcessInfoByPID(int PID, out string User, out string Domain)
        {
            User   = string.Empty;
            Domain = string.Empty;
            string OwnerSID    = string.Empty;
            string processname = string.Empty;

            try
            {
                System.Management.ObjectQuery sq = new System.Management.ObjectQuery(@"
SELECT * FROM Win32_Process WHERE ProcessID = '" + PID + @"' 
");

                System.Management.ManagementObjectSearcher searcher =
                    new System.Management.ManagementObjectSearcher(sq);

                if (searcher.Get().Count == 0)
                {
                    return(OwnerSID);
                }

                foreach (System.Management.ManagementObject oReturn in searcher.Get())
                {
                    // Invoke the method and populate the o array with the user name and domain
                    string[] o = new string[2];
                    oReturn.InvokeMethod("GetOwner", (object[])o);

                    // int pid = (int)oReturn["ProcessID"];
                    processname = (string)oReturn["Name"];

                    // dr[2] = oReturn["Description"];
                    User = o[0];

                    if (User == null)
                    {
                        User = string.Empty;
                    }

                    Domain = o[1];

                    if (Domain == null)
                    {
                        Domain = string.Empty;
                    }

                    string[] sid = new string[1];
                    oReturn.InvokeMethod("GetOwnerSid", (object[])sid);
                    OwnerSID = sid[0];
                    return(OwnerSID);
                } // Next oReturn
            }     // End Try
            catch
            {
                return(OwnerSID);
            } // End Catch

            return(OwnerSID);
        } // End Function GetProcessInfoByPID
Esempio n. 9
0
 public static ActionResult GetAndroidUsbDriverVersionWmi(Session session)
 {
     session.Log("(DECA) Begin GetAndroidUsbDriverVersionWmi");
     try {
         System.Management.ManagementClass            wmi       = new System.Management.ManagementClass( );
         System.Management.ObjectQuery                oQuery    = new System.Management.ObjectQuery(string.Format(CultureInfo.InvariantCulture, WMI_QUERY, REVISION2_GUID));
         System.Management.ManagementScope            oMs       = new System.Management.ManagementScope( );
         System.Management.ManagementObjectSearcher   oSearcher = new System.Management.ManagementObjectSearcher(oMs, oQuery);
         System.Management.ManagementObjectCollection oResults  = oSearcher.Get( );
         if (oResults.Count > 0)
         {
             foreach (var item in oResults)
             {
                 string cg = string.Format(CultureInfo.InvariantCulture, "{0}", item["ClassGuid"]);
                 if (!string.IsNullOrEmpty(cg))
                 {
                     bool foundR1 = string.Compare(cg, REVISION1_GUID, true) == 0;
                     bool foundR2 = string.Compare(cg, REVISION2_GUID, true) == 0;
                     if (foundR1)
                     {
                         session[ANDROIDUSBDRIVERVERSION]    = REVISION1;
                         session[ANDROIDUSBDRIVERSINSTALLED] = "1";
                         session.Log("(DECA) Found Revision 1 version of Android USB Driver");
                         return(ActionResult.Success);
                     }
                     else if (foundR2)
                     {
                         session[ANDROIDUSBDRIVERVERSION]    = REVISION2;
                         session[ANDROIDUSBDRIVERSINSTALLED] = "0";
                         session.Log("(DECA) Found Revision 2 version of Android USB Driver");
                         return(ActionResult.Success);
                     }
                     else
                     {
                         session.Log("(DECA) Did not find a know ClassGuid: {0}", cg);
                     }
                 }
                 else
                 {
                     session.Log("(DECA) ClassGuid was Empty");
                 }
             }
         }
         else
         {
             session.Log("(DECA) No WMI Results were returned.");
         }
     } catch (Exception ex) {
         session.Log(ex.ToString());
     }
     session[ANDROIDUSBDRIVERVERSION]    = "0";
     session[ANDROIDUSBDRIVERSINSTALLED] = "0";
     session.Log("(DECA) Did not find any version of Android USB Driver");
     return(ActionResult.Success);
 }
Esempio n. 10
0
 public static System.Collections.Generic.List<System.Management.ManagementObject> PerformQuery(string Query)
 {
     System.Collections.Generic.List<System.Management.ManagementObject> list = new List<System.Management.ManagementObject>();
     try {
         System.Management.ManagementObjectSearcher searcher;
         System.Management.ObjectQuery query = new System.Management.ObjectQuery(Query);
         searcher = new System.Management.ManagementObjectSearcher(query);
         foreach (System.Management.ManagementObject obj in searcher.Get()) {
             list.Add(obj);
         }
     } catch (Exception) { }
     return list;
 }
Esempio n. 11
0
        /// <summary>
        /// Looks for the resolution 5760 x 1080. If the resolution is available, stereo mode is available.
        /// (Looking for the max resolution didn't work because it returned 5760 x 1200.)
        /// </summary>
        /// <returns></returns>
        public static void PrintResolutions()
        {
            var scope = new System.Management.ManagementScope();
            var q = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");

            using(var searcher = new System.Management.ManagementObjectSearcher(scope, q)) {
                var results = searcher.Get();

                foreach(var item in results) {
                    Console.WriteLine((UInt32)item["HorizontalResolution"] + " x " + (UInt32)item["VerticalResolution"]);
                }
            }
        }
Esempio n. 12
0
 public static System.Collections.Generic.List <System.Management.ManagementObject> PerformQuery(string Query)
 {
     System.Collections.Generic.List <System.Management.ManagementObject> list = new List <System.Management.ManagementObject>();
     try {
         System.Management.ManagementObjectSearcher searcher;
         System.Management.ObjectQuery query = new System.Management.ObjectQuery(Query);
         searcher = new System.Management.ManagementObjectSearcher(query);
         foreach (System.Management.ManagementObject obj in searcher.Get())
         {
             list.Add(obj);
         }
     } catch (Exception) { }
     return(list);
 }
Esempio n. 13
0
        public static List<Adapter> GetAdapters()
        {
            List<Adapter> adapterList = new List<Adapter>();
            string query = "SELECT * FROM Win32_NetworkAdapterConfiguration";

            System.Management.ManagementObjectSearcher searcher;
            System.Management.ObjectQuery q = new System.Management.ObjectQuery(query);
            searcher = new System.Management.ManagementObjectSearcher(q);
            foreach(System.Management.ManagementObject share in searcher.Get()) {
                Adapter ad = new Adapter();
                ad.PropertyData = share;
                adapterList.Add(ad);
            }
            return adapterList;
        }
Esempio n. 14
0
        public static string Detect3264()
        {
            System.Management.ConnectionOptions oConn = new System.Management.ConnectionOptions();
            System.Management.ManagementScope oMs = new System.Management.ManagementScope("\\\\localhost", oConn);
            System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery("select AddressWidth from Win32_Processor");
            System.Management.ManagementObjectSearcher oSearcher = new System.Management.ManagementObjectSearcher(oMs, oQuery);
            System.Management.ManagementObjectCollection oReturnCollection = oSearcher.Get();
            string addressWidth = null;

            foreach (System.Management.ManagementObject oReturn in oReturnCollection)
            {
                addressWidth = oReturn["AddressWidth"].ToString();
            }

            return addressWidth;
        }
        public static List <Adapter> GetAdapters()
        {
            List <Adapter> adapterList = new List <Adapter>();
            string         query       = "SELECT * FROM Win32_NetworkAdapterConfiguration";

            System.Management.ManagementObjectSearcher searcher;
            System.Management.ObjectQuery q = new System.Management.ObjectQuery(query);
            searcher = new System.Management.ManagementObjectSearcher(q);
            foreach (System.Management.ManagementObject share in searcher.Get())
            {
                Adapter ad = new Adapter();
                ad.PropertyData = share;
                adapterList.Add(ad);
            }
            return(adapterList);
        }
Esempio n. 16
0
        /// <summary>
        /// Looks for the resolution 5760 x 1080. If the resolution is available, stereo mode is available.
        /// (Looking for the max resolution didn't work because it returned 5760 x 1200.)
        /// </summary>
        /// <returns></returns>
        public static bool IsStereoAvailable()
        {
            bool isStereoModeAvailable = false;
            var scope = new System.Management.ManagementScope();
            var q = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");

            using(var searcher = new System.Management.ManagementObjectSearcher(scope, q)) {
                var results = searcher.Get();

                foreach(var item in results) {
                    if((UInt32)item["HorizontalResolution"] == 5760 && (UInt32)item["VerticalResolution"] == 1080)
                        isStereoModeAvailable = true;
                }
            }

            return isStereoModeAvailable;
        }
Esempio n. 17
0
 private static string GetUserSIDByProcessID(int processID)
 {
     System.Management.ObjectQuery sq = new System.Management.ObjectQuery(string.Format("Select * from Win32_Process Where ProcessID = '{0}'", processID));
     System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(sq);
     if (searcher.Get().Count == 0)
     {
         return(string.Empty);
     }
     else
     {
         foreach (System.Management.ManagementObject searchResult in searcher.Get())
         {
             string[] sid = new String[1];
             searchResult.InvokeMethod("GetOwnerSid", (object[])sid);
             return(sid[0]);
         }
         return(string.Empty);
     }
 }
        static AndroidUsbDriverHelper( )
        {
            try {
                System.Management.ManagementClass            wmi       = new System.Management.ManagementClass( );
                System.Management.ObjectQuery                oQuery    = new System.Management.ObjectQuery(QUERY);
                System.Management.ManagementScope            oMs       = new System.Management.ManagementScope( );
                System.Management.ManagementObjectSearcher   oSearcher = new System.Management.ManagementObjectSearcher(oMs, oQuery);
                System.Management.ManagementObjectCollection oResults  = oSearcher.Get( );
                if (oResults.Count == 1)
                {
                    foreach (var item in oResults)
                    {
                        string dv = string.Format(CultureInfo.InvariantCulture, "{0}", item["DriverVersion"]);
                        if (!string.IsNullOrEmpty(dv))
                        {
                            DriverVersion = new Version(dv);
                        }
                        else
                        {
                            // default
                            DriverVersion = new Version("0.0.0.0");
                        }

                        string cg = string.Format(CultureInfo.InvariantCulture, "{0}", item["ClassGuid"]);
                        if (!string.IsNullOrEmpty(cg))
                        {
                            IsRevision2Driver = string.Compare(cg, DRIVER_CLASS_GUID_REVISION2, true) == 0;
                            IsRevision1Driver = !IsRevision2Driver;
                        }
                        else
                        {
                            // default to cupcake
                            IsRevision1Driver = true;
                            IsRevision2Driver = false;
                        }
                    }
                }
            } catch (Exception ex) {
                Logger.LogError(typeof(AndroidUsbDriverHelper), ex.Message, ex);
                DriverVersion = new Version("0.0.0.0");
            }
        }
Esempio n. 19
0
        /// <summary>
        /// Get the service pack installed on the current computer
        /// This WMI procedure works for Windows 2000 and above
        /// </summary>
        /// <returns></returns>
        public static string GetServicePack()
        {
            string results = "Unknown Service Pack";

            try
            {
                System.Management.ObjectQuery myQuery = new System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem");
                System.Management.ManagementObjectSearcher mySearcher = new System.Management.ManagementObjectSearcher(myQuery);

                foreach (System.Management.ManagementObject myObject in mySearcher.Get())
                {
                    results = "Service Pack " + myObject["ServicePackMajorVersion"].ToString() + "." + myObject["ServicePackMinorVersion"].ToString();
                }
            }
            catch
            {
            }

            return(results);
        }
Esempio n. 20
0
        /// <summary>
        /// Get the operating System version
        /// </summary>
        /// <returns></returns>
        public static string GetOSVersion()
        {
            string results = "Unknown OS";

            try
            {
                System.Management.ObjectQuery myQuery = new System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem");
                System.Management.ManagementObjectSearcher mySearcher = new System.Management.ManagementObjectSearcher(myQuery);

                foreach (System.Management.ManagementObject myObject in mySearcher.Get())
                {
                    results = myObject["caption"].ToString();
                }

                return(results + ", " + GetServicePack());
            }
            catch
            {
                return(GetOSVersionSafe());
            }
        }
Esempio n. 21
0
        public static void SetNewDefaultPrinter(string newDefaultPrinterName)
        {
            string selectAllQuery = "SELECT * FROM Win32_Printer";

            System.Management.ObjectQuery oq = new System.Management.ObjectQuery(selectAllQuery);

            System.Management.ManagementObjectSearcher   query1           = new System.Management.ManagementObjectSearcher(oq);
            System.Management.ManagementObjectCollection queryCollection1 = query1.Get();
            System.Management.ManagementObject           newDefault       = null;

            foreach (System.Management.ManagementObject mo in queryCollection1)
            {
                System.Management.PropertyDataCollection pdc = mo.Properties;
                if (mo["Name"].ToString().ToUpper().Trim() == newDefaultPrinterName.ToUpper())
                {
                    newDefault = mo;
                    break;
                }
            }

            if (newDefault != null)
            {
                System.Management.ManagementBaseObject outParams = newDefault.InvokeMethod("SetDefaultPrinter", null, null);
                string returnValue = outParams["returnValue"].ToString();
                if (returnValue != "0")
                {
                    throw new ApplicationException(string.Format("Change Printer '{0}' failed. Return Value: {1}", newDefault.ToString(), returnValue));
                }

                var     HWND_BROADCAST   = new IntPtr(0xffff);
                uint    WM_SETTINGCHANGE = 0x001A;
                UIntPtr innerPinvokeResult;
                var     pinvokeResult = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, UIntPtr.Zero,
                                                           IntPtr.Zero, SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            }
            else
            {
                throw new ApplicationException(string.Format("Change Printer '{0}' failed. Managemengt object not found", newDefaultPrinterName));
            }
        }
Esempio n. 22
0
        public static void SetNewDefaultPrinter(string newDefaultPrinterName)
        {
            string selectAllQuery = "SELECT * FROM Win32_Printer";

            System.Management.ObjectQuery oq = new System.Management.ObjectQuery(selectAllQuery);

            System.Management.ManagementObjectSearcher query1 = new System.Management.ManagementObjectSearcher(oq);
            System.Management.ManagementObjectCollection queryCollection1 = query1.Get();
            System.Management.ManagementObject newDefault = null;

            foreach (System.Management.ManagementObject mo in queryCollection1)
            {
                System.Management.PropertyDataCollection pdc = mo.Properties;
                if (mo["Name"].ToString().ToUpper().Trim() == newDefaultPrinterName.ToUpper())
                {
                    newDefault = mo;
                    break;
                }
            }

            if (newDefault != null)
            {
                System.Management.ManagementBaseObject outParams = newDefault.InvokeMethod("SetDefaultPrinter", null, null);
                string returnValue = outParams["returnValue"].ToString();
                if (returnValue != "0")
                    throw new ApplicationException(string.Format("Change Printer '{0}' failed. Return Value: {1}", newDefault.ToString(), returnValue));

                var HWND_BROADCAST = new IntPtr(0xffff);
                uint WM_SETTINGCHANGE = 0x001A;
                UIntPtr innerPinvokeResult;
                var pinvokeResult = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, UIntPtr.Zero,
                    IntPtr.Zero, SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            }
            else
            {
                throw new ApplicationException(string.Format("Change Printer '{0}' failed. Managemengt object not found", newDefaultPrinterName));
            }
        }
Esempio n. 23
0
        public static int[] GetMaxScreenSize()
        {
            var    scope          = new System.Management.ManagementScope();
            var    q              = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");
            var    searcher       = new System.Management.ManagementObjectSearcher(scope, q);
            var    results        = searcher.Get();
            UInt32 maxHResolution = 0;
            UInt32 maxVResolution = 0;

            foreach (var item in results)
            {
                if ((UInt32)item["HorizontalResolution"] > maxHResolution)
                {
                    maxHResolution = (UInt32)item["HorizontalResolution"];
                }
                if ((UInt32)item["VerticalResolution"] > maxVResolution)
                {
                    maxVResolution = (UInt32)item["VerticalResolution"];
                }
            }
            return(new int[2] {
                Convert.ToInt32(maxHResolution), Convert.ToInt32(maxVResolution)
            });
        }
        private void LoadShares(string Username, string Password, string Computer)
        {
            List<Share> shares = new List<Share>();
            System.Text.StringBuilder sb = new StringBuilder();
            string qry = "select * from win32_share";
            System.Management.ManagementObjectSearcher searcher;
            System.Management.ObjectQuery query = new System.Management.ObjectQuery(qry);

            if(Username != "" && Password != "" && Computer != "" && !Computer.StartsWith(@"\\localhost")) {
                System.Management.ConnectionOptions oConn = new System.Management.ConnectionOptions();
                oConn.Username = Username;
                oConn.Password = Password;
                if(!Computer.StartsWith(@"\\")) Computer = @"\\" + Computer;
                if(!Computer.ToLower().EndsWith(@"\root\cimv2")) Computer = Computer + @"\root\cimv2";
                System.Management.ManagementScope oMs = new System.Management.ManagementScope(Computer, oConn);

                searcher = new System.Management.ManagementObjectSearcher(oMs, query);
            } else {
                searcher = new System.Management.ManagementObjectSearcher(query);
            }

            foreach(System.Management.ManagementObject share in searcher.Get()) {
                Share s = new Share();
                foreach(System.Management.PropertyData p in share.Properties) {
                    switch(p.Name) {
                        case "AccessMask":
                            if(p.Value != null) s.AccessMask = p.Value.ToString();
                            break;
                        case "MaximumAllowed":
                            if(p.Value != null) s.MaximumAllowed = p.Value.ToString();
                            break;
                        case "InstallDate":
                            if(p.Value != null) s.InstallDate = p.Value.ToString();
                            break;
                        case "Description":
                            if(p.Value != null) s.Description = p.Value.ToString();
                            break;
                        case "Caption":
                            if(p.Value != null) s.Caption = p.Value.ToString();
                            break;
                        case "AllowMaximum":
                            if(p.Value != null) s.AllowMaximum = p.Value.ToString();
                            break;
                        case "Name":
                            if(p.Value != null) s.Name = p.Value.ToString();
                            break;
                        case "Path":
                            if(p.Value != null) s.Path = p.Value.ToString();
                            break;
                        case "Status":
                            if(p.Value != null) s.Status = p.Value.ToString();
                            break;
                        case "Type":
                            if(p.Value != null) s._Type = p.Value.ToString();
                            break;
                        default:
                            break;
                    }
                }
                shares.Add(s);
            }
            this.dataGridView1.DataSource = shares;
        }
Esempio n. 25
0
        private void LoadShares(string Username, string Password, string Computer)
        {
            List <Share> shares = new List <Share>();

            System.Text.StringBuilder sb = new StringBuilder();
            string qry = "select * from win32_share";

            System.Management.ManagementObjectSearcher searcher;
            System.Management.ObjectQuery query = new System.Management.ObjectQuery(qry);

            if (Username != "" && Password != "" && Computer != "" && !Computer.StartsWith(@"\\localhost"))
            {
                System.Management.ConnectionOptions oConn = new System.Management.ConnectionOptions();
                oConn.Username = Username;
                oConn.Password = Password;
                if (!Computer.StartsWith(@"\\"))
                {
                    Computer = @"\\" + Computer;
                }
                if (!Computer.ToLower().EndsWith(@"\root\cimv2"))
                {
                    Computer = Computer + @"\root\cimv2";
                }
                System.Management.ManagementScope oMs = new System.Management.ManagementScope(Computer, oConn);

                searcher = new System.Management.ManagementObjectSearcher(oMs, query);
            }
            else
            {
                searcher = new System.Management.ManagementObjectSearcher(query);
            }

            foreach (System.Management.ManagementObject share in searcher.Get())
            {
                Share s = new Share();
                foreach (System.Management.PropertyData p in share.Properties)
                {
                    switch (p.Name)
                    {
                    case "AccessMask":
                        if (p.Value != null)
                        {
                            s.AccessMask = p.Value.ToString();
                        }
                        break;

                    case "MaximumAllowed":
                        if (p.Value != null)
                        {
                            s.MaximumAllowed = p.Value.ToString();
                        }
                        break;

                    case "InstallDate":
                        if (p.Value != null)
                        {
                            s.InstallDate = p.Value.ToString();
                        }
                        break;

                    case "Description":
                        if (p.Value != null)
                        {
                            s.Description = p.Value.ToString();
                        }
                        break;

                    case "Caption":
                        if (p.Value != null)
                        {
                            s.Caption = p.Value.ToString();
                        }
                        break;

                    case "AllowMaximum":
                        if (p.Value != null)
                        {
                            s.AllowMaximum = p.Value.ToString();
                        }
                        break;

                    case "Name":
                        if (p.Value != null)
                        {
                            s.Name = p.Value.ToString();
                        }
                        break;

                    case "Path":
                        if (p.Value != null)
                        {
                            s.Path = p.Value.ToString();
                        }
                        break;

                    case "Status":
                        if (p.Value != null)
                        {
                            s.Status = p.Value.ToString();
                        }
                        break;

                    case "Type":
                        if (p.Value != null)
                        {
                            s._Type = p.Value.ToString();
                        }
                        break;

                    default:
                        break;
                    }
                }
                shares.Add(s);
            }
            this.dataGridView1.DataSource = shares;
        }
Esempio n. 26
0
        private void Test13()
        {
            string machineName = "svapl02-36";
            string name = @"d:\\Web\\Facilities.Instalaciones.BS.WS\\web.config";

            System.Management.ManagementScope scope = WIN32.WmiAccess.Connect(machineName);
            string ext = System.IO.Path.GetExtension(name);
            if (ext.StartsWith(".")) { ext = ext.Replace(".", ""); }
            string fname = System.IO.Path.GetFileNameWithoutExtension(name);
            System.IO.FileInfo f = new System.IO.FileInfo(name);
            string dir = f.DirectoryName;
            dir = dir.Replace(@"\", @"\\");
            dir = dir.ToLower().Replace("d:", "").Replace("c:", "").Replace("e:", "").Replace("f:", "");
            System.Management.ObjectQuery query = new System.Management.ObjectQuery("SELECT * FROM CIM_DataFile WHERE Name = '" + name + "'");
            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(scope, query);
            System.Management.ManagementObjectCollection results = searcher.Get();

            foreach (System.Management.ManagementObject mo in results)
            {
                WIN32.CIM_DataFile cm = new DotNet.Tools.WIN32.CIM_DataFile(mo);
                System.Management.ManagementObjectCollection m_R = mo.GetRelated("Win32_Process");
                foreach (System.Management.ManagementObject mmm in m_R)
                {
                    Console.WriteLine(mmm.ClassPath);
                }

            }
        }
Esempio n. 27
0
        /// <summary>
        /// HACK: Microsoft CDC driver (usbser.sys) does not register properly as a serial port
        /// It needs serenum.sys upper port filter which causes problems of its own...
        ///
        /// </summary>
        /// <param name="ports"></param>
        private static void PatchInZModemSerials(List <SerialPortInfo> ports)
        {
            /* SiLabs licensed USB to serial driver PID/VID */
            const string SILABS_VID_PID = @"USB\VID_10C4&PID_81E8";
            /* Zephyr VID (not specific on PID) */
            const string ZEPHYR_VID = @"USB\VID_22F3";
            string       pnpDevId;
            int          startIndex;
            int          length;

            System.Management.ManagementScope            scope;
            System.Management.ObjectQuery                query;
            System.Management.ManagementObjectSearcher   searcher;
            System.Management.ManagementObjectCollection returnCollection;
            System.Management.EnumerationOptions         opt = new System.Management.EnumerationOptions();


            try
            {
                /* get the data NOW, don't put off the query until it is required (30sec timeout) */
                opt.ReturnImmediately = false;
                opt.Timeout           = new TimeSpan(0, 0, 30);

                /* define scope, in this case, this machine */
                scope = new System.Management.ManagementScope(@"root\CIMV2");
                /* set the query, get all information on the serial ports on the system */
                query = new System.Management.ObjectQuery("SELECT * from Win32_SerialPort");

                /* stick two together into a search */
                searcher = new System.Management.ManagementObjectSearcher(scope, query, opt);

                /* Run the query */
                returnCollection = searcher.Get();

                foreach (var oReturn in returnCollection)
                {
                    pnpDevId = oReturn["PNPDeviceID"] as string;
                    pnpDevId = pnpDevId.ToUpper();  // Vista / Win7 seem to use upper case PID/VID/GUID


                    /* Checks to see if the candidate mySerialPort is a zephyr Serial Port */
                    if ((pnpDevId.LastIndexOf(SILABS_VID_PID) > -1) || (pnpDevId.LastIndexOf(ZEPHYR_VID) > -1))
                    {
                        /* Extract the serial number from the PnP mySerialPort ID */
                        startIndex = pnpDevId.LastIndexOf(@"\") + 1;
                        length     = pnpDevId.LastIndexOf(@"_") - startIndex;
                        if (length < 0)
                        {
                            length = pnpDevId.Length - startIndex;
                        }

                        /* If port not already known, add to list */
                        string serial   = pnpDevId.Substring(startIndex, length);
                        string portName = oReturn["DeviceID"] as string;
                        string caption  = oReturn["Caption"] as string;
                        var    search   = ports.FirstOrDefault(item => item.Name == portName);
                        if (search == null)
                        {
                            System.Diagnostics.Debug.WriteLine("Found: " + oReturn["DeviceID"] + " " + oReturn["Caption"]);
                            SerialPortInfo spi = new SerialPortInfo();
                            spi.SerialName   = serial;
                            spi.Name         = portName;
                            spi.FriendlyName = caption;
                            spi.Description  = caption;
                            spi.Manufacturer = "Zephyr";
                            spi.Driver       = "usbser.sys";
                            ports.Add(spi);
                        }
                    }
                }
            }
            catch
            {
            }
        }
 public static ActionResult GetAndroidUsbDriverVersionWmi( Session session )
 {
     session.Log ( "(DECA) Begin GetAndroidUsbDriverVersionWmi" );
     try {
         System.Management.ManagementClass wmi = new System.Management.ManagementClass ( );
         System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery ( string.Format ( CultureInfo.InvariantCulture, WMI_QUERY, REVISION2_GUID ) );
         System.Management.ManagementScope oMs = new System.Management.ManagementScope ( );
         System.Management.ManagementObjectSearcher oSearcher = new System.Management.ManagementObjectSearcher ( oMs, oQuery );
         System.Management.ManagementObjectCollection oResults = oSearcher.Get ( );
         if ( oResults.Count > 0 ) {
             foreach ( var item in oResults ) {
                 string cg = string.Format ( CultureInfo.InvariantCulture, "{0}", item["ClassGuid"] );
                 if ( !string.IsNullOrEmpty ( cg ) ) {
                     bool foundR1 = string.Compare ( cg, REVISION1_GUID, true ) == 0;
                     bool foundR2 = string.Compare ( cg, REVISION2_GUID, true ) == 0;
                     if ( foundR1 ) {
                         session[ANDROIDUSBDRIVERVERSION] = REVISION1;
                         session[ANDROIDUSBDRIVERSINSTALLED] = "1";
                         session.Log ( "(DECA) Found Revision 1 version of Android USB Driver" );
                         return ActionResult.Success;
                     } else if ( foundR2 ) {
                         session[ANDROIDUSBDRIVERVERSION] = REVISION2;
                         session[ANDROIDUSBDRIVERSINSTALLED] = "0";
                         session.Log ( "(DECA) Found Revision 2 version of Android USB Driver" );
                         return ActionResult.Success;
                     } else {
                         session.Log ( "(DECA) Did not find a know ClassGuid: {0}", cg );
                     }
                 } else {
                     session.Log ( "(DECA) ClassGuid was Empty" );
                 }
             }
         } else {
             session.Log ( "(DECA) No WMI Results were returned." );
         }
     } catch ( Exception ex ) {
         session.Log ( ex.ToString() );
     }
     session[ANDROIDUSBDRIVERVERSION] = "0";
     session[ANDROIDUSBDRIVERSINSTALLED] = "0";
     session.Log ( "(DECA) Did not find any version of Android USB Driver" );
     return ActionResult.Success;
 }
        //private bool _UseSingleMouse = true;

        public DemulShooterWindow(string[] Args, bool isVerbose)
        {
            //Stop program if Demulshooter already running
            Process[] pDemulShooter = Process.GetProcessesByName("DemulShooter");
            if (pDemulShooter.Length > 1)
            {
                MessageBox.Show("Another instance of DemulShooter is already running.\nPlease terminate it before launching a new one", "DemulShooter", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Environment.Exit(0);
            }

            //Creating TrayIcon and TrayIcon "Exit" menu
            Application.ApplicationExit += new EventHandler(OnApplicationExit);
            InitializeComponent();

            Logger.IsEnabled = isVerbose;
            Logger.InitLogFileName();
            Logger.WriteLog("");
            Logger.WriteLog("---------------- Program Start -- DemulShooter v" + System.Reflection.Assembly.GetEntryAssembly().GetName().Version.ToString() + " ----------------");

            // Parsing commandline arguments
            for (int i = 0; i < Args.Length; i++)
            {
                Logger.WriteLog("Cmdline arg " + i + " : " + Args[i]);
                if (Args[i].ToLower().StartsWith("-ddinumber"))
                {
                    try
                    {
                        //-1 to transform to a 0-based index for later calculation
                        _Ddinumber = UInt32.Parse((Args[i].Split('='))[1].Trim()) - 1;
                    }
                    catch
                    {
                        Logger.WriteLog("-ddinumber parameter not good, it will keep default value");
                    }
                }
                else if (Args[i].ToLower().Equals("-hardffl"))
                {
                    _HardFfl = true;
                }
                else if (Args[i].ToLower().StartsWith("-forcexratio"))
                {
                    String sX = (Args[i].Split('='))[1].Trim();
                    try
                    {
                        if (sX.Contains("/") && sX.Split('/').Length > 1)
                        {
                            double d1 = Double.Parse(sX.Split('/')[0]);
                            double d2 = Double.Parse(sX.Split('/')[1]);
                            _ForceXratio = d1 / d2;
                        }
                        else
                        {
                            _ForceXratio = Double.Parse(sX, CultureInfo.InvariantCulture);
                        }
                    }
                    catch
                    {
                        Logger.WriteLog("Can't set -ForcedXratio option : " + sX + " is not a valid value");
                    }
                }
                else if (Args[i].ToLower().Equals("-nocrosshair"))
                {
                    _HideGameCrosshair = true;
                }
                else if (Args[i].ToLower().Equals("-noautoreload"))
                {
                    _NoAutoReload = true;
                }
                else if (Args[i].ToLower().Equals("-noautofire"))
                {
                    _NoAutoFire = true;
                }
                if (Args[i].ToLower().Equals("-noinput"))
                {
                    _NoInput = true;
                }
                else if (Args[i].ToLower().Equals("-noguns"))
                {
                    _NoGuns = true;
                }
                else if (Args[i].ToLower().Equals("-noresize"))
                {
                    _DisableWindow = true;
                }
                if (Args[i].ToLower().StartsWith("-rom"))
                {
                    _Rom = (Args[i].Split('='))[1].Trim();
                }
                else if (Args[i].ToLower().StartsWith("-target"))
                {
                    _Target = (Args[i].Split('='))[1].Trim();
                    if (_Target.StartsWith("demul"))
                    {
                        _DemulVersion = _Target.Substring(5, 3);
                    }
                }
                else if (Args[i].ToLower().Equals("-widescreen"))
                {
                    _WidescreenHack = true;
                }
            }
            if (_TrayIcon != null)
            {
                _TrayIcon.Text += "[" + _Target + "] [" + _Rom + "]";
            }

            //Finding plugged devices
            _AvailableControllers = RawInputHelper.GetRawInputDevices(new RawInputDeviceType[] { RawInputDeviceType.RIM_TYPEHID, RawInputDeviceType.RIM_TYPEMOUSE });
            Logger.WriteLog("Found " + _AvailableControllers.Length + " available RawInput devices :");
            foreach (RawInputController c in _AvailableControllers)
            {
                try
                {
                    Logger.WriteLog(" + [" + c.DeviceType.ToString() + "] " + c.DeviceName);
                }
                catch (Exception ex)
                {
                    Logger.WriteLog("ERROR : " + ex.Message.ToString());
                }
            }

            //Reading config file to get parameters
            _Configurator = new Configurator();
            _Configurator.ReadDsConfig(AppDomain.CurrentDomain.BaseDirectory + @"\" + DEMULSHOOTER_CONF_FILENAME);
            foreach (PlayerSettings Player in _Configurator.PlayersSettings)
            {
                Logger.WriteLog("P" + Player.ID + " mode = " + Player.Mode);
                if (Player.Mode == PlayerSettings.PLAYER_MODE_RAWINPUT)
                {
                    bool bControllerfound = false;
                    Logger.WriteLog("P" + Player.ID + " device = " + Player.DeviceName);
                    foreach (RawInputController Controller in _AvailableControllers)
                    {
                        //Usually , the device name never change and it's easy to find back a controller
                        if (Controller.DeviceName == Player.DeviceName)
                        {
                            Player.RIController = Controller;
                            Player.RIController.Selected_AxisX = Player.HidAxisX;
                            Player.RIController.Selected_AxisY = Player.HidAxisY;
                            Player.RIController.Selected_OnScreenTriggerButton  = Player.HidButton_OnScreenTrigger;
                            Player.RIController.Selected_ActionButton           = Player.HidButton_Action;
                            Player.RIController.Selected_OffScreenTriggerButton = Player.HidButton_OffScreenTrigger;
                            Logger.WriteLog("P" + Player.ID + " device plugged and found, Handle = 0x" + Controller.DeviceHandle);
                            Logger.WriteLog("P" + Player.ID + " device : " + Controller.ManufacturerName + " / " + Controller.ProductName);
                            bControllerfound = true;
                            break;
                        }
                    }

                    //Unfortunatelly, on a few cases (SONY DS4 for example), a part of the device name changes so we will check again
                    //with what seems to be a fixed part of the name
                    if (!bControllerfound)
                    {
                        /*foreach (RawInputController Controller in _AvailableControllers)
                         * {
                         *  //Usually , the device name never change and it's easy to find back a controller
                         *  if (Controller.DeviceName == Player.DeviceName)
                         *  {
                         *      Player.RIController = Controller;
                         *      Player.RIController.Set_AxisX(Player.HidAxisX);
                         *      Player.RIController.Set_AxisY(Player.HidAxisY);
                         *      Player.RIController.Set_Button_OnScreenTrigger_Index(Player.HidButton_OnScreenTrigger_Index);
                         *      Player.RIController.Set_Button_Action_Index(Player.HidButton_Action_Index);
                         *      Player.RIController.Set_Button_OffScreenTrigger_Index(Player.HidButton_OffScreenTrigger_Index);
                         *      Logger.WriteLog("P" + Player.ID + " device plugged and found, Handle = 0x" + Controller.DeviceHandle);
                         *      Logger.WriteLog("P" + Player.ID + " device : " + Controller.ProductName + " / " + Controller.DeviceName);
                         *      bControllerfound = true;
                         *      break;
                         *  }
                         * }*/
                    }
                }
                else
                {
                    Logger.WriteLog("P" + Player.ID + " Gamepad ID = " + Player.GamepadID);
                }
            }

            //Info on Monitor (max resolution)
            var    scope  = new System.Management.ManagementScope();
            var    q      = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");
            String Maxres = String.Empty;

            using (var searcher = new System.Management.ManagementObjectSearcher(scope, q))
            {
                var results = searcher.Get();
                foreach (var item in results)
                {
                    Maxres = item["Caption"].ToString();
                }
            }
            Logger.WriteLog("Monitor maximum resolution = " + Maxres);

            CreateRawMessageWindow();
            //Register to RawInput thanks to the previously created window Handle
            RawInputDevice[] rid = new RawInputDevice[3];
            rid[0].UsagePage  = HidUsagePage.GENERIC;
            rid[0].Usage      = HidUsage.Joystick;
            rid[0].dwFlags    = RawInputDeviceFlags.RIDEV_INPUTSINK;
            rid[0].hwndTarget = _RawMessageWnd_hWnd;

            rid[1].UsagePage  = HidUsagePage.GENERIC;
            rid[1].Usage      = HidUsage.Mouse;
            rid[1].dwFlags    = RawInputDeviceFlags.RIDEV_INPUTSINK;
            rid[1].hwndTarget = _RawMessageWnd_hWnd;

            rid[2].UsagePage  = HidUsagePage.GENERIC;
            rid[2].Usage      = HidUsage.Gamepad;
            rid[2].dwFlags    = RawInputDeviceFlags.RIDEV_INPUTSINK;
            rid[2].hwndTarget = _RawMessageWnd_hWnd;
            if (!Win32API.RegisterRawInputDevices(rid, (uint)rid.Length, (uint)Marshal.SizeOf(rid[0])))
            {
                MessageBox.Show("Failed to register raw input device(s).", "DemulShooter Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }

            //Starting Mame-style output daemon
            if (_Configurator.OutputEnabled)
            {
                Logger.WriteLog("Starting Output daemon...");
                _OutputHelper = new MameOutputHelper(_RawMessageWnd_hWnd, _Configurator.OutputCustomRecoilOnDelay, _Configurator.OutputCustomRecoilOffDelay, _Configurator.OutputCustomDamagedDelay);
                _OutputHelper.Start();
                _OutputUpdateLoop = new Thread(new ThreadStart(ReadAndSendOutput_Thread));
                _OutputUpdateLoop.Start();
            }

            //Starting the fun...
            if (_Target.Length > 0 && (_Rom.Length > 0 || _Target.StartsWith("dolphin")))
            {
                //Install Low-Level mouse hook
                ApplyMouseHook();

                //Install Low Level keyboard hook
                ApplyKeyboardHook();

                /*
                 * //Running Xinput daemon if needed
                 * bool EnableXInputProc = false;
                 * foreach (ControllerDevice Device in _ControllerDevices)
                 * {
                 *  if (Device.GamepadID != -1)
                 *  {
                 *      EnableXInputProc = true;
                 *      break;
                 *  }
                 * }
                 * if (EnableXInputProc)
                 *  Bgw_XInput.RunWorkerAsync();
                 */

                if (_Target.Equals("chihiro"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "vcop3":
                    {
                        _Game = new Game_CxbxVcop3(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    }; break;
                    }
                }

                //Demul games
                else if (_Target.StartsWith("demul"))
                {
                    if (_Rom.ToLower().Equals("confmiss") || _Rom.ToLower().Equals("deathcox") || _Rom.ToLower().StartsWith("hotd2") ||
                        _Rom.ToLower().Equals("lupinsho") || _Rom.ToLower().Equals("mok"))
                    {
                        _Game = new Game_DemulNaomi(_Rom.ToLower(), _DemulVersion, _ForceXratio, _NoInput, isVerbose, _DisableWindow, _WidescreenHack);
                    }
                    else if (_Rom.ToLower().StartsWith("ninjaslt"))
                    {
                        _Game = new Game_DemulJvs(_Rom.ToLower(), _DemulVersion, _ForceXratio, _NoInput, isVerbose, _DisableWindow, _WidescreenHack);
                    }
                    else if (_Rom.ToLower().Equals("braveff"))
                    {
                        _Game = new Game_DemulHikaru(_Rom.ToLower(), _DemulVersion, _ForceXratio, _NoInput, isVerbose, _DisableWindow, _WidescreenHack);
                    }
                    else if (_Rom.ToLower().Equals("manicpnc") || _Rom.ToLower().Equals("pokasuka"))
                    {
                        _Game = new Game_DemulManicpnc(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose, _DisableWindow, _WidescreenHack);
                    }
                    else
                    {
                        _Game = new Game_DemulAtomiswave(_Rom.ToLower(), _DemulVersion, _ForceXratio, _NoInput, isVerbose, _DisableWindow, _WidescreenHack);
                    }
                }

                //Dolphin
                else if (_Target.Equals("dolphin5"))
                {
                    _Game = new Game_Dolphin5(_Rom.ToLower(), _Ddinumber, _Configurator.DIK_Dolphin_P2_LClick, _Configurator.DIK_Dolphin_P2_MClick, _Configurator.DIK_Dolphin_P2_RClick, _ForceXratio, _NoInput, isVerbose);
                }

                //GlobalVR game
                else if (_Target.Equals("globalvr"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "aliens":
                    {
                        _Game = new Game_GvrAliens(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "farcry":
                    {
                        _Game = new Game_GvrFarCryV2(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "fearland":
                    {
                        _Game = new Game_GvrFearLand(_Rom.ToLower(), _HardFfl, _ForceXratio, _NoInput, isVerbose);
                    } break;

                    default:
                        break;
                    }
                }

                //Lindbergh
                else if (_Target.Equals("lindbergh"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "2spicy":
                    {
                        _Game = new Game_Lindbergh2spicy(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "hotd4":
                    {
                        _Game = new Game_LindberghHotd4(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "lgj":
                    {
                        _Game = new Game_LindberghLgj(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "lgjsp":
                    {
                        _Game = new Game_LindberghLgjsp(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "rambo":
                    {
                        _Game = new Game_LindberghRambo(_Rom.ToLower(), _HideGameCrosshair, _ForceXratio, _NoInput, isVerbose);
                    } break;

                    default:
                        break;
                    }
                }

                //All model2 roms share same method
                else if (_Target.Equals("model2"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "bel":
                    {
                        _Game = new Game_Model2Bel(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "gunblade":
                    {
                        _Game = new Game_Model2Gunblade(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "hotd":
                    {
                        _Game = new Game_Model2Hotd(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "rchase2":
                    {
                        _Game = new Game_Model2Rchase2(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "vcop":
                    {
                        _Game = new Game_Model2Vcop(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "vcop2":
                    {
                        _Game = new Game_Model2Vcop2(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    default:
                        break;
                    }
                }

                //Ring system
                else if (_Target.Equals("ringwide"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "sgg":
                    {
                        _Game = new Game_RwSGG(_Rom.ToLower(), _NoAutoFire, _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "lgi":
                    {
                        _Game = new Game_RwLGI(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "lgi3d":
                    {
                        _Game = new Game_RwLGI3D(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "og":
                    {
                        _Game = new Game_RwOpGhost(_Rom.ToLower(), _Configurator.OpGhost_EnableFreeplay, _Configurator.OpGhost_CreditsToStart, _Configurator.OpGhost_CreditsToContinue, _Configurator.OpGhost_CoinsByCredits, _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "sdr":
                    {
                        _Game = new Game_RwSDR(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    }; break;

                    case "tha":
                    {
                        _Game = new Game_RwTransformers(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    }; break;

                    default:
                        break;
                    }
                }

                //TTX game
                else if (_Target.Equals("ttx"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "bkbs":
                    {
                        _Game = new Game_TtxBlockKingBallShooter(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "eadp":
                    {
                        _Game = new Game_TtxEadp(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "gattack4":
                    {
                        _Game = new Game_TtxGaiaAttack4(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "gsoz":
                    {
                        _Game = new Game_TtxGundam(_Rom.ToLower(), _Configurator.Gsoz_Pedal_P1_Enabled, _Configurator.DIK_Gsoz_Pedal_P1, _Configurator.Gsoz_Pedal_P2_Enabled, _Configurator.DIK_Gsoz_Pedal_P2, _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "gsoz2p":
                    {
                        _Game = new Game_TtxGundam(_Rom.ToLower(), _Configurator.Gsoz_Pedal_P1_Enabled, _Configurator.DIK_Gsoz_Pedal_P1, _Configurator.Gsoz_Pedal_P2_Enabled, _Configurator.DIK_Gsoz_Pedal_P2, _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "hmuseum":
                    {
                        _Game = new Game_TtxHauntedMuseum(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "hmuseum2":
                    {
                        _Game = new Game_TtxHauntedMuseum2(_Rom.ToLower(), _HardFfl, _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "mgungun2":
                    {
                        _Game = new Game_TtxGungun2(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "sha":
                    {
                        _Game = new Game_TtxSha(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;
                    }
                }

                //Windows Games
                else if (_Target.Equals("windows"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "artdead":
                    {
                        _Game = new Game_WndArtIsDead(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "friction":
                    {
                        _Game = new Game_WndFriction(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;

                    case "hfa":
                    {
                        _Game = new Game_WndHeavyFire3Pc("hfa", _Configurator.HF3_Path, _Configurator.HF3_CoverSensibility, _NoInput, false, isVerbose);
                    }; break;

                    case "hfa2p":
                    {
                        _Game = new Game_WndHeavyFire3Pc("hfa", _Configurator.HF3_Path, _Configurator.HF3_CoverSensibility, _NoInput, true, isVerbose);
                    }; break;

                    case "hfss":
                    {
                        _Game = new Game_WndHeavyFire4Pc("hfss", _Configurator.HF4_Path, _Configurator.HF4_CoverSensibility, _NoInput, false, isVerbose);
                    }; break;

                    case "hfss2p":
                    {
                        _Game = new Game_WndHeavyFire4Pc("hfss", _Configurator.HF4_Path, _Configurator.HF4_CoverSensibility, _NoInput, true, isVerbose);
                    }; break;

                    case "hod2pc":
                    {
                        _Game = new Game_WndHod2pc(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    }; break;

                    case "hod3pc":
                    {
                        _Game = new Game_WndHod3pc(_Rom.ToLower(), _NoAutoReload, _NoGuns, _ForceXratio, _NoInput, isVerbose);
                    }; break;

                    case "hodo":
                    {
                        _Game = new Game_WndHotdoPc(_Rom.ToLower(), _NoInput, isVerbose);
                    }; break;

                    case "reload":
                    {
                        _Game = new Game_WndReload(_Rom.ToLower(), _HideGameCrosshair, _NoInput, isVerbose);
                    }; break;
                    }
                }

                //W.I.P Games
                else if (_Target.Equals("wip"))
                {
                    switch (_Rom.ToLower())
                    {
                    case "wartran":
                    {
                        _Game = new Game_WndWartran(_Rom.ToLower(), _ForceXratio, _NoInput, isVerbose);
                    } break;
                    }
                }

                _Game.OnGameHooked += new Game.GameHookedHandler(OnGameHooked);
            }
        }