客户已要求我制作销售点系统,并且我一直在使用本地数据库(Microsoft Access 2010)。
所以,我一直在想这个问题:如果计算机上安装了Microsoft Access以及哪个版本,应用程序如何检测?
答案 0 :(得分:5)
如果我没记错的话,如果你想要的只是从C#访问数据库文件mdb / accdb,你真的不需要在你的系统上安装Access。您需要拥有的是ODBC或OLEDB驱动程序;可以从Microsoft免费下载。我认为最新版本的Windows已安装它们但我不确定,因为我的所有系统都安装了Access,所以我无法验证。
但是,如果您想将此作为销售点系统的基础,那么这不是一个好主意,因为Access过于不安全,容易出现损坏并且没有任何集成的备份机制。对于像POS这样重要的东西,使用SQL-Server应该被认为是最小的。
答案 1 :(得分:2)
单向(比特需要匹配):
Type Access = Type.GetTypeFromProgID("Access.Application");
if (Access != null)
{
dynamic access = Activator.CreateInstance(Access);
string ver = access.Version;
}
答案 2 :(得分:1)
您可以使用RegistryKey类迭代密钥。
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office");
foreach (String keyName in key.GetSubKeyNames())
.....