自从删除以前的 x86 Office 并安装 Office 2019 64Bit
oOutlook = GetObject(, "Outlook.Application")
当 Outlook 已运行时不再起作用,如果未运行,则 oOutlook = New Microsoft.Office.Interop.Outlook.Application() 在窗口中打开 Outlook 实例,需要在最大化上单击 2 次才能使其最大化。我在引用和以下导入中有 Outlook 对象库
Imports System.IO
Imports System.Net
Imports System.Net.Mail
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Text.RegularExpressions
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Outlook
Imports Redemption
如果我仅使用该行创建 Outlook 的新实例而不关闭当前打开的实例,则会打开一个新的可见实例。当我单击搜索字段时,我收到一条消息:以管理员权限运行时即时搜索不可用。
我尝试了以下选项,但没有成功。当用户打开 Outlook 时,没有一个会获取正在运行的实例或打开 Outlook。该项目也设置为不喜欢 32Bit。
Try
'Dim procs() As Process = Process.GetProcessesByName("Outlook")
'If procs.Count > 0 Then
'oOutlook = GetObject(, "Outlook.Application")
'Dim outlookType As Type = Type.GetTypeFromProgID("Outlook.Application")
'oOutlook = Activator.CreateInstance(outlookType)
oOutlook = DirectCast(Marshal.GetActiveObject("Outlook.Application"), Outlook.Application)
Catch
'Else
'oOutlook = CreateObject("Outlook.Application")
oOutlook = New Microsoft.Office.Interop.Outlook.Application()
'End If
End Try
我已经读了很多这方面的内容,以至于我的大脑现在已经崩溃了,我迫切需要一个解决方案,所以任何指导/帮助将不胜感激。
您是否强制您的项目以 x64 运行?
你不能也不想使用任何CPU,因为这样你的应用程序运行的位大小就“听凭风吹雨打”了。因此,强制您的项目也运行并匹配 Office 的位大小,并且不需要更改代码。
换句话说,从 x32 office 更改为 x64 位的事实不应改变任何内容,但确实要求您更改正在运行的 .net 应用程序的位大小以匹配用于 Office 的相同位大小。