通过Windows 7上的C#应用​​程序打开ACCESS应用程序

时间:2010-02-15 11:25:07

标签: c# ms-access desktop-application

一些背景:
我们有一个位于系统中的Windows应用程序(c#) 这个简单的应用程序是一个基本的快捷方式管理器,用于工作人员之间的其他应用程序和消息传递。

其中一个应用程序是Access 2007应用程序(连接到sqlserver) - 客户端使用ACCESS Runtime 2007(最新版本)

问题是我们无法从C#应用程序正确启动Access应用程序 问题只出在Windows 7上(我们没有vista) - [在XP操作系统上一切正常)

“正确” - 意味着Access应用程序正在运行但功能区栏缺少一些图标(奇怪)。还有一些功能,如打开Outlook无法正常工作。

更多信息:
- 如果我们将客户端桌面上的快捷方式放到Access应用程序中,一切正常 - C#应用程序启动其他EXE文件没有问题。
- C#应用程序包括Manifest文件(在Win 7上以admin身份运行)。


原始代码非常简单(仅适用于XP):

System.Diagnostics.Process.Start(AppPath);

可用的“Open EXE”代码(适用于XP和Win7) - [不使用Access Application]

Process Proc= new Process();
Proc.StartInfo.UseShellExecute = false;
Proc.StartInfo.FileName = Application.StartupPath + @"\PasswordManager.exe";
Proc.Start();

我们尝试了许多没有成功的代码,例如[NOT WORKING]:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = sAccPath;// msaccess Path;
proc.StartInfo.Arguments = @"""" + AppPath+ @""""; 
proc.Start();

我们还尝试添加[NOT WORKING]:

System.OperatingSystem osInfo = System.Environment.OSVersion;
if (osInfo.Version.Major > 5) 
        proc.StartInfo.Verb = "runas";



Helppppppppppp !!!
感谢

2 个答案:

答案 0 :(得分:0)

我可能错了,但我的猜测是它在缩减功能模式下运行,因为你没有定义一个可以运行的受信任位置。我不知道这是如何在代码中完成的,但如果你启动A2007,它就在Access选项下的Office菜单上(我从菜单中发帖,因为我主要使用A2003并且不想等待注册过程)。

答案 1 :(得分:0)

我们卸载了当前的OFFICE SBE 2007并安装了最新版本的OFFICE SBE 2007。 现在一切正常。
我们的结论是Office SBE 2007第一版(在客户端计算机上安装)与Access Runtime 2007不兼容。

(很奇怪,但是工作)


大卫,非常感谢你。