Weitere Icons in die .EXE

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Weitere Icons in die .EXE

Beitrag von DarkSoul »

Hallo Forum,

ich habe ein Problem, in eine EXE mehr als ein Icon zu machen. Irgendwas ist falsch....

Ich habe folgendes RC Script erstellt:

Code: Alles auswählen

#define folder_explorer 0
#define folder_explorer_wcl 1
#define folder_explorer_wclx 2
#define win_frame 3

#define LANG_NEUTRAL 0
#define SUBLANG_NEUTRAL 0

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

folder_explorer  ICON "packager.ico"
folder_explorer_wcl  ICON "wclfile.ico"
folder_explorer_wclx  ICON "wclxfile.ico"
win_frame  ICON "winlaunch.ico"
Dabei handelt es sich um Icons, die für die assoziierten Dateitypen verwendet werden sollen. (Seite mit Knickecke und stark vereinfachter Designer-Ausführung des Programmicons)

Jedoch überschreibt es die Einstellung für das in den Compilereinstellungen gewählte Icon. Stattdessen wird "packager.ico" verwendet.

Und kann ich vorgeben, welches Icon genommen werden soll, wenn der User über "Öffnen mit..." mein Prog wählt? Das Programmicon selbst, das er standardmäßig nimmt, ist dafür total ungeeignet (zu bombig und bunt, um zig mal nebeneinander gezeigt zu werden).

Alle Icons sind je für 16, 32 und 48 Pixel erstellt.

Wenn ich das Programmicon da nochmal reinschreibe, ist es ja doppelt drin. Oder muss ich das Icon in den Compilereinstellungen abwählen, wenn ich das Script verwende?

Bin ratlos. :cry:
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Weitere Icons in die .EXE

Beitrag von ts-soft »

Ich kann zwar gerade nicht testen, da ich linux nutze aber so in etwa kommt es hin:
Nr 0 oder 1 werden durch das Icon in der IDE überschrieben, nimm also höhere Nummern, also z.B. 100, 101 usw.

Als RC-Script benötigt die IDE absolute Pfade, mit doppelten Backslash:

Code: Alles auswählen

#define folder_explorer_wcl 100
folder_explorer_wcl  ICON "c:\\bla\\wclfile.ico"
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: Weitere Icons in die .EXE

Beitrag von DarkSoul »

Hat geklappt (sogar mit den relativen Pfaden), danke!

Habe meine Zusatzicons ab 10 eingetragen. Ist das so ok oder noch höher?
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Weitere Icons in die .EXE

Beitrag von ts-soft »

DarkSoul hat geschrieben:Hat geklappt (sogar mit den relativen Pfaden)
Dann hat Freak wohl was geändert, früher klappte das nicht mit relativen Pfaden, jedenfalls nicht in der IDE.
DarkSoul hat geschrieben:Habe meine Zusatzicons ab 10 eingetragen. Ist das so ok oder noch höher?
Ist eigentlich egal, solange die sich nicht ins Gehege kommen und unter 32767 bleiben. Ich bevorzuge 3 oder 4 stellige Nummern.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: Weitere Icons in die .EXE

Beitrag von DarkSoul »

Absolute Pfade machen an der Stelle für mich keinen Sinn. Ich wäre gar nicht auf die Idee gekommen, es so zu machen. :shock: :shock:

Funktioniert das denn zuverlässig? Nicht, dass Windows denkt, da sind keine weiteren Icons, weil Platz 2-99 ja NULL oder so wäre.

So nach dem Motto: Liste Icon für Icon, bis du auf NULL triffst. :D
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Weitere Icons in die .EXE

Beitrag von ts-soft »

DarkSoul hat geschrieben:Absolute Pfade machen an der Stelle für mich keinen Sinn. Ich wäre gar nicht auf die Idee gekommen, es so zu machen. :shock: :shock:
Der relative Path für PORC.exe muss ja stimmen und den verändert die PBCOMPILER.exe ja häufiger. Absolute Pfade machen schon Sinn,
wenn Du bedenkst, der dient ja nur das ICON zu finden und hat keinen Einfluss auf die Resource.

Die IDs der Resourcen sind Windows egal, solange sie zwischen 0 und 32767 liegen. Anders als bei PB-IDs, die immer mit 0 anfangen sollten
und dann fortlaufend, je ObjectTyp, da dort ein Array definiert wird, wobei jedes fehlende Glied mit seiner Structure mit einfließt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: Weitere Icons in die .EXE

Beitrag von DarkSoul »

Wah? Bei den PB-IDs sollte man lückenlos arbeiten :shock:

Ausgerechnet da habe ich nicht damit gerechnet und fröhlich große Lücken eingebaut. Da fange ich immer erst ab 1024 an zu belegen. Und bei GUI pro Fenster in 256-er Blöcken .

Macht das viel aus? :cry:
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Weitere Icons in die .EXE

Beitrag von RSBasic »

Wenn du beispielsweise folgendes definierst:

Code: Alles auswählen

ButtonGadget(0, ...)
ButtonGadget(1000, ...)
ButtonGadget(2000, ...)
ButtonGadget(3000, ...)
ButtonGadget(4000, ...)
ButtonGadget(5000, ...)
Dann werden nicht 6 IDs adressiert, sondern insgesamt 5001 IDs.
Kleiner Nachteil: Der Arbeitsspeicherverbrauch deiner Anwendung ist etwas höher.

\\Edit:
In der PB-Hilfe steht es auch:
http://www.purebasic.com/german/documentation/reference/purebasic_objects.html hat geschrieben: I. Indexierte Nummerierung
Der statische bzw. indexierte Weg ermöglicht Ihnen, auf ein Objekt durch einen vordefinierten numerischen Wert zu verweisen. Die erste verfügbare Index-Zahl ist 0, weitere Indizes werden anschließend fortlaufend (sequentiell) zugeordnet. Dies bedeutet, wenn Sie die Index-Nummer 0 und dann die Nummer 1000 verwenden, werden 1001 Indizes reserviert und 999 (von 1 bis 999) bleiben unbenutzt, welches keine effiziente Art und Weise zur Benutzung von indexierten Objekten darstellt. Wenn Sie eine flexiblere Methode brauchen, verwenden Sie die dynamische Art zum Zuordnen von Objekten, wie im Abschnitt II. beschrieben.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Weitere Icons in die .EXE

Beitrag von ts-soft »

Außerdem ist es gar nicht nötig Sprünge zwischen den IDs zu machen, nutze einfach benannte Enumerationen (siehe Hilfe / Enumeration).
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Weitere Icons in die .EXE

Beitrag von RSBasic »

Oder #PB_Any
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten