Windows bit büyüklüğüne göre nasıl exe çalıştırırım?


0

İki tane .exe dosyam var ve bunlardan birini Windows bit büyüklüğüne göre çalıştırabilecek bir program oluşturmak istiyorum (yani program1.exe64-bit program2.exeise çalıştır ve 32-bit ise çalıştır ). Nereye bakmam gerektiğini bilen var mı?


32 veya 64 bit mi demek istiyorsun?
— Keltari

@Keltari evet. Bunu daha net hale getirmek için soruyu
— düzelttim

bu programlar sen yazdın mı?
— Keltari

Hayır. onlar montajcılar ve ben sadece yüklü olduğu pencerelerin versiyonu dayalı bunları çalıştırmak istiyorum
— Yiwei

Yanıtlar:


1

Basit bir windows Powershell betiğini başlatıcınız olarak kullanabilirsiniz.

Mimarlığınızı PS'den nasıl ayırt edebilirsiniz: http://depsharee.blogspot.com/2011/06/how-do-detect-operating-system.html

Fikir, IntPtr yapısının kaç bayt uzunluğunda olduğunu kontrol etmektir. 4 => 32b, 8 => 64b.

Gerçekten bir exe istiyorsanız, DotNet'te 64b olup olmadığını belirlemek için bu çeki kullanabilirsiniz:

BOOL Is64BitWindows() {
 #if defined(_WIN64)
  return TRUE;  // 64-bit programs run only on Win64
 #elif defined(_WIN32)
  // 32-bit programs run on both 32-bit and 64-bit Windows
  // so must sniff
  BOOL f64 = FALSE;
  return IsWow64Process(GetCurrentProcess(), &f64) && f64;
 #else
  return FALSE; // Win64 does not support Win16
 #endif
}

Daha fazla bilgi burada: http://blogs.msdn.com/b/oldnewthing/archive/2005/02/01/364563.aspx


Bu komut dosyası herhangi bir Windows sürümünde çalışabilecek mi?
— yiwei,

1
powershell kullanıyorsa, evet. veya .net yaklaşımını deneyin.
— Frank Thomas

Hangi senaryo?
— Cevaptaki

@Ramhound, blogspot'a bağlanan komut dosyalarından herhangi biri. WMI sorguları dahil olmak üzere çeşitli yöntemleri kapsarlar. IntPtr'in en zarif olduğunu düşünüyorum.
— Frank Thomas

0

%programfiles(x86)%Ortam değişkenini her zaman kontrol edebilirsiniz . Windows 64 bit bir makine ise, "Program Files (x86)" yolunu döndürür, 64 bit değilse, tanımlanmaz ve sadece "% programfiles (x86)%" döndürür.

Bunu bir toplu işlem, PS, .Net veya istediğiniz bir şeyle kontrol edebilirsiniz. :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.