using
System;
using
System.Collections.Generic;
using
System.Windows.Forms;
using
System.Management;
using
System.IO;
namespace
SqliteAuto
{
static
class
Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static
void
Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(
false
);
string
dll32 = System.Windows.Forms.Application.StartupPath +
"\\lib\\SQLite32.DLL"
;
string
dll64 = System.Windows.Forms.Application.StartupPath +
"\\lib\\SQLite64.DLL"
;
string
dllpath = System.Windows.Forms.Application.StartupPath +
"\\System.Data.SQLite.dll"
;
if
(Detect32or64() ==
"32"
)
{
// do 32bit things.
try
{
using
(FileStream fs = File.Create(dllpath)) { }
File.Copy(dll32, dllpath,
true
);
}
catch
{
Console.WriteLine(
"ERR"
);
}
}
else
if
(Detect32or64() ==
"64"
)
{
//do 64bit things
try
{
using
(FileStream fs = File.Create(dllpath)) { }
File.Copy(dll64, dllpath,
true
);
}
catch
{
Console.WriteLine(
"ERR"
);
}
}
Application.Run(
new
Form1());
}
private
static
string
Detect32or64()
{
try
{
string
addressWidth = String.Empty;
ConnectionOptions mConnOption =
new
ConnectionOptions();
ManagementScope mMs =
new
ManagementScope(
"\\\\localhost"
, mConnOption);
ObjectQuery mQuery =
new
ObjectQuery(
"select AddressWidth from Win32_Processor"
);
ManagementObjectSearcher mSearcher =
new
ManagementObjectSearcher(mMs, mQuery);
ManagementObjectCollection mObjectCollection = mSearcher.Get();
foreach
(ManagementObject mObject
in
mObjectCollection)
{
addressWidth = mObject[
"AddressWidth"
].ToString();
}
return
addressWidth;
}
catch
(Exception ex)
{
Console.WriteLine(ex.ToString());
return
String.Empty;
}
}
}
}
联系客服