Beste programmeurs
,
Voor mn werk ben ik bezig in 'VS2010 ultimate' een .NET 3.0 programma te schrijven om een aantal functies uit te voeren.
Ik loop echter vast op een probleem met de OEM informatie.
In het project heb ik een oemlogo.bmp bestand geinporteerd met de volgende opties:
Ik wil echter de bmp naar de system32 map verplaatsen om overeen te komen met de register sleutels die verderop in het programma naar het register worden geschreven.
Na vele uren zoeken en klooien heb ik de volgende code gevonden:
Deze code exporteerd wel een oemlogo.bmp naar de c:/ maaar deze is 6 kb (origineel is 118kb) en als ik de bmp wil openen in photoshop krijg ik een waarschuwing dat de file format module het bestand niet kan parsen en ik krijg dus geen plaatje te zien. Echter als ik de bmp open met windows photoviewer krijg ik gewoon het logo te zien.
Als ik het 6kb bestand naar system32 verplaats en ik herstart explorer krijg ik geen logo (rest van de oem info staat er wel gewoon) maar als ik het origineel (wat in resources staat) naar system32 kopieer en ik herstart explorer dan staat het logo gewoon bij de OEM informatie zoals het hoort.
Als ik de exe op een andere pc test krijg ik dezelfde 6kb bmp te zien in de C:/ dus hij neemt de resource wel mee in de exe zelf.
Ik heb al gekeken naar de 'allbytes' methode maar daar krijg ik problemen mee om de bytes naar de byte[] array te schrijven omdat het een bitmap en geen exe/txt betreft volgens de compiler.
PS. Ik ben een beginnende C# programmeur dus gelieve hier een beetje rekening mee te houden
Voor mn werk ben ik bezig in 'VS2010 ultimate' een .NET 3.0 programma te schrijven om een aantal functies uit te voeren.
Ik loop echter vast op een probleem met de OEM informatie.
In het project heb ik een oemlogo.bmp bestand geinporteerd met de volgende opties:
code:
1
2
3
| Build Action: Embedded Resource Copy to Output directory: Copy Always //rest is standaard// |
Ik wil echter de bmp naar de system32 map verplaatsen om overeen te komen met de register sleutels die verderop in het programma naar het register worden geschreven.
Na vele uren zoeken en klooien heb ik de volgende code gevonden:
C#:
1
2
3
| Bitmap logo = new Bitmap(Properties.Resources.oemlogo); //bestand heet oemlogo logo.Save(@"C:\oemlogo.bmp"); //tijdelijke opslag in C:/ om makkelijk te controleren textBox1.Text = string.Format("OEM logo gekopieërd"); |
Deze code exporteerd wel een oemlogo.bmp naar de c:/ maaar deze is 6 kb (origineel is 118kb) en als ik de bmp wil openen in photoshop krijg ik een waarschuwing dat de file format module het bestand niet kan parsen en ik krijg dus geen plaatje te zien. Echter als ik de bmp open met windows photoviewer krijg ik gewoon het logo te zien.
Als ik het 6kb bestand naar system32 verplaats en ik herstart explorer krijg ik geen logo (rest van de oem info staat er wel gewoon) maar als ik het origineel (wat in resources staat) naar system32 kopieer en ik herstart explorer dan staat het logo gewoon bij de OEM informatie zoals het hoort.
Als ik de exe op een andere pc test krijg ik dezelfde 6kb bmp te zien in de C:/ dus hij neemt de resource wel mee in de exe zelf.
Ik heb al gekeken naar de 'allbytes' methode maar daar krijg ik problemen mee om de bytes naar de byte[] array te schrijven omdat het een bitmap en geen exe/txt betreft volgens de compiler.
PS. Ik ben een beginnende C# programmeur dus gelieve hier een beetje rekening mee te houden
if (!coffee) {
Work = false; }