Hallo!
Ich habe mir einen Bildschirmschoner gebastelt die den iTunes-Visualizer nutzt!
Nun zu meinem Problem:
Wenn ich das Programm teste funktioniert es, wenn ich die .exe dann auf .scr umbenenne und den Bildschirmschoner einstellen will funktioniert auch die Vorschau noch, das wesentliche (der Aufruf um den Bildschirm zu schonen) erzeugt eine fehlermeldung und ruft den JIT-Debugger auf!
Wenn ich in der Programm.cs nur die Form1 laufen lasse, dann läuft ebenfalls alles einwandfrei!
Mein Code:
Programm.cs
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using iTunes_ScreenSaver;
namespace MeinBildschirmschoner { static class Program { [STAThread]
static void Main(string[] args) {
if (args.Length > 0) { string arg = args[0].ToLower().Trim().Substring(0, 2);
switch (arg) { case "/c": break;
case "/p": break;
case "/s": Form1 frm1 = new Form1(); Application.Run(frm1); break; } } } } } |
Die ScreenSaver-Klasse:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| using iTunesLib; using System.Diagnostics; using System.Runtime.InteropServices; using System.IO;
namespace iTunes_ScreenSaver { public partial class Form1 : System.Windows.Forms.Form { iTunesApp itunes = new iTunesApp(); IITPlaylist pl;
Timer th=new Timer();
public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { th.Interval = 100; th.Tick += new EventHandler(th_Tick);
IITLibraryPlaylist mainLibrary = itunes.LibraryPlaylist; pl = itunes.LibrarySource.Playlists.ItemByName["Mediathek"]; pl.PlayFirstTrack(); itunes.FullScreenVisuals = true; itunes.VisualsEnabled = true; th.Start(); }
void th_Tick(object sender, EventArgs e) { if (itunes.VisualsEnabled == false) { itunes.Quit(); this.Close(); } }
} } |
Stimmt der Code nicht oder lässt sich das nicht als ScreenSaver realisieren?
mfg Christoph