Çözüldü İşlemcinin 32 Bit olduğunu söylüyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

515079

Decapat
Katılım
15 Ocak 2022
Mesajlar
823
Çözümler
21
C#'da kod yazdım ama bir sorun var. Yazdığım koda göre işlemcim 32 Bit'miş. fakat benim işlemcim 64 bit. (İşlemcim i5 2410m)
C#:
if (Environment.Is64BitProcess) //İşlemci kaç bit
            {
                MessageBox.Show("İşlemci 64 Bit"); //İşlemci 64 bit ise
            }
            else
            {
                MessageBox.Show("İşlemci 32 Bit"); //İşlemci 32 bit ise
            }

Şöyle bir şey fark ettim eğer.
C#:
 string bit = Environment.Is64BitOperatingSystem.ToString();
Kodunu kullanırsam sonuç doğru çıkıyor. Burda fark ettiğim şey .ToString() kodunu if içinde kullanamıyorum.
 
Son düzenleyen: Moderatör:
Çözüm
C#'da kod yazdım ama bir sorun var. Yazdığım koda göre işlemcim 32 Bit'miş. fakat benim işlemcim 64 bit. (İşlemcim i5 2410m)
C#:
if (Environment.Is64BitProcess) //İşlemci kaç bit
            {
                MessageBox.Show("İşlemci 64 Bit"); //İşlemci 64 bit ise
            }
            else
            {
                MessageBox.Show("İşlemci 32 Bit"); //İşlemci 32 bit ise
            }
İngilizce bilmemenize yada kopyala yapıştır kod yazmanıza veriyorum. İşlemci kelimesi "Processor", işlem kelimesi "Process". Is64BitProcess = 64BitİşlemMi.
C#'da kod yazdım ama bir sorun var. Yazdığım koda göre işlemcim 32 Bit'miş. fakat benim işlemcim 64 bit. (İşlemcim i5 2410m)
C#:
if (Environment.Is64BitProcess) //İşlemci kaç bit
            {
                MessageBox.Show("İşlemci 64 Bit"); //İşlemci 64 bit ise
            }
            else
            {
                MessageBox.Show("İşlemci 32 Bit"); //İşlemci 32 bit ise
            }
İngilizce bilmemenize yada kopyala yapıştır kod yazmanıza veriyorum. İşlemci kelimesi "Processor", işlem kelimesi "Process". Is64BitProcess = 64BitİşlemMi.
 
Çözüm
Bu kodu dener misiniz?

C#:
 try
            {
                ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_Processor");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("Architecture: {0}", queryObj["Architecture"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }


Buradaki değerlerin sayı olarak döner.

Sayıların anlamları ise:

Kod:
x86 (0)
MIPS (1)
Alpha (2)
PowerPC (3)
ARM (5)
ia64 (6)
Itanium-based systems
x64 (9)
ARM64 (12)
 
C#:
string bit = Environment.Is64BitOperatingSystem.ToString();
Kodunu kullanırsam sonuç doğru çıkıyor. Burda fark ettiğim şey .ToString() kodunu if içinde kullanamıyorum.
Düzenlemeyle eklediğin parça için de ekleme yapayım. Bu da işlemci için değil, işletim sistemi için. Ek olarak eğer kıyasladığın bir şey yoksa tabii ki ToString kullanamayacaksın. ToString, bir string değer döndürecek. Döndürülen stringi başka bir şeyle kıyaslamıyorsan hata alman kadar normal bir şey yok. ToString'i kaldır, if çalışır.

if(Environment.Is64BitOperatingSystem) { ... }
 
Düzenlemeyle eklediğin parça için de ekleme yapayım. Bu da işlemci için değil, işletim sistemi için. Ek olarak eğer kıyasladığın bir şey yoksa tabii ki ToString kullanamayacaksın. ToString, bir string değer döndürecek. Döndürülen stringi başka bir şeyle kıyaslamıyorsan hata alman kadar normal bir şey yok. ToString'i kaldır, if çalışır.

if(Environment.Is64BitOperatingSystem) { ... }
Hocam yararlandığım kaynak yanlış kod vermiş. Bu verdiğiniz kod işletim sisteminin kaç bit olduğunu veriyor peki bu işlemci içinde geçerli mi?
 
Bu kodu dener misiniz?

C#:
 try
            {
                ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_Processor");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("Architecture: {0}", queryObj["Architecture"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }


Buradaki değerlerin sayı olarak döner.

Sayıların anlamları ise:

Kod:
x86 (0)
MIPS (1)
Alpha (2)
PowerPC (3)
ARM (5)
ia64 (6)
Itanium-based systems
x64 (9)
ARM64 (12)
Bunun yerine ProcessorArchitecture Enum (System.Reflection) tercih edilebilir.
Örnek;
C#:
var item = System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
Not: Yukarıdaki kod çevre değişkenlerinden faydalanır ve değiştirildiyse/manipüle edildiyse yanlış bilgi döndürecektir.
 
Son düzenleme:
Yardımınız için teşekkürler.

Bu kodu dener misiniz?

C#:
 try
            {
                ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_Processor");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("Architecture: {0}", queryObj["Architecture"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }


Buradaki değerlerin sayı olarak döner.

Sayıların anlamları ise:

Kod:
x86 (0)
MIPS (1)
Alpha (2)
PowerPC (3)
ARM (5)
ia64 (6)
Itanium-based systems
x64 (9)
ARM64 (12)
Hocam kod hata verdi ama sorun yok zaten kullandığım kodun olayını anladım.

Peki her zaman işletim sistemi ile işlemcinin bit'i aynı olur mu? Ona göre kodu kullanacağım.
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı