Windows ICON aus *.dll mit Nummer identifizieren [gelöst]

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smileys
:) ;) :smile: :lol: :hihi: :D :rofl: :muahah: :( :pff: :kopfstreichel: :ohno: :betruebt: :heulen: :kopfkratz: :duckundweg: :o :? :oops: :psst: :sauer: :-P :daumenrunter: :daumen: :dankeschoen: :thx: :dafür: :gähn:
Mehr Smileys anzeigen

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: Windows ICON aus *.dll mit Nummer identifizieren [gelöst]

Re: Windows ICON aus *.dll mit Nummer identifizieren [gelöst]

von Gast » 26.01.2025, 07:54

Re: Windows ICON aus *.dll mit Nummer identifizieren

von Holgi » 25.01.2025, 23:08

"176"! war die Lösung. Danke @DK2000.
Der Mitec Icon Explorer zeigt die korrekte ID an. Hast du eine Erklärung dafür, dass andere ICON-Programme da andere IDs anzeigen, als die dann tatsächlich korrekt sind?
Die Auflösung ist mir egal. Reicht mir.
Powershell Script sieht also jetzt so aus:

Code: Alles auswählen

$DesktopPath = [Environment]::GetFolderPath('Desktop')
$ShortcutName = "Sofortiger Neustart.lnk"
$TargetPath = "%SystemRoot%\\System32\\shutdown.exe"
$Arguments = "/r /f /t 0"
$ShortcutPath = Join-Path -Path $DesktopPath -ChildPath $ShortcutName
$Shell = New-Object -ComObject WScript.Shell
$Shortcut = $Shell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = $TargetPath
$Shortcut.Arguments = $Arguments
$Shortcut.WorkingDirectory = [System.IO.Path]::GetDirectoryName($TargetPath)
$Shortcut.IconLocation = "%SystemRoot%\\System32\\shell32.dll,176"  # Icon für den Shutdown
$Shortcut.Save()
Die Desktop-Verknüpfung, die dabei herauskommt:
Neustart.JPG
@Jens1976:
´hab ich früher auch so gemacht. Ist die einfachere Lösung.
Mittlerweile möchte ich aber nicht mehr mit vorgefertigten Dateien arbeiten, die dann irgendwo bei der Installation abgelegt sind ($OEM$ Ordner, CDROM ...) Es soll alles über Skripte "on-the-Fly" bei der Installation erstellt werden. Deshalb ja das Powershell-Script, welches die Verknüpfung erzeugt und dann dieser ein Icon zuordnet.
was genau macht eigentlich dieses "-d p:2:4" in "-r -f -t 30 -d p:2:4"?

Re: Windows ICON aus *.dll mit Nummer identifizieren

von Jens1976 » 25.01.2025, 22:51

Ich habs bei meiner einen Kiste so gelöst, siehe Anhang. Im Zip is die Verknüpfung enthalten. einfach auf den Desktop entpacken. Wenn man dort dann Rechtsklick und dann auf "Eigenschaften". Dort kann man dann unter "Anderes Symbol" das gewünschte Icon auswählen.

Re: Windows ICON aus *.dll mit Nummer identifizieren

von DK2000 » 25.01.2025, 21:11

Die Shell.dll wird ja nicht verändert. Du erstellst halt eine neue DLL mir den von Dir gewünschten Icons.

Ansonsten, um welche Windows 11 Version geht es genau? Aber genau das Ocon, was Du sichts, finde ich bei mir gar nicht. Wo hat denn moinmoin das gefunden?

"176". Aber das ist nur 16x16. Nicht noch so schön aus. "290" passt da gar nicht.

Re: Windows ICON aus *.dll mit Nummer identifizieren

von Holgi » 25.01.2025, 21:04

unter Windows 11 kommt mit der 299 das dabei raus:
Neustart.JPG
da ich das Ganze mit einer unveränderten Windows 11 und autounattend.xml machen möchte, kommt eine Manipulation einer .dll leider nicht in Frage.
Verstehe jetzt aber immer noch nicht, warum ein ICON Tool eine Nummer wie 290 anzeigt (siehe @moinmoin), aber dennoch dabei etwas Anderes herauskommt.

Re: Windows ICON aus *.dll mit Nummer identifizieren

von DK2000 » 25.01.2025, 20:41

Kommt auf die Version der Shell32.dll an. Bei Windows 10 (64bit DLL) wäre das "299".

For solche Zwecke verwende ich da den Icon Explorer: https://www.mitec.cz/iconex.html

Mit dem Tool kannst Du die Icons auch extrahieren (z.B. in eine neue .dll). Dann braucht man die sich nicht immer zusammensuchen und solange man da nicht selber an der Datei was ändert, verschieben sich die Nummern nicht mehr.

Re: Windows ICON aus *.dll mit Nummer identifizieren

von Holgi » 25.01.2025, 19:24

das ist das von mir beschriebene Phänomen:
die Nummer stimmt nicht! Mit dem Script oben kommt als Desktop Icon das dabei heraus:
Neustart.JPG
oder ist das bei euch anders?

Re: Windows ICON aus *.dll mit Nummer identifizieren

von moinmoin » 25.01.2025, 18:43

Mit dem Anolis Ressourcer wird es mir unter 290 angezeigt. :kopfkratz:
2.jpg

Windows ICON aus *.dll mit Nummer identifizieren [gelöst]

von Holgi » 25.01.2025, 18:27

wieder mal etwas Spezielles:
es gibt ein ICON in der Windows System Datei %SystemRoot%\System32\shell32.dll
Das ICON sieht so aus:
Green.JPG
Ich möchte dieses ICON mit einem kleinen Powershell Script nutzen, welches mir eine Verknüpfung auf dem Desktop erstellt, um den Rechner neu zu starten

Code: Alles auswählen

C:\WINDOWS\System32\shutdown.exe /r /f /t 0
Problem:
in der shell32.dll sind Hunderte Icons enthalten und das fertige Script benötigt die ICON-Nummer zur Identifizierung.
Natürlich habe ich schon nach Lösungen gesucht. Z.b. mit Programmen hantiert, welche mir die Icons aus der shell32.dll extrahieren und da gibt es auch welche, wo eine Nummer dabei steht. Dumm nur, dass bei einigen dieser Programme ausgerechnet dieses grüne Icon mit dem RechtsPfeil nicht extrahiert oder andere, zwar das ICON extrahieren, aber die Nummer nicht stimmt.
Hier das Powershell Script:

Code: Alles auswählen

$DesktopPath = [Environment]::GetFolderPath('Desktop')
$ShortcutName = "Sofortiger Neustart.lnk"
$TargetPath = "%SystemRoot%\\System32\\shutdown.exe"
$Arguments = "/r /f /t 0"
$ShortcutPath = Join-Path -Path $DesktopPath -ChildPath $ShortcutName
$Shell = New-Object -ComObject WScript.Shell
$Shortcut = $Shell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = $TargetPath
$Shortcut.Arguments = $Arguments
$Shortcut.WorkingDirectory = [System.IO.Path]::GetDirectoryName($TargetPath)
$Shortcut.IconLocation = "%SystemRoot%\\System32\\mobsync.exe"  # Icon für den Restart
$Shortcut.Save()
Die Zeile, die da geändert werden muss, ist diese:

Code: Alles auswählen

$Shortcut.IconLocation = "%SystemRoot%\\System32\\mobsync.exe"  # Icon für den Restart
Die sollte dann ungefähr so aussehen:

Code: Alles auswählen

$Shortcut.IconLocation = "%SystemRoot%\\System32\\shell32.dll,27"  # Icon für den Shutdown
nur eben ist die Nummer nicht die "27", sondern die von mir gesuchte Zahl.
Kann jemand von euch weiterhelfen?
LG
Holgi
user-48.png

Nach oben