一些背景:
我们有一个位于系统中的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 !!!
感谢
答案 0 :(得分:0)
我可能错了,但我的猜测是它在缩减功能模式下运行,因为你没有定义一个可以运行的受信任位置。我不知道这是如何在代码中完成的,但如果你启动A2007,它就在Access选项下的Office菜单上(我从菜单中发帖,因为我主要使用A2003并且不想等待注册过程)。
答案 1 :(得分:0)
我们卸载了当前的OFFICE SBE 2007并安装了最新版本的OFFICE SBE 2007。
现在一切正常。
我们的结论是Office SBE 2007第一版(在客户端计算机上安装)与Access Runtime 2007不兼容。
(很奇怪,但是工作)
大卫,非常感谢你。