Avatar billede Slettet bruger
05. maj 2007 - 08:19 Der er 24 kommentarer og
1 løsning

Inkludere ikon i exe-fil

Hej eksperter!

Hvordan inkluderer jeg ikonerne til mine Forms i exe-filen?
Det er ret upraktisk, at brugeren skal have ico-filer til at ligge i samme dir som hovedfilen!
Avatar billede hmortensen Nybegynder
05. maj 2007 - 08:25 #1
Du kan tilføje dem i en resource fil.
Avatar billede Slettet bruger
05. maj 2007 - 09:02 #2
Og hvordan gør jeg det?
Avatar billede skov_p Praktikant
05. maj 2007 - 13:10 #3
Marker filen i det projekt vindue, så kan du i Build Action vælge "Embedded ressource"
Avatar billede Slettet bruger
05. maj 2007 - 18:06 #4
Okaj, prøver det lige.
Avatar billede Slettet bruger
05. maj 2007 - 18:09 #5
Nope, virker ikke. Når jeg placerer exe-filen på en placering uden ico-filen, får jeg en fejl, hvor der blandt andet står:
P9: system.io.filenetfoundexeption
Avatar billede skov_p Praktikant
05. maj 2007 - 18:48 #6
I project vinduet er der et + ud for din form.
Under er der en resx fil, dobbelt klik på den.
Her kan de vælge Icons i menuen og derefter "Add"
Avatar billede Slettet bruger
05. maj 2007 - 22:25 #7
Og hvordan skal ikonet så indsættes i koden?
Det virker ikke med
Icon = new Icon("fil.ext")
Avatar billede skov_p Praktikant
05. maj 2007 - 23:00 #8
Bruger du VS2005?
I property for din form kan du vælge det icon der skal vises.
Avatar billede skov_p Praktikant
05. maj 2007 - 23:03 #9
Prøv med $this.Icon
Avatar billede skov_p Praktikant
06. maj 2007 - 00:21 #10
Jeg kan nu ikke forstå det er et problem.
Har lige lavet et test projekt med 2 forms med hver deres icon.
De vises fint uden et jeg gør andet end at tilføje dem. Tilføjer du dem ved at kode eller ved at browse via Visual Studio.
Jeg kan flytter min exe fil rundt som det passer mig, og selv om at jeg omdøber projekt folderen vises de stadig, så det er ikke fordi stien ligger i exe filen
Avatar billede Slettet bruger
06. maj 2007 - 07:54 #11
Prøv at placere din exe-fil på en placering hvor ikonet ikke ligger. Det er det, jeg mener.
Avatar billede Slettet bruger
06. maj 2007 - 07:57 #12
Desuden skriver jeg det i ren kode. Derfor er det ikke nok at vide, hvordan jeg får VC# til at gøre arbejdet.
Avatar billede skov_p Praktikant
06. maj 2007 - 08:21 #13
this.Icon = ((System.Drawing.Icon)(resources.GetObject( "$this.Icon" )));
Men det kræver at dit icon er i ressource filen
Avatar billede skov_p Praktikant
06. maj 2007 - 11:10 #14
I resx filen ser det nogenlunde sådan her ud

  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
        AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAd3cAAAAAB4iI
        iIAAAAAAf//4AAAAAAf////wAAAAAH//+AAAcAAI////9wAAAAf///gAAHj///////+IiIiP///4AAB/
        ////////////////+AAAf/zMzP/8z//M/8zMz/gAAH/M//zP/M//zPzP/8z4AAB/zP/8z/zP/8z8z//M
        +AAAf8z//M/8z//M/M//zPgAAH/M//zP/M//zPzP/8z4AAB/zP/8z/zP/8z8z//M+AAAf/zMzP/8z//M
        /8zMz/gAAH/////////////////4AAB/////////////////+AAAf/////////////////gAAH/M//zP
        /8zMz/zP/8z4AAB/zP/8z/zP/8z8z//M+AAAf8z//M/8z//M/M//zPgAAH/M//zP/M//zPzP/8z4AAB/
        zP/8z/zP/8z8z//M+AAAf8z//M/8z//M/M//zPgAAH/M//zP/8zMz/zP9wAAAAB///////////////f/
        9wAAf//////////////3/3AAAH//////////////9/cAAAB///////////////dwAAAAd3d3d3d3d3d3
        d3d3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////wf4A/gH+AP4B/gD+AcAA
        AAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAA
        AAHAAAABwAAAAcAAAAHAAAABwAAAA8AAAAfAAAAPwAAAH8AAAD///////////w==
</value>
  </data>
Avatar billede Slettet bruger
06. maj 2007 - 11:20 #15
Okaj, prøver..
Avatar billede Slettet bruger
06. maj 2007 - 11:25 #16
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
giver følgende fejl:
Error    1    The name 'resources' does not exist in the current context    C:\Documents and Settings\Toke\Dokumenter\Visual Studio 2005\Projects\Windows Explorer Relauncher\Windows Explorer Relauncher\Windows Explorer Relauncher.cs    38    44    Windows Explorer Relauncher
Avatar billede skov_p Praktikant
06. maj 2007 - 12:09 #17
Jeg ved ikke om du har lavet din resourcefil

http://msdn2.microsoft.com/en-us/library/aa309426(VS.71).aspx

Din resource instans kommer via

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( MitFormNavn ) );
Avatar billede Slettet bruger
06. maj 2007 - 20:26 #18
Hvorfor skal jeg have et andet program ind over? Burde ikonet ikke kunne inkluderes direkte med VC#???
Avatar billede Slettet bruger
06. maj 2007 - 20:27 #19
Kan du ikke sige mig, præcis hvad du har gjort? Så kan jeg selv finde min fejl. Det er nok lettest...
Avatar billede skov_p Praktikant
06. maj 2007 - 20:43 #20
Jo, men jeg troede at du ville kode det selv.
1. Marker din form i dit projekt vindue.
2. I Icon property browser du til din icon fil

Thats it.
Avatar billede Slettet bruger
07. maj 2007 - 16:06 #21
Okaj, prøver at gøre det på den måde i en ny fil.
Avatar billede Slettet bruger
07. maj 2007 - 18:16 #22
Det virker, men når jeg kopierer koden
this.Icon = ((System.Drawing.Icon)(resources.GetObject( "$this.Icon" )))
ind i min fil, skriver debuggeren igen, at 'resources' ikke kan findes...
Avatar billede skov_p Praktikant
07. maj 2007 - 21:05 #23
Det er fordi der ikke er en variabel der hedder 'resources'

Men den kan du lave sådan

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( MitFormNavn ) );

Så har du din resources variabel.
Avatar billede Slettet bruger
08. maj 2007 - 15:08 #24
Okaj, skal ind til byen nu. Tester det når jeg kommer hjem.
Avatar billede Slettet bruger
08. maj 2007 - 21:59 #25
Så virker det!
Du får lige dine yderst velfortjente point ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester