[Projekt] MCFlipShell

cr4sh

Enthusiast
Thread Starter
Mitglied seit
22.07.2009
Beiträge
2.678
So Leute,

nach vielen Stunden des Kopfzerbrechen hab ich es nun geschafft das Projekt MCFlipShell soweit fertig zu stellen das ich es euch nun vorstellen kann!

Besten Dank an den User nuts, der mir einige gute Tips gegeben hat, und hoffentlich weiter geben wird! :)


Gerade im [Sammelthread] XBMC - open source Mediacenter hab ich wieder gelesen das nach einer Lösung gefragt wurde, die den DVB-Viewer in das XBMC integriert um so bequem alles unter einer Haube zu haben!
Genau das hab ich vor geraumer Zeit auch gesucht und nichts ordentliches gefunden! Daher hab ich mich dran gesetzt und mit Hilfe von AutoIt ein eigenes Programm geschrieben das ein integrieren fast unnötig macht und Multitasking auf dem HTPC sehr erleichtert!

Das Programm ist Freeware!

Features der Version 0.7
- schnelles switchen zwischen zwei Hauptprogrammen, mithilfe eines "Klicks" der MC Taste auf der Fernbedienung

- die Refreshrate der beiden Hauptprogramme kann festgelegt werden

- switchen zwischen sämmtlichen offenen Fenstern, mithilfe eines "Doppelklicks" der MC Taste auf der Fernbedienung (die Auswahl wird natürlich über das Steuerkreuz und die OK Taste getätigt)

- nutzt die Aero Flip 3D Ansicht oder die altbekannte Taskswitch-Ansicht (ALT+TAB)

- beim Wechsel zwischen den Hauptprogrammen ist es möglich eigene Skripte ... etc. aufzurufen

- die 7 Zusatztasten VideoFullscreen, VideoGuide, RecordedTV, Music, Photos, Videos und Radio der MCE Fernbedienung können neu geroutet werden

- beliebig viele Startparameter können festgelegt werden

- MediaPortal, DVB-Viewer, XBMC und WMC Support (es ist eigentlich auch möglich, jede andere Anwendung als Hauptprogramme festzulegen, zB. PDVD oder TMT)
Es werden Windows XP, Vista und 7 unterstützt!
Windows 7 > getestet
Windows XP > nicht getestet
Windows Vista >nicht getestet

Download
MCFlipShell v.0.7.2
... oder auf meiner Website cr4sh.de!


Versionslog
v.0.7.2
- 2. Bugfix: "When switch to ProgX" (DVB-Viewer)

v.0.7.1
- Bugfix: "When switch to ProgX" (DVB-Viewer)

v.0.7
- kein extra Ausführung mehr für Windows XP
- automatische Aero Erkennung
- die Konfiguration hat eine GUI bekommen
- es können Refreshrate's für die Hauptprogramme festgelegt werden
- beim Wechsel zwischen den Hauptprogrammen können eigene Skripte ... etc ausgeführt werden

v.0.6
- Support für das WMC hinzugefügt
- Deitenamen geändert, womit das Ersetzen der "ehshell.exe" überflüssig wird
- Konfigurationsdatei in eine *.ini überführt und überarbeitet
- einige Verbesserungen am Code vorgenommen!

v.0.5
- erste veröffentliche Version (XP Version kurz danach online gestellt)
Quellcode
Diese Inhalte unterliegen dem deutschen Leistungsschutz- und Urheberrecht.
Unerlaubte Vervielfältigungen außerhalb der Grenzen des UrhG sind ohne schriftliche Zustimmung verboten.

Die Quellcodes der Datein liegen immer in der *.rar der jeweiligen Version, da das reinstellen der Quellcodes diesen Startpost sehr unübersichtlich machen!

Installation
1. Eine Backup der Datei "ehtray.exe", die im "C:Windowsehome" Verzeichniss liegt, anfertigen! (dafür kann es nötig sein den Administrator oder den Benutzer als Besitzer der Datei einzustellen)

2. Das Paket downloaden, entpacken und die Datein in das "C:\Windows\ehome\" Verzeichniss kopieren!

3. Die "mcfshell_config.exe" öffnen und die jeweiligen Einträge vornehmen! (ich denke das ist selbsterklärend)

127921d1279374688-projekt-mcflipshell-bild-2.png

Hinweis
Der DVB-Viewer wird in der Aero Flip 3D Ansicht nicht angezeigt! Das liegt aber am DVB-Viewer und wird evtl. in Zukunft behoben!

Bei Verwendung mit dem WMC ist die Funktion des schnellen wechselns, bei einmaligem drücken des MCE Buttons, nicht gegeben! Das liegt daran das diese Aktion im WMC schon vergeben ist!

Für alle die eine ATI haben, so müsst ihr vorgehen um 23Hz im Catalyst einzustellen, um die korrekten 23,976Hz für die Bluraywiedergabe nutzen zu können! (in der MCFS Config 23Hz einstellen)
Graphics > Desktops&Dysplays > auf den kleinen Pfeil auf dem Display unten klicken > Configure > HDTVSupport > Add 1080p24 format to the Display Manager (HD) > Apply

danach auf ...

Graphics > Desktop Properties > Refresh rate > 23Hz > Apply

Da es noch ein wenig an optischen reizen fehlt, werde ich versuchen die Tage noch ein bisschen Bildmaterial nachzuliefern und das ganze noch ein wenig auszubauen! :bigok:

Ich hoffe das es euch ein wenig neugierig macht und ihr es fleißig testet und mir Feedback gebt ;)
 

Anhänge

  • Bild 2.png
    Bild 2.png
    35,4 KB · Aufrufe: 456
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Danke für den Beitrag!
Auch wenn ich im Moment Xbmc nicht benutze, gewinnt er mit einer solchen Lösung deutlich an Attraktivität;)
Wenn möglich bitte auch Windows-Xp unterstützen!
Gerade unter Windows-XP, macht es beim Xbmc ja in Bezug auf die mangelnde Dxva-Beschleunigung Sinn einen externen Player einzubinden.

Gruß
g.m
 
Zuletzt bearbeitet:
Also rein von der Theorie her sollte er zum größten Teil auch unter XP funktionieren, du kannst es gern mal ausprobieren! Die einzige Einschränkung die es geben sollte wäre das beim zweifachen drücken auf den MC Button nichts passiert!
Der Unterschied ist eigentlich nur sehr gering im Code!

Was noch nicht geht und ein etwas größeren Eingriff erfordert ist der Support fürs WMC, da muss ich mal gucken, ist aber definitiv machbar!

€: Die Version für XP steht bereit, aber ich kann nicht garantieren das sie Fehlerfrei funktioniert, da ich kein laufendes XP hier hab!
 
Zuletzt bearbeitet:
sehr schön gemacht, danke dafür :)

aber was verstehst du unter 3D Aero Flip Ansicht? da wird bei mir alles angezeigt.



mfg
 
Schön das es euch gefällt :)

Das ist wohl die Halbwegs offizielle Bezeichnung für das ...

flip3D.jpg

... so sieht das bei mir aus und sollte bei dir eigentlich auch so aussehen!
Diese Ansicht bekommst du auch wenn du Win + Tab auf der Tastatur drückst (Win Vista/7)!
 
Zuletzt bearbeitet:
:eek: .. bei dir zeigt er den DVBV an? Welche Version nutzt du denn?
 
Also ich muss nun mal was fragen. Wäre es nicht leichter einfach Alt+Tab bzw Win+Tab auf eine FB-Taste zu legen? Da brauche ich ja dann nichtmal ein Programm für. (Gerade mal mit na Harmony getestet funktioniert)

Und ich weis einige mögen die Imon-Software nicht aber die bringt das auch von haus aus mit nennt sich dort Application Launcher / Taskswitcher (Feature)

Gruß
 
Zuletzt bearbeitet:
natürlich die neuste beta version :drool: (4.1.3.150)

@timmaeh: ich verwende auch den application switcher von der imon software und bin damit eigentlich recht zufrieden.

mfg
 
Nein, da das nur ein Teil der Funktionen ist und weitere Taste(n) auf der Fernbedienung belegt!
Und das wechseln zwischen 2 Anwendungen ist auch nicht ohne weiteres mit einem Tastendruck realisierbar!

€: Gibts schon wieder eine neue, oh mann! :d
... lol ich hab die auch drauf, aber bei mir ist nichts zu sehen .. :fresse:
 
