ahstax
Goto Top

Office-Programm mit vb.net starten und Fenstertitel beeinflussen

Hallo,

ich starte mit diesem vb.net-Code Outlook 2010:

Dim proOutlookAnwendung As New System.Diagnostics.Process()
With proOutlookAnwendung
  .StartInfo.FileName = "Outlook.exe"  
  .Start()
End With

Nun würde ich gerne noch die Titelleiste des sich dann öffnenden Outlook-Fensters beeinflussen. Standardisiert steht dort ja
[Name des aktuellen Ordners mit Pfad im OL-System] - Microsoft Outlook
Hinter das Wort Outlook würde ich gerne einen Text [XXX] ergänzen.

Geht das? Wie kann ich das machen?

Neugierige Grüße,
Andreas

Content-Key: 248269

Url: https://administrator.de/contentid/248269

Printed on: April 20, 2024 at 04:04 o'clock

Member: colinardo
Solution colinardo Sep 04, 2014 updated at 09:48:20 (UTC)
Goto Top
Hallo Andreas,
Office ist da wieder ein Sonderfall, habe es für die Office-Programme noch nicht geschafft den Titel zu ändern, die Fenster scheinen da irgenwie verschachtelt zu sein.
Bei anderen Fenstern lässt sich das z.B. so in dieser Art machen:
Imports System.Runtime.InteropServices

Public Class Form1
     <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _  
    Shared Function SetWindowText(ByVal hwnd As IntPtr, ByVal windowName As String) As Boolean
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _  
    Shared Function GetWindowText(ByVal hwnd As IntPtr, ByVal windowText As System.Text.StringBuilder, ByVal intMaxChars As Integer) As Integer
    End Function

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim ps As New Process, strWindowsText As New System.Text.StringBuilder, strOldTitle As String
        ps.StartInfo.FileName = "calc.exe"  
        ps.Start()
        ps.WaitForInputIdle()
        Threading.Thread.Sleep(300)
        ' 'Hole Titel des Fensters  
        'GetWindowText(ps.MainWindowHandle, strWindowsText, 200)  
        strOldTitle = strWindowsText.ToString()
        ' neuen Titel setzen  
        SetWindowText(ps.MainWindowHandle, strOldTitle & " - Ein Ergänzungstext")  
    End Sub
Klappt aber auch nicht überall.

Grüße Uwe
Member: ahstax
ahstax Sep 04, 2014 at 09:48:14 (UTC)
Goto Top
Hallo Uwe,

vielen Dank für den Code!!
Schade, dass MS hier einen Sonderfall bildet. Vielleicht findet sich ja noch eine Lösung.
Dass es aber geht (oder mal ging, zumindest bei Word), weiß ich. Wir haben im Büro ein Programm, dass Word "hosted". In dem Fall steht im Fenstertitel:
[Dokumentenname] - MS Word (hosted by Büroprogramm).
Ich such mal weiter...! face-wink

Grüße,
Andreas