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-ID: 248269

Url: https://administrator.de/forum/office-programm-mit-vb-net-starten-und-fenstertitel-beeinflussen-248269.html

Ausgedruckt am: 06.04.2025 um 16:04 Uhr

colinardo
Lösung colinardo 04.09.2014 aktualisiert um 11:48:20 Uhr
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
ahstax
ahstax 04.09.2014 um 11:48:14 Uhr
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