Zuletzt bearbeitet:
jep, ich finde so langsam ist das ganze final-würdig.

bitte berichte ob es mit der neuesten beta funktioniert.


nochmals kompliment für deine tolle arbeit :)


EDIT: hmm, eventuell liegts an der graka?
 
Zuletzt bearbeitet:
OK für eine MCE-FB leuchtet mir das nun ein. Die hat ja kein Display. Bei den Harmonys kann man sich ja zB unendlich viele versch Anwendungen ins Display legen ohne eine taste zu verbrauchen und kann dann wechseln wie man will :).

Und naja der Taskswitcher von iMon bruacht ja auch nur eine Taste und dann hab ich alle Programme die ich ihm zugewiesen habe zum wechseln, ähnlich deiner kleinen .Exe hier.

Aber es wird schon seine Daseinsberechtigung für einige User haben, daumen hoch.

Gruß
 
Zuletzt bearbeitet:
jep, ich finde so langsam ist das ganze final-würdig.

bitte berichte ob es mit der neuesten beta funktioniert.


nochmals kompliment für deine tolle arbeit :)


EDIT: hmm, eventuell liegts an der graka?
Danke :drool:
€: Wäre möglich das es an der Graka liegt, hab ja nur die IGP drin!

timmaeh schrieb:
OK für eine MCE-FB leuchtet mir das nun ein. Die hat ja kein Display. Bei den Harmonys kann man sich ja zB unendlich viele versch Anwendungen ins Display legen ohne eine taste zu verbrauchen und kann dann wechseln wie man will .

Und naja der Taskswitcher von iMon bruacht ja auch nur eine Taste und dann hab ich alle Programme die ich ihm zugewiesen habe zum wechseln, ähnlich deiner kleinen .Exe hier.

Gruß

Nicht jeder hat ein iMon und es ist trotzdem eine Taste mehr (iMon) :fresse: das Mediacenter das eingestellt ist wird auch bei Knopfdruck gestartet, bzw das zweite Hauptprogramm!

OK, eine Harmony ist schon was feines, da gibs nichts dran zu rütteln! ;)
Aber vllt. testest du es auch mal? :)

Danke :)
 
Zuletzt bearbeitet:
Hab es schon getestet sonst würde ich nichts dazu schreiben ;). Wäre ja dumm den Mund aufzumachen ohne das man weis worüber man redet, sowas mache ich nicht.

Gruß
 
OK für eine MCE-FB leuchtet mir das nun ein. Die hat ja kein Display. Bei den Harmonys kann man sich ja zB unendlich viele versch Anwendungen ins Display legen ohne eine taste zu verbrauchen und kann dann wechseln wie man will :).
Gruß

Bedenke, daß das nur mit der HarmonyOne und aufwärts geht.
So ganz billig ist die One ja immernoch nicht, wobei sie aber schon im Preis gefallen list.
Viele Leute haben halt Fernbedienungen bei denen das nicht möglich ist und da zählt eben jede Taste.

Gruß
g.m
 
Hab es schon getestet sonst würde ich nichts dazu schreiben ;). Wäre ja dumm den Mund aufzumachen ohne das man weis worüber man redet, sowas mache ich nicht.

Gruß

Oh, achso! :d ... dann hab ich nichts gesagt ;)

@ganja_man
So ist es! Ich würde mich freuen wenn mal jemand die XP-Version testet! ;)
 
Zuletzt bearbeitet:
Wieso nur One und Aufwärts auch alle Modelle mit Display darunter können Funktionen etc. ins Display legen!? Einzige produzierte Harmony wo du nichts in Display legen kannst ist die 300er, denn diese besitzt erst garkein Display :d. (http://www.harmony-remote-forum.de/harmony_compare.php)

Gruß
 
Zuletzt bearbeitet:
Hallo cr4sh,

einen Ersatz einer Systemdatei wird wohl kaum einer verwenden wollen ohne den Quellcode zu kennen. Zumal man den Autoitcode sowieso ziemlich schnell rauskriegen könnte.
Von daher ist der Closedsource Ansatz imho keine gute Idee.
 
Das sagst du doch nur um ihn zu sehen xD
Aber da könntest du schon recht haben! Nur der größte Teil würde wohl nicht mal verstehen was sie da sehen!
Ich finde wenn jemand unbedingt Interesse am Quellcode hat, kann mir gerne eine PM schicken! Steckt halt, aus meiner Sicht (bin ja auch kein Profi), eine menge Arbeit drin!

€: Nagut hab jetzt mal die Quellcodes reingestellt, damit sich jeder versichern kann, dass diese auch wirklich nur das machen was sie sollen!
 
Zuletzt bearbeitet:
Wieso nur One und Aufwärts auch alle Modelle mit Display darunter können Funktionen etc. ins Display legen!?

Das ist eben die Frage;) Ich glaube das geht nur mit den Modellen die einen TouchScreen haben. Kann mich natürlich auch täuschen.

