私がしようとしているのは、実際にデータベースを開かずに MS Access のプロパティにアクセスすることです。
理解を深めるためのコードを次に示します。
var processStartInfo = new ProcessStartInfo(args[0])
{
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true
};
Process.Start(processStartInfo);
application = (Access.Application)Marshal.GetActiveObject("Access.Application");
dao.Property allowByPassKeyProperty = null;
foreach (dao.Property property in application.CurrentDb().Properties)
{
if (property.Name == "AllowByPassKey")
{
allowByPassKeyProperty = property;
break;
}
}
私の問題は、その場合、プロパティ (application.CurrentDb().Properties) を探すためにデータベースを開くと、MS Access のスタートアップが開始されることです。
すべてのスタートアップを避け、プロパティに適切な値を挿入したいだけです。
http://www.codeproject.com/KB/database/mdbcompact_latebind.aspxのようなリフレクションと遅延バインディングを使用して、プロパティを調べることは可能ですか?
または、私が望むものを達成するための他のオプションはありますか?