Tôi cần kiểm tra vị trí chương trình được cài đặt theo tên chương trình (tên xuất hiện trong Thêm hoặc loại bỏ chương trình). Cách tốt nhất để làm điều đó là tốt cho tất cả các ngôn ngữ.Cách kiểm tra bằng C# nơi chương trình được cài đặt
Trả lời
Hãy xem vào registry tại
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Chỉ cần lặp qua tất cả các subkeys và hãy nhìn vào giá trị DisplayName và InstallLocation. Ở đây bạn sẽ tìm thấy các infos bạn muốn và nhiều hơn nữa ;-)
Ít nhất InstallLocation có thể là một tác phẩm hư cấu; ví dụ, InstallLocation, theo đăng ký, cho Crystal 11 là "C: \ Program Files \ Tên công ty \ Your Product Name \". Trong nhiều trường hợp, nó cũng không được thiết lập. –
Bạn có thể đạt được điều này bằng cách sử dụng Lớp WMI. Tuy nhiên, điều kiện tiên quyết là
- ứng dụng và phải chạy
dưới mẫu mã để làm điều này
string queryString =
"SELECT Name, ProcessId, Caption, ExecutablePath" +
" FROM Win32_Process";
SelectQuery query = new SelectQuery(queryString);
ManagementScope scope = new System.Management.ManagementScope(@"\\.\root\CIMV2");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection processes = searcher.Get();
foreach(ManagementObject mObj in processes)
{
var name = mObj ["Name"].ToString();
var ProcessId = Convert.ToInt32(mObj ["ProcessId"]);
var Caption = mObj ["Caption"].ToString();
var Path = mObj ["ExecutablePath"].ToString();
}
MsiGetProductInfo hoạt động tốt với tôi trong C#. Sử dụng pinvoke (http://www.pinvoke.net/default.aspx/msi.msigetproductinfo) để sử dụng chức năng. –
Nếu bạn muốn tránh sử dụng PInvoke, tôi nghĩ rằng thông tin này có thể được nhận thông qua Deployment Tools Foundation (DTF), một phần của WiX. http://robmensching.com/blog/posts/2008/5/16/deployment-tools-foundation-joins-the-wix-toolset – RenniePet
Để thêm vào câu trả lời của Oliver, tôi đã bao bọc kiểm tra này bên trong một phương pháp tĩnh.
public static bool IsProgramInstalled(string programDisplayName) {
Console.WriteLine(string.Format("Checking install status of: {0}", programDisplayName));
foreach (var item in Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall").GetSubKeyNames()) {
object programName = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + item).GetValue("DisplayName");
Console.WriteLine(programName);
if (string.Equals(programName, programDisplayName)) {
Console.WriteLine("Install status: INSTALLED");
return true;
}
}
Console.WriteLine("Install status: NOT INSTALLED");
return false;
}
- 1. Cách kiểm tra xem chương trình có được cài đặt trên hệ thống Windows
- 2. Cách kiểm tra theo chương trình nếu ứng dụng được cài đặt?
- 3. Cách kiểm tra theo chương trình nếu ứng dụng được cài đặt hay không trong Android?
- 4. Kiểm tra Solidworks đã được cài đặt chưa?
- 5. Kiểm tra xem Skype có được cài đặt
- 6. Cách cài đặt chứng chỉ theo chương trình bằng cách sử dụng C#
- 7. Sử dụng rspec để kiểm tra chương trình C/C++
- 8. Kiểm tra xem SQL Server có được cài đặt trên máy thông qua C#
- 9. Trình duyệt iPhone: Kiểm tra xem ứng dụng iPhone có được cài đặt từ trình duyệt
- 10. cài đặt/gỡ cài đặt trình điều khiển .inf lập trình bằng C# .net
- 11. Kiểm tra MSWord được cài đặt trong hệ thống
- 12. Cách kiểm tra xem dịch vụ cửa sổ có được cài đặt trong C#
- 13. Kiểm tra xem phiên bản DirectX nào được cài đặt
- 14. Trình cài đặt NSIS kiểm tra .NET Framework
- 15. Kiểm tra xem Font có được cài đặt
- 16. cách làm cho chương trình có thể cài đặt
- 17. Kiểm tra xem Gói Python có được cài đặt
- 18. Kiểm tra xem gói có được cài đặt
- 19. Cài đặt chương trình Python trên Linux
- 20. Cài đặt Msmq bằng C#
- 21. kiểm tra perl sau khi được cài đặt
- 22. Làm cách nào để cài đặt chương trình Java?
- 23. Cách kiểm tra gói đã cài đặt trong WiX 3.0?
- 24. cách kiểm tra xem exe có được đặt là LARGEADDRESSAWARE
- 25. Kiểm tra xem Trình điều khiển PHP MongoDB có được cài đặt
- 26. Tôi làm cách nào để kiểm tra chương trình GUI bằng Python và PyQt?
- 27. Cách kiểm tra nút radio được kiểm tra bằng JQuery?
- 28. Lập trình Kiểm tra một mục trong Danh sách kiểm tra nơi văn bản bằng với những gì tôi muốn
- 29. Làm cách nào để bạn kiểm tra trình kiểm tra OpenGL được viết bằng GLSL?
- 30. Trình cài đặt cho C# Ứng dụng
??? Bạn có thể chỉ định câu hỏi của mình rõ ràng hơn không? Bạn đang hỏi liệu một chương trình là .Net dựa, hoặc cái gì khác? – Graviton
Kiểm tra sổ đăng ký. – RaYell