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.