在VB.net中激活窗口

时间:2017-01-04 22:07:56

标签: vb.net outlook

我在VBA中将应用程序写入Outlook,现在我想在VB.net中再次编写它(使其成为独立的应用程序)。 我有一个特定的问题我无法找到答案 - 在outlook explorer中导航我编写了程序,它激活了资源管理器,发送了密钥并再次激活表单。当我在Visual Studio中启动应用程序时,此过程运行正常,但是当我关闭VS并运行单个exe时,Outlook资源管理器不会激活 - 它只在任务栏上闪烁,然后sendkey不起作用,并且未选择下一封电子邮件。这是代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim app As Type = Type.GetTypeFromProgID("Outlook.Application")
        Dim oApp As Object = Activator.CreateInstance(app)

        oApp.ActiveExplorer.Activate()

        SendKeys.Send("{Down}")

        Me.Activate()

    End Sub

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:0)

在Visual Studio中,尝试“调试”菜单中的“启动而不调试”。这应该等同于运行可执行文件,但是您可以在启动后附加调试器(“调试菜单中的附加到进程”)并查看是否会产生线索......

答案 1 :(得分:0)

我用以下代码完成了它;)

    Dim p As Process
    Dim window_name As String

    For Each p In Process.GetProcessesByName("outlook")
        window_name = p.MainWindowTitle.ToString
    Next

    AppActivate(window_name)

    Thread.Sleep(100)

    SendKeys.Send("{Up}")

    Me.Activate()

感谢线索;)