Tôi đang cố gắng phát với đối tượng Environment.OSVersion.Version
và không thể biết phiên bản nào sẽ cho biết rằng hệ điều hành là Windows XP trở lên (ví dụ: tôi muốn loại trừ Windows 2000, ME hoặc các phiên bản trước đó).Làm cách nào để biết liệu hệ điều hành có phải là Windows XP hoặc cao hơn không?
Trả lời
Sử dụng đối tượng System.OperatingSystem
, sau đó lọc theo số lớn & Số phiên bản nhỏ.
Tôi đã sử dụng các chức năng này trong quá khứ:
static bool IsWinXPOrHigher()
{
OperatingSystem OS = Environment.OSVersion;
return (OS.Platform == PlatformID.Win32NT) && ((OS.Version.Major > 5) || ((OS.Version.Major == 5) && (OS.Version.Minor >= 1)));
}
static bool IsWinVistaOrHigher()
{
OperatingSystem OS = Environment.OSVersion;
return (OS.Platform == PlatformID.Win32NT) && (OS.Version.Major >= 6);
}
Kiểm tra thuộc tính Major
lớn hơn hoặc bằng 5 và nếu 5 thì Minor
ít nhất là 1. (XP là 5.1, 2003 là 5.2, Vista/2008 là 6.0).
... và Windows 7 là 6.1 – Esko
Lưu ý rằng WinXP 32 bit là phiên bản 5.1; WinXP 64 bit là phiên bản 5.2. –
Và đây chính là lý do tại sao bạn nên tìm kiếm thứ bạn cần thay vì kiểm tra số phiên bản, và tại sao Win7 là phiên bản 6.1 và không phải là 7.0. Việc kiểm tra số phiên bản rất dễ bị sai và không phải lúc nào cũng cho bạn biết bạn muốn biết điều gì. – Stewart
Bạn không nên kiểm tra số phiên bản. Thay vào đó, bạn nên kiểm tra các chức năng bạn cần. Nếu đó là một API cụ thể mà bạn đang theo dõi, ví dụ, LoadLibrary và GetProcAddress nó - theo cách đó, bạn không phụ thuộc vào số phiên bản.
Cho rằng sự phụ thuộc là lý do anh ta cần phiên bản, đó là một ý tưởng thực sự tốt. – daramarak
Bạn sẽ kiểm tra xem liệu hệ điều hành có hỗ trợ RegFree COM không? – AngryHacker
Hãy thử tải một thành phần từ tệp kê khai của bạn. Nếu nó không hoạt động, nền tảng không hỗ trợ miễn phí COM – Stewart
- 1. Phát triển hệ điều hành không phải là x86
- 2. Làm cách nào để biết liệu IQueryable có phải là IOrderedQueryable không?
- 3. Làm thế nào để kiểm tra xem hệ điều hành là Vista bằng Python?
- 4. Làm cách nào để xác định xem hệ điều hành có là POSIX trong C?
- 5. làm cách nào để biết liệu cột có phải là khóa chính sử dụng mysqli không?
- 6. Sách Kiến trúc Hệ điều hành Windows
- 7. Làm cách nào để kiểm tra xem Windows Installer 3.1 hoặc cao hơn đã được cài đặt chưa?
- 8. Làm cách nào để hệ điều hành biết được giao diện mạng nào sẽ sử dụng cho Internet?
- 9. Hệ điều hành nào tốt hơn để phát triển: Debian hoặc Ubuntu?
- 10. Sử dụng% PROGRAMFILES (x86)% trên hệ điều hành Windows 32bit
- 11. Làm thế nào để thay đổi thiết đặt mặc định của hệ thống trong Windows XP?
- 12. Ứng dụng Windows 8 Store (Metro) có chạy trong Windows 7 hoặc XP không?
- 13. Hệ điều hành biên dịch thời gian
- 14. Làm cách nào để biết một đối tượng có phải là mô hình Mockito không?
- 15. cách để biết chuỗi có phải là base64 hay không
- 16. Làm thế nào để hiển thị cảnh báo không chặn cho hệ điều hành trong Wix?
- 17. Làm cách nào để biết liệu ngữ cảnh OpenGL có được tăng tốc phần cứng không?
- 18. Ứng dụng 32 bit có chạy nhanh hơn hoặc chậm hơn trên hệ điều hành 64 bit không?
- 19. Làm cách nào để biết bảng có phải là mảng không?
- 20. Cách dễ dàng hơn để bắt đầu và dừng các dịch vụ windows trong Windows XP
- 21. Làm cách nào để biết loại đối tượng có phải là Nullable <T> không?
- 22. Làm cách nào để kiểm tra xem hệ điều hành là Sun Os hay Unix hoặc Solaris từ bashrc
- 23. Làm cách nào để biết một đối tượng javascript có phải là Hình ảnh hoặc Canvas không?
- 24. Làm thế nào để phát hiện đúng hệ điều hành Windows, Linux và Mac
- 25. Làm cách nào để biết liệu điều này có đủ ngẫu nhiên không?
- 26. Làm thế nào để biết hệ thống là Debian hoặc CentOS bằng Python?
- 27. jQuery - phát hiện hệ điều hành và phiên bản hệ điều hành
- 28. Làm cách nào để biết hệ thống đo lường mặc định (đế quốc hoặc số liệu) trên iOS là gì?
- 29. Phát hiện hệ điều hành
- 30. Làm cách nào để biết khung hiện tại có phải là cha mẹ không?
PlatformID vẫn là Win32NT nếu hệ điều hành là 64 bit? – AngryHacker
@AngryHacker PlatformID.Win32 = "Hệ điều hành là Windows NT hoặc mới hơn.", Vâng. – ParmesanCodice
Tôi đã thay đổi mã cho IsWinXp để kiểm tra xem đó là Windows XP hay cao hơn. Tương tự với Vista. – AngryHacker