ja ich hab schon ein bisschen im Forum rumgeguckt, aber ich glaube meine Idee für einen SplashScreen ist noch nicht vertreten.
Ich würde den SplashScreen gern als einzelne Exe kompilieren und ihm dann das zu startende Programm und das SplashBild als Parameter übergeben.
Beim Start der SplashScreen-Exe sollte dann eine neue
AppDomain
AssemblyLoad
Ja sicherlich is das eine Geschmacksfrage, aber ich find es ziemlich 'stylisch' wenn da die geladenen Assemblys angezeigt werden :)
Problem bereitet mir aber das Beenden des SplashScreen Programms. Hier sollte eigntl die SplashScreen Assembly als Referenz zum Zielprojekt angegeben werden können, und der SplashScreen per SplashScreen.Close() beendet werden können. Ich hab schon viel probiert, aber nichts hat wirklich funktioniert. Process IDs sind gleich und den Thread über die ManagedThreadID bekomm ich nich (zumindest weiss ich nicht wie). Frage bleibt also, wie sollte das Close() aussehn.
Ja für Ideen bin ich offen :)
SplashScreen splash = new SplashScreen();
new Thread(delegate()
{
AppDomain mainAppDomain = AppDomain.CreateDomain("MainApp");
mainAppDomain.AssemblyLoad += (s, e) => { };
//MessageBox.Show(e.LoadedAssembly.GetName().Name);
mainAppDomain.ExecuteAssembly(args[0]);
}).Start();