Programmiconwechsel

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Programmiconwechsel

Beitrag von Manfred »

Mir ist gerade aufgefallen, dass es wohl Probleme bereitet, wenn man ein Programmicon wechselt. Ich habe das Programmicon (oben links) gegen ein anderes getauscht. Da ich mit Innosetup arbeite wird ein Desktopicon erzeugt. Dieses Desktopicon wird aber bei einer Updateinstallation anscheinend nicht mit gewechselt. Also habe ich das komplette Verzeichnis gelöscht nebst Desktoplink gelöscht. Es wird aber trotzdem das alte Icon weiter angezeigt bei einer Neuinstallation. Was passiert da?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Programmiconwechsel

Beitrag von brandelh »

So richtig habe ich deine Beschreibung nicht verstanden.

1. Du hattest erfolgreich ein eigenes Icon im Programm installiert (also oben links wenn die Exe läuft und im Explorer bei der Icon Anzeige. Richtig ?
2. Das Programm wurde mit Innosetup installiert und ein LINK mit dem Icon auf deine Anwendung wurde angelegt. Gleiches Icon beim Aussehen.
3. Nun hast du ein neues Icon im Programm eingebunden und es auch installiert, das neue Icon wird in der Anwendung verwendet.
4. Was zeigt der Explorer im EXE Ordner für diese EXE an ? Vermutlich das neue Icon richtig ?
5. Ein LINK auf der Arbeitsoberfläche zeigt aber noch das alte an - richtig ?

Wenn InnoSetup den erste LINK erstellt hat und nun den nicht updatet, fehlt eventuell die Anweisung dazu im UpdateSkript ?
Oder der Link wurde per Hand angelegt / geändert (Name z.B.) dann findet InnoSetup diesen nicht.

Im LINK neues Icon suchen und das neue wählen, oder aus der EXE einen ShellLink... anlegen/löschen

ShellLinkCreate() - Erzeugt eine Dateiverknüpfung.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Programmiconwechsel

Beitrag von Manfred »

Fast richtig Hubert.

Ich habe alles entfernt und so getan, als wenn es nie installiert wurde. Dann habe ich das Setup nochmal laufen lassen, aber das ICON von früher wurde am Desktop wieder angezeigt. Es ist nur eine einfache Installation. Es werden (zumindest nicht bewußt von mir) keine Einträge irgendwo gemacht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: Programmiconwechsel

Beitrag von georg »

Hallo,


das Problem kommt mir bekannt vor. Es hängt wohl damit zusammen, dass Windows unter anderem auch diese Icons cachet (oder wie auch immer das geschrieben wird). Daher wird das Icon aus dem Cache genommen.

Versuche doch mal, die Verknüpfung zu löschen und das Programm umzubenennen, und danach wieder die Verknüpfung zu erstellen. Vielleicht greift dann der Cache nicht mehr.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Programmiconwechsel

Beitrag von Tom »

Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Programmiconwechsel

Beitrag von brandelh »

Wie gesagt, man kann auch PER XBASE++ Programm so einen LINK auf dem Desktop erstellen.
Ich würde auf dem Desktop nach *.lnk Dateien suchen, diese mit memoedit() einlesen und nach der EXE Datei suchen ;-)

Code: Alles auswählen

cPfad    := getenv("HOMEPATH") \users\...\desktop ... 
aLNKDat := directory(...)
cExe      := upper(AppName())
for x := 1 to len(aLNKDat)
   cLnk := cPfad+"\"+aLNKDat[x]
   buf   := upper(memoread( cLnk )
   if cExe $ buf )
      buf  := nil
      delete file (cLnk)
      if ShellLinkCreate( AppName(.t.), cLnk, ? cWorkingDir ? , ? CmdArgs ? , ? cDescr ? )
         OK
      else
         Fehler
      endif
      ? exit ?
   endif   
next
ein Menüpunkt wäre nicht schlecht ... LINK löschen / erzeugen ;-)
Gruß
Hubert
Antworten