通过windows 7上的C#应用程序打开访问应用程序

通过windows 7上的C#应用程序打开访问应用程序,c#,ms-access,desktop-application,C#,Ms Access,Desktop Application,一些背景: 我们有一个windows应用程序(c#),位于系统try中。 这个简单的应用程序基本上是其他应用程序和工作人员之间消息传递的快捷方式管理器 其中一个应用程序是Access 2007应用程序(连接到sqlserver)-客户端使用Access Runtime 2007(最新版本) 问题是我们无法从C#应用程序正确启动Access应用程序。 问题只出现在Windows7上(我们没有vista)-(在XP操作系统上一切正常) “正确”-意味着Access应用程序正在运行,但功能区栏缺少一些

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

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

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

“正确”-意味着Access应用程序正在运行,但功能区栏缺少一些图标(奇怪)。此外,一些功能(如打开Outlook)也不起作用

更多信息:
-如果我们在客户端桌面上设置Access应用程序的快捷方式,一切正常。
-C#应用程序启动其他EXE文件没有问题。
-C#应用程序包含清单文件(在Win7上以管理员身份运行)


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

有效的“Open EXE”代码(适用于XP和Win7)-[不适用于Access应用程序]

Process Proc= new Process();
Proc.StartInfo.UseShellExecute = false;
Proc.StartInfo.FileName = Application.StartupPath + @"\PasswordManager.exe";
Proc.Start();
我们尝试了许多代码,但都没有成功,比如[不工作]:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = sAccPath;// msaccess Path;
proc.StartInfo.Arguments = @"""" + AppPath+ @""""; 
proc.Start();
System.OperatingSystem osInfo = System.Environment.OSVersion;
if (osInfo.Version.Major > 5) 
        proc.StartInfo.Verb = "runas";
我们还尝试添加[不工作]:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = sAccPath;// msaccess Path;
proc.StartInfo.Arguments = @"""" + AppPath+ @""""; 
proc.Start();
System.OperatingSystem osInfo = System.Environment.OSVersion;
if (osInfo.Version.Major > 5) 
        proc.StartInfo.Verb = "runas";


helppppppp!!!

谢谢

我可能在这方面错了,但我的猜测是,由于您没有定义它可以运行的受信任位置,它正在以简化的功能模式运行。我不知道如何在代码中实现这一点,但如果您启动2007,它将在Office菜单的Access Options下(我是从菜单发帖的,因为我主要使用A2003,不想等待重新注册过程)。

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

(很奇怪,但很有效)



David,非常感谢。

谢谢你的回答,但我认为情况并非如此。正如我提到的,如果我们从桌面快捷方式运行应用程序,一切都会正常运行。我们还尝试手动将受信任位置添加到HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Access\Security\Trusted Locations下的注册表中。没有帮助。谢谢。你在Google Groups上搜索过Access新闻组这个问题吗?这听起来确实很像当你的“宏观安全”级别和受信任的位置设置不正确时得到的简化功能模式。是的,我知道这是正确的(和act)像这样,但如果我不使用C应用程序启动ms access应用程序,一切都会正常工作。因此,我认为这更像是C问题,而不是访问问题。我认为我们尝试运行access应用程序的方式(从C应用程序)错误,并导致ms access在缩减功能模式下工作。-TA。我们发现了一件有趣的事情-在客户端计算机上,如果使用access runtime 2007安装Office 2007 business Edition,则仍然存在问题。但如果使用access runtime 2007安装Office 2000,则工作正常。!?!听起来您有所不同A2007运行时的nt版本(我不知道这一点,但Small Business Edition用于安装Access运行时,作为其完整/默认安装的一部分)。如果在带有Office 2007 SBE的计算机上重新安装新下载的A2007运行时,会发生什么情况?正如我所说的,我认为SBE包括运行时,因此可能旧版本的SBE正在将运行时还原为旧版本,或者以其他方式损坏它。