vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Fenster in Taskleiste ausblenden 
Autor: SuperVisor
Datum: 25.11.05 11:24

Hallo zusammen!

Gibt es irgendwie eine Möglichkeit gezielt Programmfenster in der Taskleiste zu verstecken? Ich möchte aus meiner Applikation fremde Programme ein- und ausblenden können, so dass diese gestartet jedoch in der Taskleiste nicht sichtbar sind.

Hoffe jemand hat hier ein Tipp für mich!

Grüsse

Roger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fenster in Taskleiste ausblenden 
Autor: Maywood
Datum: 25.11.05 11:37

Einfach im Form_Load:
        Me.ShowInTaskbar = False
..schreiben.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fenster in Taskleiste ausblenden 
Autor: SuperVisor
Datum: 25.11.05 11:41

Hi Maywood

Besten Dank für deinen Tipp!

Wie bereits im Anfangsposting geschrieben, möchte ich fremde Programme (nicht meines) ausblenden können.

Vielleicht hierzu ein Tipp?

Gruss

Roger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fenster in Taskleiste ausblenden 
Autor: Maywood
Datum: 28.11.05 14:43

hhm, das wird schon irgendwie mit Win32-API möglich sein. Nur aus Neugier: Wozu das ganze überhaupt?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fenster in Taskleiste ausblenden 
Autor: SuperVisor
Datum: 28.11.05 19:47

Hi Maywood

In einem unserer Programme müssen wir auf ein Programm eines Fremdherstellers zugreifen. Der Hersteller möchte uns den Source bzw. die DLL mit den Funktionen nicht verkaufen (warum auch immer?!?).

Im Programm des Hersteller gibt es die Möglichkeit, gewisse Abläufe zu automatisieren. Daher kam die Idee, den gewünschten Ablauf dort zu speichern. Unser Programm würde dann das Programm des Herstellers aufrufen wo die gespeicherte Funktion dann ausgeführt wird. Daher wäre es schön, wenn man das Fenster des Herstellers ausblenden könnte....

Gruss

Roger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fenster in Taskleiste ausblenden 
Autor: Maywood
Datum: 28.11.05 20:53

Ok, das ist natürlich ein guter Grund. Das ganze ginge bspw. mit der ShowWindow Win32-API. Hier ein einfaches Beispiel:
 
Option Explicit On
Option Strict On
 
Public Class Form1
 
    Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Int32, _
                                                          ByVal nCmdShow As _
                                                          Int32) _
                                                          As Int32
    Private Const SW_HIDE As Int32 = 0
    Private Const SW_SHOW As Int32 = 5
    Private Const SW_SHOWNORMAL As Int32 = 1
    Private MainHandles As ArrayList = Nothing
 
    Private Function GetHandles(ByVal Name As String) As ArrayList
        Dim MainHandles As ArrayList
        Dim processes() As Process = _
          System.Diagnostics.Process.GetProcessesByName(Name)
        If Not processes Is Nothing AndAlso processes.Length > 0 Then
            MainHandles = New ArrayList
            For Each process As Process In processes
                MainHandles.Add(process.MainWindowHandle)
            Next
        Else
            Throw New Exception("sorry. cannot be found a process")
        End If
        Return MainHandles
    End Function
 
    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        '// Hide
        Try
            Dim ProcessName As String = "Notepad"
            Me.MainHandles = Me.GetHandles(ProcessName)
            For Each handle As IntPtr In Me.MainHandles
                Debug.WriteLine("send hide message to " + handle.ToString() + _
                  "..")
                ShowWindow(handle.ToInt32, SW_HIDE)
            Next
            Debug.WriteLine("done")
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        '// Show
        Try
            If Me.MainHandles Is Nothing Then Return
            For Each handle As IntPtr In Me.MainHandles
                Debug.WriteLine("send show message to " + handle.ToString() + _
                  "..")
                ShowWindow(handle.ToInt32, SW_SHOWNORMAL)
            Next
            Debug.WriteLine("done")
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fenster in Taskleiste ausblenden 
Autor: SuperVisor
Datum: 29.11.05 20:48

Hi Maywood

Besten Dank für den Source, werde es ausprobieren!

Sieht aber schon ganz gut aus!

Gruss

Roger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fenster in Taskleiste ausblenden - PS 
Autor: Maywood
Datum: 29.11.05 20:53

Du müsstest übrigens nur die Variable "ProcessName" entsprechend umändern

Also die Zeile:
Dim ProcessName As String = "Notepad"
PS: Hoffe dass das auch funktioniert... (mit Notepad, Winamp und anderen diversen Programmen klappt das zumindest einwandfrei)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel