Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

rolf

rolf
30.01.2007 15:01:46
ronny
hallo liebes forum,
ich habe unten stehenden code gefunden, um das icon in der titelleiste und in der taskleiste zu ändern.
nun funktioniert der code aber leider nur mit icons, die extern der betreffenden arbeitsmappe liegen.
meine frage: was bzw. wie muß der code verändert werden, daß ich ein icon verwenden kann, das in der selben arbeitsmappe in einem image-control eingefügt wurde.
habe mit meinen bescheidenen mitteln bereits einiges versucht. leider ohne erfolg.
vielen dank an alle grübler und
viele grüße
rolf
Option Explicit
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" ( _
ByVal hInst As Long, _
ByVal lpszExeFileName As String, _
ByVal nIconIndex As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Integer, _
ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private Const WM_SETICON As Long = &H80

Private Sub prcSetXLWindowIcon(Optional IconFile As String, _
Optional WorkbookName As String)
Dim XLMAINhWnd  As Long, XLDESKhWnd As Long
Dim TargetWindowhWnd As Long, VirtualIcon As Long
If Not WorkbookName = vbNullString Then
XLMAINhWnd = FindWindow("XLMAIN", Application.Caption)
XLDESKhWnd = FindWindowEx(XLMAINhWnd, 0, "XLDESK", vbNullString)
TargetWindowhWnd = FindWindowEx(XLDESKhWnd, 0, "EXCEL7", WorkbookName)
Else
XLMAINhWnd = FindWindow("XLMAIN", Application.Caption)
TargetWindowhWnd = XLMAINhWnd
End If
If TargetWindowhWnd <> 0 Then
If IconFile = vbNullString Then
VirtualIcon = 0
Else
VirtualIcon = ExtractIcon(0, IconFile, 0)
If VirtualIcon <= 1 Then VirtualIcon = 0
End If
SendMessage TargetWindowhWnd, WM_SETICON, False, VirtualIcon
End If
End Sub

Public Sub prcReset()
Application.Caption = Empty
ActiveWindow.Caption = ActiveWorkbook.Name
prcSetXLWindowIcon
prcSetXLWindowIcon , ThisWorkbook.Name
End Sub
Public Sub prcSet()
Call prcSetXLWindowIcon _
("C:\Programme\Microsoft Office\Office\forms\1031\APPTL.ICO")
Call prcSetXLWindowIcon _
("C:\Programme\Microsoft Office\Office\forms\1031\APPTL.ICO" _
, ActiveWorkbook.Name)
Application.Caption = "Meine Anwendung"
ActiveWindow.Caption = "Mein Name"
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Icon in Titelleiste
30.01.2007 15:04:31
ronny
da ist wohl was durcheinander geraten:
mein name ist ronny.
der code ist von rolf.
AW: rolf
30.01.2007 15:28:04
ronny
hallo rudi,
diesen beitrag habe ich heute morgen auch gefunden. der code hier weicht aber von meinem etwas ab und bringt mir nicht das gewünschte ergebnis, denn das icon wird auch bei anderen aktiven blättern angezeigt.
die vorgeschlagene lösung kann ich leider auch nicht 1 zu 1 übernehmen (natürlich schon versucht), da die funktionen anders deklariert sind. und genau da liegt der haken. mit den deklarationen kenne ich mich nicht aus und bitte deshalb um hilfe.
vielen dank
gruß ronny
Anzeige
geht doch
30.01.2007 15:41:08
ronny
hallo rudi,
es geht doch.
ich habe vorhin immer an der falschen stelle "verschlimmbessert".
danke nochmal und einen schönen tag

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige