Überraschung.exe

Raizor

Komplett-PC-Aufrüster(in)
Überraschung.exe

Hallo Community,

ich weiß ni, ob es jetzt in dieses Forum passt, aber ich hab mal eine Frage.
Der Topic-Titel lässt ja böses erahnen, so böse is es aber gar nicht. Ich will irgendwie eine überraschung.exe erstellen mit der ich meine Freundin überraschen will. Die besagte *.exe soll nämlich das Hintergrundbild ändern (auf ein von mir selbstgemachtes, Liebe ausdrückendes ;-) , welches bestimmt in der exe enthalten sein muss) und evtl noch einen song abspielen oda so. Genaueres ist noch in Planung.
Einziges Problem: Ich weiß nicht wie das geht. Ich hab WinXP Prof. x86 SP3 und bräuchte irgend ein Anhaltspunkt. Vll irgendeine Software oda so. Oda andere Tipps und Hilfen.

Vielen Dank für eure Bemühungen*

Greetz
Raizor

* Selbst das Lesen des Beitrags is ja schon ne Bemühung ;) Ich wär aba auch dankbar für mehr :daumen:
 
Zuletzt bearbeitet:
AW: Überraschung.exe

Tag,

bin drann - wenn du mir noch ein paar Minuten gibst :)
Aber ob das mit der Musik geht ...
Problem ist nur - entweder ich gebe den Pfad im Code ein oder du musst ihn im Programm eingeben ...

Edit: Im Anhang die Datei - im Moment muss man die Datei noch per Buttonklick auswählen. Reicht das, oder hast du dir etwas anderes vorgestellt? Automatisch auwählen ist so eine Sache, da das Bild dann bereits auf dem Computer gespeichert sein muss - oder ich bekomme es hin, dass er ein Bild aus dem Internet läd.
Programmcode kannst du auch haben, sofern du es möchtest.
Texte können selbstverständlich noch angepasst werden - habe das erste geschrieben, was mir eingefallen ist :D
 
Zuletzt bearbeitet:
AW: Überraschung.exe

also erstmal danke für deine mühen.
das mit der musik ist erstma egal. das war nur sone fixidee.

aber mit dem bild... mit ner festen quelle wär das schon besser. is ja doof, wenn meine freundin sich das bild selbst auswählen muss. da bringt die sache ja ni viel.
aber so wies bis jetzt aussieht...... gehts ni. zumindest bei mir ni. als ich n pfad ausgewählt hab, wurde das wallpaper nur schwarz. und meine quelle war anders.
also mit der online-anbindung klingt ni schlecht. is ja eig auch nur n pfad, oder? und internet hat meine freundin ja immer an.
Was man noch irwie einbauen könnte: das sich alles minimiert, sodass man nur den desktop sieht.
und den programmcode..... weiß ni ob ich den brauch.... hab davon sowas von kein plan. haste das mit ner software gemacht? ist das verständlich für anfänger?

Aber wie gesagt danke für deine hilfe. ich sehe großes potenzial in dir ;-)

Greetz
Raizor
 
AW: Überraschung.exe

Tag,

mit dem Bild aus dem Internet laden muss ich mal schauen, ist wohl nicht ganz soo einfach. Bei mir geht das Programm einwandfrei - hast du das aktuelle .NET-Framework installiert?

Falls du den Code mal sehen möchtest:


Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Net;



namespace mein_schatz
{

    public partial class frmMain : Form
    {

        public frmMain()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }


        private void btnDatei_Click(object sender, EventArgs e)
        {
            /*
             * Alte Version
             * 
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "JPG files (*.jpg)|*.jpg|All files (*.*)|*.*";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                Wallpaper ChangeWallpaper = new Wallpaper();
                ChangeWallpaper.SetWallpaper(ofd.FileName, Wallpaper.Style.Stretched);
                //ChangeWallpaper.SetWallpaper("http://s2.imgimg.de/uploads/38484cbb09jpg.jpg", Wallpaper.Style.Stretched);
                this.Close();
            }
             * */
            
            string strLocalFileName = "mein_wallpaper.jpg";
            string strRemoteURL = "http://s2.imgimg.de/uploads/114f412999jpg.jpg";
            string strFileURL = "";
            WebClient webClient = new WebClient();

            webClient.DownloadFile(strRemoteURL, strLocalFileName);
            strFileURL = Path.GetFullPath(strLocalFileName).ToString();

            Wallpaper ChangeWallpaper = new Wallpaper();
            ChangeWallpaper.SetWallpaper(strFileURL, Wallpaper.Style.Stretched);
        }


        public class Wallpaper
        {
            const int SPI_SETDESKWALLPAPER = 20;
            const int SPIF_UPDATEINIFILE = 0x01;
            const int SPIF_SENDWININICHANGE = 0x02;

            public Wallpaper()
            {
            }

            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            static extern int SystemParametersInfo(
                int uAction, int uParam, string lpvParam, int fuWinIni);

            public enum Style : int
            {
                Tiled, Centered, Stretched
            }

            public void SetWallpaper(string path, Style style)
            {
                if (System.IO.File.Exists(path))
                {
                    RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);

                    switch (style)
                    {
                        case Style.Stretched:
                            key.SetValue(@"WallpaperStyle", "2");
                            key.SetValue(@"TileWallpaper", "0");
                            break;
                        case Style.Centered:
                            key.SetValue(@"WallpaperStyle", "1");
                            key.SetValue(@"TileWallpaper", "0");
                            break;
                        case Style.Tiled:
                            key.SetValue(@"WallpaperStyle", "1");
                            key.SetValue(@"TileWallpaper", "1");
                            break;
                    }
                    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
                }
                else
                {
                    //throw new System.IO.FileNotFoundException();
                    MessageBox.Show("Es ist ein Fehler aufgetreten.\n Pfad und/oder Bild kann nicht gefunden werden.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
    }

}
Edit: Jetzt kann ich ein Bild aus dem Internet laden und es so verwenden (wird dann vom Internet auf dem Rechner gespeichert und dann greift das Programm auf das Bild zu. Mal sehen was sich noch machen lässt ;)

Edit2: Eigentlich müsste ich mir darauf ein Patent geben lassen und den Code nicht öffentlich posten xD

Edit3: Versuch mal bitte diese Version - das man erst auf den Button klicken muss kann man ändern - dient jetzt nur zu Testzwecken.

Dein Desktop sollte dann so ausehen.

Edit4: Sehe gerade, dass man sehr wohl Lieder abspielen kann. Wie man die von der Festplatte läd weiß ich nun, aber aus dem Internet habe ich keine Ahnung - habe auch keine Lieder, die ich mal eben uppen könnte zum Test (wir wollen ja nichts illegals machen :)).
 
Zuletzt bearbeitet:
AW: Überraschung.exe

also der code sagt mir gar nix... aba schön dass du das so schön machst:-)

bei mir klappts immer noch nicht. bildschirm schwarz:( Laut Systemsteuerung-->Software hab ich NET.Framework 1.1, 2.0 und 3.0 installiert... gibts noch neueres?

Und das mit dem Lied is ja cool. werd ich mich wohl doch hinsetzten und eins mixen oda so.... aber ich denke, dass ich lieber n schönes video mache. müsste ja auch gehen mit dem laden und so?! obwohl... n video könnt ich ihr ja auch direkt schicken. da bräuchte man den umweg über die exe ni...... also erstma konzentration aufs Bild als Wallpaper:)

Nochma vieln dank für deine unersättliche mühe :-P

greetz
Raizor

Edit:
Hab grad gesehen, dass zumindest das Bild auf meine Festplatte geladen wurde. Aber eben als Hintergrund wurde es nicht eingerichtet :(
 
AW: Überraschung.exe

"Tag" is gut :-)
Das von Microsoft is aber n großes SP?! bei chIp is der DL 2,7MB groß und bei MS gleich ma 230MB?! is schon cool. naja, ich kadt jz von MS. und probier es dann in 15min noma

EDIT:
Zitat von CHIP: "Hinweis: Die hier angebotene Version von "Microsoft .NET Framework 3.5" lädt während der Installation alle benötigten Komponenten aus dem Internet. Eine Online-Verbindung ist deshalb Voraussetzung."
Jetzt ergibt das natürlich sinn :-D

EDIT2:
Also ich kann mir ni helfen. hab ja heut nacht NET3.5 installiert, aber der bildschirm wird nur schwarz... hab ich irwas falsch gemacht? gibt es einen dienst, den ich deaktiviert haben könnte, der das NET aktiviert oder so?
 
Zuletzt bearbeitet:
AW: Überraschung.exe

Tag,

die eine läd alle Sachen aus dem Internet herunter und die andere ist heit schon alles - deshalb der Unterschied.

Aber das Bild läd er bei dir runter?! Du hast Windows XP Prof mit SP3? Schreibe nachher mal ein "einfacheres" Tool um zu gucken was bei dir geht und was nicht - ansonsten werde ich morgen mal versuchen an einen Rechner mit Windows XP zu kommen.
 
AW: Überraschung.exe

Tag,

hat leider etwas länger gedauert, habe aber heute einen Rechner mit XP SP3 aufgetrieben. Dort geht es wirklich nicht :( Bild wird heruntergeladen aber er wechselt nur auf den Standarthintergrund (in dem Fall war es ein einfaches Blau). Mal sehen was sich da machen lässt und wo der Fehler liegt.
 
AW: Überraschung.exe

puh, ich dachte es liegt an mir.
aber kann ich dir eigentlich irgendwie helfen? is ja schon doof wenn du alles machst und ich dann zu meiner freudnin sag "gugg ma, hab ICH für dich gemacht"
Ich hab zwar von nix ne ahnung aba das is ja erstma egal^^
 
AW: Überraschung.exe

Tag,

nicht wirklich - außer du findest den Fehler :)
Brauchst ja deiner Freundin es nicht unter die Nase zu reiben, dass du das nicht gemacht hast ;)
 
AW: Überraschung.exe

Tag,

versuch mal bitte diese Version
 
Zuletzt bearbeitet:
AW: Überraschung.exe

hey an den pfad kommt ne Nackte frau bild raus:lol:

da wird dein freundin ,sich bestimmt freuen :lol:
 
AW: Überraschung.exe

so wie immer... nur ein schwarzes hintergrundbild.. also die eingestellte farbe :-(
Es will bei mir einfach nicht gehn. aber ich schleich mich die tage ma an den rechner meiner freundin u probiers da mal.
 
AW: Überraschung.exe

Tag,

hey an den pfad kommt ne Nackte frau bild raus:lol:

da wird dein freundin ,sich bestimmt freuen :lol:
Sie meinen?

WTF?!

Ein Linkin Park Bild?!
Joar, und? :)

so wie immer... nur ein schwarzes hintergrundbild.. also die eingestellte farbe :-(
Es will bei mir einfach nicht gehn. aber ich schleich mich die tage ma an den rechner meiner freundin u probiers da mal.
sie hat auch einen XP SP3-Rechner?

So langsam verzweifel ich :/
 
AW: Überraschung.exe

In welcher sprache haste das proggie geschrieben?
Ich könnts mal in c# versuchen wennst mir den aktuellen code gibst.
 
AW: Überraschung.exe

Tag,

ist alles in C# geschrieben:

Code:
[COLOR=Black][FONT=Courier New][COLOR=Blue][FONT=Courier New]using[/FONT] System;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.Collections.Generic;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.ComponentModel;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.Data;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.Drawing;
[COLOR=Green][FONT=Courier New]//using System.Linq; // Gibt es unter .NET Framework 2.0 nicht[/FONT][COLOR=Blue][FONT=Courier New]using[/FONT] System.Text;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.Windows.Forms;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.IO;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.Runtime.InteropServices;
[COLOR=Blue][FONT=Courier New]using[/FONT] Microsoft.Win32;
[COLOR=Blue][FONT=Courier New]using[/FONT] System.Net;


[COLOR=Blue][FONT=Courier New]namespace[/FONT] ChangeWallpaper
{
    [COLOR=Blue][FONT=Courier New]public[/FONT] partial [COLOR=Blue][FONT=Courier New]class[/FONT] frmChangeWallpaper : Form
    {
        [COLOR=Blue][FONT=Courier New]public[/FONT] frmChangeWallpaper()
        {
            InitializeComponent();
        }

        [COLOR=Blue][FONT=Courier New]private[/FONT] [COLOR=Blue][FONT=Courier New]void[/FONT] frmChangeWallpaper_Load([COLOR=Blue][FONT=Courier New]object[/FONT] sender, EventArgs e)
        {

        }

        [COLOR=Blue][FONT=Courier New]private[/FONT] [COLOR=Blue][FONT=Courier New]void[/FONT] btnChangeWallpaper_Click([COLOR=Blue][FONT=Courier New]object[/FONT] sender, EventArgs e)
        {
            [COLOR=Blue][FONT=Courier New]string[/FONT] strLocalFileName [COLOR=Red][FONT=Courier New]=[/FONT] [COLOR=#666666][FONT=Courier New]"mein_wallpaper.jpg"[/FONT];
            [COLOR=Blue][FONT=Courier New]string[/FONT] strRemoteURL [COLOR=Red][FONT=Courier New]=[/FONT] [COLOR=#666666][FONT=Courier New]"http://s2.imgimg.de/uploads/114f412999jpg.jpg"[/FONT];
            [COLOR=Blue][FONT=Courier New]string[/FONT] strFileURL [COLOR=Red][FONT=Courier New]=[/FONT] [COLOR=#666666][FONT=Courier New]""[/FONT];
            WebClient webClient [COLOR=Red][FONT=Courier New]=[/FONT] [COLOR=Blue][FONT=Courier New]new[/FONT] WebClient();

            webClient.DownloadFile(strRemoteURL, strLocalFileName);
            strFileURL [COLOR=Red][FONT=Courier New]=[/FONT] Path.GetFullPath(strLocalFileName).ToString();            
            Wallpaper ChangeWallpaper [COLOR=Red][FONT=Courier New]=[/FONT] [COLOR=Blue][FONT=Courier New]new[/FONT] Wallpaper();
            ChangeWallpaper.SetWallpaper(strFileURL, Wallpaper.Style.Stretched);
        }

        [COLOR=Green][FONT=Courier New]// Wallpaper ändern[/FONT]        [COLOR=Blue][FONT=Courier New]public[/FONT] [COLOR=Blue][FONT=Courier New]class[/FONT] Wallpaper
        {
            [COLOR=Blue][FONT=Courier New]const[/FONT] [COLOR=Blue][FONT=Courier New]int[/FONT] SPI_SETDESKWALLPAPER [COLOR=Red][FONT=Courier New]=[/FONT] 20;
            [COLOR=Blue][FONT=Courier New]const[/FONT] [COLOR=Blue][FONT=Courier New]int[/FONT] SPIF_UPDATEINIFILE [COLOR=Red][FONT=Courier New]=[/FONT] 0x01;
            [COLOR=Blue][FONT=Courier New]const[/FONT] [COLOR=Blue][FONT=Courier New]int[/FONT] SPIF_SENDWININICHANGE [COLOR=Red][FONT=Courier New]=[/FONT] 0x02;

            [COLOR=Blue][FONT=Courier New]public[/FONT] Wallpaper()
            {
            }

            [DllImport([COLOR=#666666][FONT=Courier New]"user32.dll"[/FONT], CharSet [COLOR=Red][FONT=Courier New]=[/FONT] CharSet.Auto)]
            [COLOR=Blue][FONT=Courier New]static[/FONT] [COLOR=Blue][FONT=Courier New]extern[/FONT] [COLOR=Blue][FONT=Courier New]int[/FONT] SystemParametersInfo(
                [COLOR=Blue][FONT=Courier New]int[/FONT] uAction, [COLOR=Blue][FONT=Courier New]int[/FONT] uParam, [COLOR=Blue][FONT=Courier New]string[/FONT] lpvParam, [COLOR=Blue][FONT=Courier New]int[/FONT] fuWinIni);

            [COLOR=Blue][FONT=Courier New]public[/FONT] [COLOR=Blue][FONT=Courier New]enum[/FONT] Style : [COLOR=Blue][FONT=Courier New]int[/FONT]            {
                Tiled, Centered, Stretched
            }

            [COLOR=Blue][FONT=Courier New]public[/FONT] [COLOR=Blue][FONT=Courier New]void[/FONT] SetWallpaper([COLOR=Blue][FONT=Courier New]string[/FONT] path, Style style)
            {
                [COLOR=Blue][FONT=Courier New]if[/FONT] (System.IO.File.Exists(path))
                {
                    RegistryKey key [COLOR=Red][FONT=Courier New]=[/FONT] Registry.CurrentUser.OpenSubKey([COLOR=#666666][FONT=Courier New]"Control Panel\\Desktop"[/FONT], [COLOR=Blue][FONT=Courier New]true[/FONT]);

                    [COLOR=Blue][FONT=Courier New]switch[/FONT] (style)
                    {
                        [COLOR=Blue][FONT=Courier New]case[/FONT] Style.Stretched:
                            key.SetValue([COLOR=#666666][FONT=Courier New]@"WallpaperStyle"[/FONT], [COLOR=#666666][FONT=Courier New]"2"[/FONT]);
                            key.SetValue([COLOR=#666666][FONT=Courier New]@"TileWallpaper"[/FONT], [COLOR=#666666][FONT=Courier New]"0"[/FONT]);
                            [COLOR=Blue][FONT=Courier New]break[/FONT];
                        [COLOR=Blue][FONT=Courier New]case[/FONT] Style.Centered:
                            key.SetValue([COLOR=#666666][FONT=Courier New]@"WallpaperStyle"[/FONT], [COLOR=#666666][FONT=Courier New]"1"[/FONT]);
                            key.SetValue([COLOR=#666666][FONT=Courier New]@"TileWallpaper"[/FONT], [COLOR=#666666][FONT=Courier New]"0"[/FONT]);
                            [COLOR=Blue][FONT=Courier New]break[/FONT];
                        [COLOR=Blue][FONT=Courier New]case[/FONT] Style.Tiled:
                            key.SetValue([COLOR=#666666][FONT=Courier New]@"WallpaperStyle"[/FONT], [COLOR=#666666][FONT=Courier New]"1"[/FONT]);
                            key.SetValue([COLOR=#666666][FONT=Courier New]@"TileWallpaper"[/FONT], [COLOR=#666666][FONT=Courier New]"1"[/FONT]);
                            [COLOR=Blue][FONT=Courier New]break[/FONT];
                    }
                    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path, SPIF_UPDATEINIFILE [COLOR=Red][FONT=Courier New]|[/FONT] SPIF_SENDWININICHANGE);
                }
                [COLOR=Blue][FONT=Courier New]else[/FONT]                {
                    [COLOR=Green][FONT=Courier New]//throw new System.IO.FileNotFoundException();[/FONT]                    MessageBox.Show([COLOR=#666666][FONT=Courier New]"Es ist ein Fehler aufgetreten.\n Pfad und/oder Bild kann nicht gefunden werden."[/FONT], [COLOR=#666666][FONT=Courier New]"Fehler"[/FONT], MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

    }
}[/FONT]
 
AW: Überraschung.exe

ich weiß nicht, ob sie auch SP3 hat. auf jedenfall hat sie Home und nicht Professionell wie ich. und ob sie alle NET-Frameworks installiert hat... weiß ich auch nicht :(
 
Zurück