Gruß
g.m
 
Du täuscht dich ;). von der 515 angefangen hoch zur 800er haben alle einen Display und nebenliegend Wahltasten. Somit kann man frei das Display bestücken und munter auswählen und durch Seiten blättern.

Gruß
 
Zuletzt bearbeitet:
Das sagst du doch nur um ihn zu sehen xD
:haha: mir hattest den doch schon geschickt ;)
Die Sache mit dem Codediebstahl musste bei einer Skriptsprache ganz entspannt sehen, da ein wirksamer Schutz dagegen ziemlich unmöglich ist!

Opensource hat ja auch den Vorteil, dass man Tipps zur Umsetzung bekommen kann! Wenn du willst überarbeite ich dein Programm en bissle. :)
 
:haha: mir hattest den doch schon geschickt ;)
Die Sache mit dem Codediebstahl musste bei einer Skriptsprache ganz entspannt sehen, da ein wirksamer Schutz dagegen ziemlich unmöglich ist!

Opensource hat ja auch den Vorteil, dass man Tipps zur Umsetzung bekommen kann! Wenn du willst überarbeite ich dein Programm en bissle. :)

Das was ich dir geschickt hatte, hat zwar sogut wie das gleiche gemacht, war aber noch auf XBMC und den DVBV beschränkt!
Bei der jetzigen Version kann man rein theoretisch fast jede Software einbinden, da sich das Programm bei jedes mal die aktuellen Daten der *.exe'n ermittelt und keinen fixen Fenstertitel benötigt (was zB. bei MP nicht gegeben ist)!

Du darfst das überarbeiten wenn du da noch Optimierungsmöglichkeiten siehst, aber wäre nett wenn du mir dan erklären würdest was du dann da gemacht hast! Ich will ja auch was dazulernen und auch noch sachen ergänzen und verbessern können, sonst bringt mir das nichts :d
 
So grob:

1. Wieso diese "eigene" .txt Format zum Speichern der Informationen?
Das ist meist eher kontraproduktiv.
Mit einer INI wärst du viel flexibler, die Startparamater usw. könnte man per Inireadsection Benutzer unabhängig machen.

2. Das 2D Array zum Zwischenspeichern der Daten macht den Code schwer lesbar. Noch gehts ja, aber das wird ärgerlich wenn du vor hast weitere Programme aufzunehmen oder auch sonst dein Skript erweiterst.
Besser ein 1D Array pro Programm (DVBV, XBMC usw.)!

3.
Ein paar kleinere Funktionänderungen:
Code:
Func _GetPath()
	$file = FileOpen("ehshell_custom_config.txt", 0)
	$app[0][4] = FileReadLine($file, 7)
	$app[1][4] = FileReadLine($file, 10)
	FileClose($file)
	If Not FileExists($app[0][4] Then MsgBox(0, "Error", $error1 & @CRLF & "Main Prog 1")
	; hier sollte jetzt mehr passieren als die msgbox, da sonst alle Funktionen durchlaufen und die Basis (Pfad zur .exe) fehlt)
	If Not FileExists($app[1][4] Then MsgBox(0, "Error", $error1 & @CRLF & "Main Prog 2")
	; hier sollte jetzt mehr passieren als die msgbox, da sonst alle Funktionen durchlaufen und die Basis (Pfad zur .exe) fehlt)
EndFunc   ;==>_GetPath


Func _GetExe()
	$app[0][2] = StringTrimLeft($app[0][4], StringInStr($app[0][4], "\", 0, -1))
	$app[1][2] = StringTrimLeft($app[1][4], StringInStr($app[1][4], "\", 0, -1))
EndFunc   ;==>_GetExe

Func _GetMainTitle()
	While ProcessExists($app[0][2]) Or ProcessExists($app[1][2])
		$arWinList = WinList()
		For $i = 1 To $arWinList[0][0] ; um durch ein Array zu loopen sind for ... next Schleifen besser
			$pid = WinGetProcess($arWinList[$i][0])
			If $pid = $app[0][3] And $app[0][0] = "" Then
				$app[0][0] = $arWinList[$c][0]
			ElseIf $pid = $app[1][3] And $app[1][0] = "" Then
				$app[1][0] = $arWinList[$i][0]
			EndIf
		Next

		If $app[0][0] <> "" And $app[1][0] <> "" Then
			ExitLoop
		ElseIf $app[0][3] = 0 Or $app[1][3] = 0 Then
			ExitLoop
		EndIf
	WEnd
EndFunc   ;==>_GetMainTitle
 
@all
Lasst euch von unserem Gerede nicht beeinflussen, ihr könnt trotzdem weiter hier diskutieren! :)

@nuts
zu 1.
Die .txt war nur ersteinmal notdürftig (ich hatte irgendwo gelesen das bei einer .ini mehr geladen werden muss und sich so der Zugriff verlängert)! Es war mir halt ersteinmal wichtig das man das Ganze recht einfach konfigurieren kann als user, quick and dirty halt! :fresse:
Für später war auch eine GUI angedacht zum configurieren, aber das war ersteinmal nebensächlich!

Wie würdest du das mit einer .ini gestalten? Und das mit dem "unabhängig machen" hab ich noch nicht ganz verstanden! Wie meinst du das?

zu 2.
Es ist nicht vorgesehen mehr als zwei Hauptprogramme zuzulassen und da ich halt niemanden auf 2 Bestimmte festnageln will, hab ich den Aufwand betrieben um den korrekten aktuellen Titel des Prozesses des jeweiligen Pragrammes zu ermitteln! (sonst wäre die Programmierung recht einfach)
Das Array lässt sich eigentlich leicht lesen, wenn du dir das Array mit _ArrayDisplay() anzeigen lässt, dann sieht man das ganz gut, und beim Programmieren hab ich halt immer diese "Tabelle" vor meinem geistigen Auge gehabt xD! Ist vllt etwas gewöhnungsbedürftig aber ersparrt mir nen Haufen Variablen, und da nicht mehr dazu kommt (/kommen sollte) hab ich da kein großes Problem mit! Und für jedes ein einzeln ein Array, naja, 0 ist halt das erste und 1 das zweite, von daher geht das! Ist wohl etwas eigenartig von mir! :fresse:

zu 3.
Die Änderungen die ich jetzt auf die schnelle gesehen hab find ich gut und wenn das so funktioniert, wirds übernommen! Muss ich aber erstmal testen!
 
Zuletzt bearbeitet:
zu1: Selbst wenn dem so sein sollte spielt das bei der Datenmenge überhaupt keine Rolle. Gerade ein .txt File nach deinem eigenen Format birgt einige Risiken.
z.B. der User drückt beim editieren einmal zuviel "Enter" und schon funktioniert dein Skript nichtmehr.
Ich mach mal ein Beispiel (nachm Fussball) mit ini und schicks dir.


zu2: Nichts spricht gegen ein Array, nur hätte ich kein 2D Array genommen.
Macht aber keinen Unterschied sondern ist eher eine Frage des Programmierstils!

zu3: Umbedingt testen, die Zeilen sind nur im Editor geändert :)
 
Ja da hast du recht und Tippfehler passieren schnell mal!
Ach mist stimmt ja Fussball .. naja hab ja noch nicht viel verpasst, ist noch kein Tor gefallen!
Danke :)
 
So hab dir mal was geschickt :)
Die Idee mit dem Tauschen der Systemdateien ist für diese Anwendung irgendwie witzig.
 
Zuletzt bearbeitet:
Warum ist das witzig? :d
Das ersetzen der ehshell.exe wird demnächst geändert, da sämmtliche Befehle der Fernbedienung über die ehtray reinkommen!
€: Damit sollte dann auch die Unterstütz der WMC's gewähleistet sein ... mal sehen :)
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh