Jump to content

Desktop TV ohne Overlay Mixer


Kunda

Recommended Posts

DesktopTV-Win10 ist eine Anwendung, die auf einem Autohotkey-Script basiert. Sie ermöglicht es, das altbekannte DVBViewer-Feature Desktop TV ohne den veralteten Overlay Mixer zu verwenden. Die Anwendung ist bei mir sowohl unter Windows 10 als auch unter Windows 7 voll funktionstüchtig. Im Download ist sowohl das Autohotkey-Script DesktopTV-Win10.ahk als auch die kompilierte Standalone-Version DesktopTV-Win10.exe enthalten, die ohne installiertes Autohotkey lauffähig ist.

 

Grundfunktionen:

  • Das Script nimmt im Wesentlichen zwei Manipulationen des DVBViewer-Hauptfenster vor.
    • das Fenster wird zu einem Unterfenster des Desktops gemacht. Dadurch bleibt es immer unter allen anderen aktiven Fenstern.
    • das Fenster wird "durchklickbar" gemacht, so dass das Kontextmenü des Desktops erreichbar ist, wenn man einen Rechtsklick auf das Fenster macht.
  • Im Unterschied zum alten Desktop-Modus verschwinden die Desktopsymbole unter dem DVBViewer-Fenster. Im durchklickbaren Vollbildmodus sollte deshalb die Option Desktop-Icons verstecken aktiviert werden, um zu verhindern dass die Icons versehentlich geklickt werden können.
  • Ein weiterer Unterschied ist, dass Desktop TV nicht nur im Vollbild verwendet werden kann. Das Fenster kann in jeder beliebigen Größe überall auf dem Desktop fixiert werden. Wenn die Option Durchklickbar deaktiviert wird, kann das Fenster wie gewohnt manipuliert werden und das Kontextmenü von DVBViewer bleibt erreichbar. Das Fenster bleibt aber immer unter allen anderen Fenstern auf dem Desktop fixiert.

 

Weitere Funktionen:

  • Die Anwendung zeigt ein Symbol mit verschiedenen Optionen im System-Tray an:
    • DVBViewer Forum: ein direkter Link zu diesem Forumsthema
    • DVBViewer beenden: DVBViewer wird vollständig beendet
    • Desktop TV beenden: DVBViewer wird im normalen Modus neu gestartet
    • Einstellungen: Öffnet ein Einstellungsfenster in dem alle relevanten Einstellungen vorgenommen werden können (Vollbild, Durchklickbar, Desktopsymbole verstecken, Fensterposition und Fenstergröße). Ein Klick auf Anwenden startet DVBViewer mit den aktuellen Einstellungen neu.
  • Beim ersten Start wird automatisch die Datei DesktopTV-Win10.ini im Konfigurationsordner von DVBViewer erstellt, sofern die Datei noch nicht existiert. Dabei werden die aktuellen Fenstereinstellungen von DVBViewer aus der Setup.xml ausgelesen und in die INI-Datei übertragen. Außerdem wird die Spracheinstellung von DVBViewer gelesen. Wenn die Sprache nicht "Deutsch" ist, werden Tray-Menü und Einstellungsfenster in englischer Sprache dargestellt.
  • Die ursprüngliche Einstellung für die Windows-Option "Desktopsymbole anzeigen" wird gelesen und unabhängig von Änderungen in den Einstellungen, beim Beenden der Anwendung wiederhergestellt.
  • DVBViewer wird beim ersten Start im Vollbildmodus, durchklickbar wie oben beschrieben als Desktop-Child gestartet. Eine eventuell bereits laufende Instanz von DVBViewer wird dazu vorher beendet.
  • Wenn sowohl die Option Durchklickbar als auch Vollbild in den Einstellungen aktiviert sind, werden automatisch auch die Desktopsymbole temporär versteckt.
  • Sollte explorer.exe beendet werden, wird auch DVBViewer beendet und neu gestartet sobald explorer.exe wieder läuft. Dies ist erforderlich, weil DVBViewer sich sonst aufhängt wenn explorer.exe beendet wurde und nach kurzer Zeit nur noch durch einen System-Neustart beendet werden kann. Dies ist der einzige Grund, warum die Anwendung im Hintergrund laufen muss, solange der Desktop-Modus verwendet wird.
  • Wenn DVBViewer beendet wird, wird nach 3 Sekunden auch die Anwendung beendet.

 

Update Version1.1:

  • Die INI-Datei wird jetzt im Konfigurationsverzeichnis von DVBViewer gespeichert, um Probleme mit Schreibrechten zu vermeiden.
  • Falls in der settings.xml die Werte W (Fensterbreite) und H (Fensterhöhe) in der Sektion Display nicht existieren werden jetzt die Werte CW und CH gelesen. Um korrekte Werte zu erhalten muss die Sektion "Display" vor allen anderen Fensterdefinitionen in der settings.xml stehen, was bei einer nicht manuell modifizierten Datei immer der Fall sein dürfte.
  • Wenn in der usermode.ini UserMode=0 angegeben ist, wird das Konfigurationsverzeichnis nicht mehr wie bisher im Installationsverzeichnis gesucht, sondern in dem Pfad, der unter Root=[Pfad] definiert wurde. Dort muss ein vollständiger Pfad zu einem Ordner mit Schreibrechten angegeben sein.
  • Für die Tray-Menü-Befehle Desktop-TV beenden und DVBViewer beenden wird jetzt der Befehl -x12326 (DVBViewer ohne Nachfrage schließen) aus der actions.ini benutzt statt -x6.
  • &-Zeichen aus dem Fenstertitel des Einstellungsdialogs entfernt

 

Update Version 1.2:

  • Die Werte aus der settings.xml werden jetzt immer aus der Sektion "Display" gelesen, auch wenn vorher andere Fensterdefinitionen vorhanden sind.
  • Das Beenden von DVBViewer wenn explorer.exe beendet wurde funktionierte nicht, wenn in den Einstellungen Bestätigung beim Beenden aktiviert war. Statt -x6 wird jetzt auch hier -x12326 verwendet.

 

Update Version 1.3:

  • In Version 1.2 funktionierte die Anwendung nicht, weil beim Versuch ein Icon zuzuordnen ein Eintrag im Tray-Menü nicht gefunden wurde. Das Script funktionierte, weil es keine Icons im Tray-Menü verwendet.

 

Desktop TV-Win10.ini

 

;DesktopTV-Win10.ini

[settings]
FullScreen=True
ClickThrough=True
HideDesktopIcons=True
X=[Einstellung aus setup.xml]
Y=[Einstellung aus setup.xml]
Width=[Einstellung aus setup.xml]
Height=[Einstellung aus setup.xml]

 

 


DesktopTV-Win10.ahk

 

#SingleInstance force
SendMode Input
SetWorkingDir %A_ScriptDir%
applicationname = DesktopTV-Win10

;Pfad zu DVBViewer.exe aus der Registrierung lesen
;Read path to DVBViewer.exe from Registry
RegRead,DVBVPath,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\DVBViewer.exe
SplitPath,DVBVPath,,InstallPath

;DVBViewer Einstellungen (Sprache und Fensterdaten) aus setup.xml lesen
;Read DVBViewer settings (Language and Window data) from setup.xml
IniRead,Mode,%InstallPath%\UserMode.ini,Mode,UserMode
IniRead,Root,%InstallPath%\UserMode.ini,Mode,Root
If Mode=1
DVBVSetup = %AppData%\%Root%
If Mode=2
DVBVSetup = %ProgramData%\%Root%
If Mode=0
DVBVSetup = %Root%
FileRead,Text,%DVBVSetup%\setup.xml
RegExMatch(Text,"<entry name=""Language"">(.+)</entry>",Lang)
Loop,Read,%DVBVSetup%\setup.xml
{
IfInString,A_LoopReadLine,<section name="Display">
{
Section = %A_Index%
Break
}
}
StringSplit, Text, Text, `n, `r
Loop, %Text0%
{
Line1 := Section + 1
Line2 := Section + 2
Line3 := Section + 3
Line4 := Section + 4
Line5 := Section + 5
Line6 := Section + 6
Line7 := Section + 7
Line8 := Section + 8
Line9 := Section + 9
Line10 := Section + 10
Line11 := Section + 11
Line12 := Section + 12
Line13 := Section + 13
Line14 := Section + 14
Line15 := Section + 15
Line16 := Section + 16
Line17 := Section + 17
Line18 := Section + 18
Line19 := Section + 19
Line20 := Section + 20
}
FileAppend,% Text%Line1% "`n" Text%Line2% "`n" Text%Line3% "`n" Text%Line4% "`n" Text%Line5% "`n" Text%Line6% "`n" Text%Line7% "`n" Text%Line8% "`n" Text%Line9% "`n" Text%Line10% "`n" Text%Line11% "`n" Text%Line12% "`n" Text%Line13% "`n" Text%Line14% "`n" Text%Line15% "`n" Text%Line16% "`n" Text%Line17% "`n" Text%Line18% "`n" Text%Line19% "`n" Text%Line20%,%temp%\Test.txt
FileRead, xmldata,%temp%\Test.txt
RegExMatch(xmldata,"<entry name=""X"">(.+)</entry>",Xdata)
RegExMatch(xmldata,"<entry name=""Y"">(.+)</entry>",Ydata)
RegExMatch(xmldata,"<entry name=""C?W"">(.+)</entry>",Wdata)
RegExMatch(xmldata,"<entry name=""C?H"">(.+)</entry>",Hdata)
FileDelete,%temp%\Test.txt

;Sprachoptionen
;Language options
If Lang1 = Deutsch
{
ExDVBV = DVBViewer &beenden
ExDTV = &Desktop TV beenden
Config = Einstellungen
Full = Vollbild
Click = Durchklickbar
Ico = Desktop-Icons verstecken
Hor = horizontale Fensterposition:
Vert = vertikale Fensterposition:
WW = Fensterbreite:
WH = Fensterhöhe:
Use = Anwenden
Quit = Abbrechen
Link = http://www.DVBViewer.tv/forum/topic/57471-desktop-tv-autohotkey-script-windows-10/?p=438929
}
Else
{
ExDVBV = &Exit DVBViewer
ExDTV = Close &Desktop TV
Config = Settings
Full = Fullscreen
Click = ClickThrough
Ico = Hide Desktop Icons
Hor = horizontal Position:
Vert = vertical Position:
WW = Width
WH = Height
Quit = Cancel
Use = Reload
Link = http://www.DVBViewer.tv/forum/topic/57519-desktop-tv-without-overlay-mixer/
}

Gosub,READINI
Gosub,TRAYMENU
OnExit, ExitSub

;ursprüngliche Einstellung für Desktop-Icons speichern
;Save current setting for desktop icons
ControlGet,HWND,Hwnd,,SysListView321,ahk_class Progman
If HWND =
ControlGet,HWND,Hwnd,,SysListView321,ahk_class WorkerW
If DllCall("IsWindowVisible",UInt,HWND)
ShowIcons = True

;Desktop-Icons verstecken, wenn die Option in den Einstellungen aktiviert wurde
;Hide desktop icons if this option is activated in settings
If HideDesktopIcons = True
WinHide,ahk_id %HWND%

;laufende DVBViewer-Instanz beenden, wenn vorhanden
;Exit currently running instance of DVBViewer if present
Process,Exist,DVBViewer.exe
If ErrorLevel <> 0
{
Run,%DVBVPath% -x12326
Process,WaitClose,DVBViewer.exe
}

;DVBViewer im Desktop-Modus starten
;Start DVBViewer in desktop mode
If (%FullScreen% = True AND %ClickThrough% = True)
WinHide,ahk_id %HWND%
Run,%DVBVPath%
WinWait,ahk_class TfrmMain
If ClickThrough = True
WinSet, Transparent, 255, ahk_class TfrmMain
WinSet,ExStyle,+0x80020, ahk_class TfrmMain
If FullScreen = True
Run,%DVBVPath% -x5
Else If FullScreen = False
WinMove,ahk_class TfrmMain,,%X%,%Y%,%Width%,%Height%
DllCall("SetParent",ptr,WinExist(),ptr,WinExist("Program Manager"))

;Wenn explorer.exe beendet wird DVBViewer ebenfalls beenden und Script neu starten
;If explorer.exe was closed also close DVBViewer and restart this script
Process,Exist,explorer.exe
PID = %errorlevel%
Loop
{
Sleep, 200
Process,Exist,explorer.exe
If errorlevel <> %PID%
{
Process,Close,DVBViewer.exe
Process,WaitClose,DVBViewer.exe
Process,Wait,explorer.exe
Process,Exist,explorer.exe
PID = %errorlevel%
Reload
}

;Wenn DVBViewer beendet wird, dieses Script nach 3 Sekunden ebenfalls beenden
;If DVBViewer was closed also close this script after 3 seconds
Process,Exist,DVBViewer.exe
If ErrorLevel = 0
{
Sleep, 3000
ExitApp
}
}

READINI:
;INI-Datei erstellen
;Create INI file
IfNotExist,%DVBVSetup%\%applicationname%.ini
{
inifile=;%applicationname%.ini
inifile=%inifile%`n
inifile=%inifile%`n[settings]
inifile=%inifile%`nFullScreen=True
inifile=%inifile%`nClickThrough=True
inifile=%inifile%`nHideDesktopIcons=True
inifile=%inifile%`nX=%Xdata1%
inifile=%inifile%`nY=%Ydata1%
inifile=%inifile%`nWidth=%Wdata1%
inifile=%inifile%`nHeight=%Hdata1%
FileAppend,%inifile%,%DVBVSetup%\%applicationname%.ini
inifile=
}
IniRead,ClickThrough,%DVBVSetup%\%applicationname%.ini,Settings,ClickThrough
IniRead,HideDesktopIcons,%DVBVSetup%\%applicationname%.ini,Settings,HideDesktopIcons
IniRead,X,%DVBVSetup%\%applicationname%.ini,Settings,X
IniRead,Y,%DVBVSetup%\%applicationname%.ini,Settings,Y
IniRead,Width,%DVBVSetup%\%applicationname%.ini,Settings,Width
IniRead,Height,%DVBVSetup%\%applicationname%.ini,Settings,Height
IniRead,FullScreen,%DVBVSetup%\%applicationname%.ini,Settings,FullScreen
Return

TRAYMENU:
Menu,Tray,NoStandard
Menu,Tray,Tip,%applicationname%
Menu,Tray,Add,%applicationname%,FEEDBACK
Menu,Tray,Add
Menu,Tray,Add,DVBViewer &Forum,FEEDBACK
Menu,Tray,Add,%ExDVBV%,EXITDVBV
Menu,Tray,Add,%ExDTV%,EXITDTV
Menu,Tray,Add,&%Config%,SETTINGS
If A_IsCompiled = 1
{
Menu,Tray,Icon,%applicationname%,%A_ScriptName%
Menu,Tray,Icon,DVBViewer &Forum,%A_ScriptName%,-206
Menu,Tray,Icon,%ExDVBV%,%A_ScriptName%,-206
Menu,Tray,Icon,%ExDTV%,%A_ScriptName%,-207
Menu,Tray,Icon,&%Config%,%A_ScriptName%,-160
}
Return

FEEDBACK:
Run,%Link%
Return

SETTINGS:
Gui,99:Destroy
Gui,99:Margin,10,10
If A_IsCompiled = 1
Gui,99:Add,Picture,xm Icon1,%A_ScriptName%
Gui,99:Font,Bold
Gui,99:Add,Text,x+10 yp+10,%applicationname% v1.0
If FullScreen=True
Gui,99:Add,Checkbox,xm y80 checked vFS,%Full%
Else If FullScreen=False
Gui,99:Add,Checkbox,xm vFS,%Full%
If ClickThrough=True
Gui,99: Add,Checkbox,xm checked vCT,%Click%
Else If ClickThrough=False
Gui,99: Add,Checkbox,xm vCT,%Click%
If HideDesktopIcons=True
Gui,99:Add,Checkbox,xm checked vHDI,%Ico%
Else If HideDesktopIcons=False
Gui,99:Add,Checkbox,xm vHDI,%Ico%
Gui,99:Font,Bold
Gui,99:Add,Text,xm y+20 Section,%Hor%
Gui,99:Add,Text,xm y+20,%Vert%
Gui,99:Add,Text,xm y+20,%WW%
Gui,99:Add,Text,xm y+20,%WH%
Gui,99:Add,Edit,ys w40 vnewX,%X%
Gui,99:Add,Edit,w40 vnewY,%Y%
Gui,99:Add,Edit,w40 vnewWidth,%Width%
Gui,99:Add,Edit,w40 vnewHeight ,%Height%
Gui,99:Add,Button,xm+30 Section Default gButtonOK,%Use%
Gui,99:Add,Button,ys gButtonCancel, %Quit%
Gui,99:+AlwaysOnTop
Gui,99:Show,,%Config%
Return

99GuiClose:
Gui,99:Destroy
Return

ButtonOK:
Gui,99:Submit
If FS=1
IniWrite,True,%DVBVSetup%\%applicationname%.ini,Settings,Fullscreen
Else If FS=0
IniWrite,False,%DVBVSetup%\%applicationname%.ini,Settings,Fullscreen
If CT=1
IniWrite,True,%DVBVSetup%\%applicationname%.ini,Settings,ClickThrough
Else If CT=0
IniWrite,False,%DVBVSetup%\%applicationname%.ini,Settings,ClickThrough
If HDI=1
IniWrite,True,%DVBVSetup%\%applicationname%.ini,Settings,HideDesktopIcons
Else If HDI=0
IniWrite,False,%DVBVSetup%\%applicationname%.ini,Settings,HideDesktopIcons
IniWrite,%newX%,%DVBVSetup%\%applicationname%.ini,Settings,X
IniWrite,%newY%,%DVBVSetup%\%applicationname%.ini,Settings,Y
IniWrite,%newWidth%,%DVBVSetup%\%applicationname%.ini,Settings,Width
IniWrite,%newHeight%,%DVBVSetup%\%applicationname%.ini,Settings,Height
Reload

ButtonCancel:
Gui,99:Destroy
Return

EXITDTV:
Run,%DVBVPath% -x12326
Process,WaitClose,DVBViewer.exe
Run,%DVBVPath%
ExitApp

EXITDVBV:
Run,%DVBVPath% -x12326
ExitApp

ExitSub:
If ShowIcons = True
WinShow,ahk_id %HWND%
ExitApp

 

 

Tray-Menü:

post-41379-0-70202400-1450976740_thumb.png

 

Einstellungen:

post-41379-0-21561200-1450976811_thumb.png

Der Anhang enthält die Anwendung DesktopTV-Win10.exe sowie die Scriptdatei Desktop TV-Win10.ahk

post-41379-0-70202400-1450976740_thumb.png

post-41379-0-21561200-1450976811_thumb.png

DesktopTV-Win10_v1.3.zip

Edited by Kunda
  • Like 1
Link to comment

Mit Win7 funktioniert das Durchklickbar-machen mit dem DVBViewer-Fenster nicht (WinSet, ExStyle, +0x80020, ahk_class TfrmMain). Das Fenster verschwindet dann einfach. Mit anderen Fenstern funktioniert das auch unter Win7. Keine Ahnung, warum DVBViewer da nicht mitspielt. Vielleicht gibt es einen anderen Weg das mit AHK hinzukriegen. Leider bin ich da auch nicht der Experte.

Für die Programmierer könnte es vielleicht eine Kleinigkeit sein das Ganze auch unter Win7 zum Laufen zu bringen. Das Interesse den Desktop-Modus neu zu beleben scheint mir aber eher gering zu sein.

Link to comment

Wäre super wenn jemand testen könnte, ob das Script auch mit Win8/Win8.1 läuft. Bereits mit Win8 wurden erhebliche Änderungen an der Desktop Composition vorgenommen, so dass es gut möglich ist, dass es funktioniert. Mit der im ersten Beitrag angehängten EXE-Datei dauert das Testen keine Minute.

Edited by Kunda
Link to comment

Bei mir geht es unter Windows 8.1 nicht.

Der laufende DVBViewer wird beendet und eine neue Instanz gestartet. Von der neuen Instanz sieht man nichts und die Desktopsymbole werden auch nicht versteckt.

Es kann aber auch daran liegen das ich zwei Monitore mit erweitertem Desktop nutze. Oder EMET (auf maximaler Sicherheit stufe) funkt eventuell dazwischen.

Link to comment

Unter Win7 ist von der neuen Instanz auch nichts zu sehen. Das heisst, ich habe da eine vielleicht 2 Pixel breite flimmernde Linie am oberen Bildschirmrand. Seltsam ist, dass die Desktopicons nicht versteckt werden. Das geht bei mir sowohl mit 7 als auch mit 10. Das Originalscript dafür stammt von hier: ShowHide.zip.

Vielleicht sind die weggelassenen Zeilen 4 & 5 doch nicht so unwichtig, wie ich dachte... :original:

Ich habe die Zeilen zum Testen mal eingefügt und statt Vollbild ein kleines Fenster (Position: 400x200; Größe: 800x400) angegeben. Wenn die Sicherheitssoftware dazwischen funkt sollte doch eigentlich die EXE komplett blockiert werden oder?

 

Edit: Anhang gelöscht. Siehe Download im zweiten Beitrag.

 

Edited by Kunda
Link to comment

Mit der Version verschwinden die Desktop Icons und ich höre auch den Ton vom DVBViewer.

Das Fenster ist aber nicht zu sehen so als würde es außerhalb vom sichtbaren Bereich platziert.

 

Mit deinen angegebenen Werten sollte das Fenster aber zu sehen sein.

 

Habe die mal in der Setup.xml eingegeben. Dann landet das Fenster da wo ich es erwartet hätte.

 

<section name="Display">
<entry name="X">400</entry>
<entry name="Y">200</entry>
<entry name="CW">800</entry>
<entry name="CH">400</entry>
</section>
Link to comment

Danke für's Testen. Offenbar geht es wirklich nur mit Windows 10. Was du siehst ist genau der Effekt, den ich auch unter Win7 sehe. Das Fenster verschwindet hinter dem Wallpaper schätze ich. Wenn du nur die Zeile WinSet, ExStyle, +0x80020, ahk_class TfrmMain in eine AHK-Datei schreibst und das Script bei laufendem DVBV ausführst, kannst du zusehen wie das Fenster verschwindet.

 

Was mit Win7-Win8.1 per Script möglich wäre ist ein Fenster zu erstellen, das AlwaysOnBottom bleibt, d.h. es bleibt immer unter allen anderen Fenstern, weil es ein Child des Desktops ist. Dazu muss nur o.g. Zeile weggelassen werden. Das Fenster behält dann sein Kontextmenü und verhält sich auch sonst normal. Sinnvoll ist das vor Allem ohne Vollbild, wenn man ein DVBV-Fenster auf dem Desktop "einbrennen" will.

Ich hänge auch diese Version mal hier an. Das sollte eigentlich bei dir funktionieren.

 

Edit: Ich habe in dieser Version das Verstecken der Desktop-Icons deaktiviert, weil es bei dieser Verwendung unnötig ist.

 

Die beiden Zeilen für das Verstecken der Desktop-Icons habe ich im ersten Post zugefügt und dort auch im Download ergänzt. Ist vielleicht bei 2 Monitoren von Bedeutung.

 

Edit: Anhang gelöscht. Siehe Download im ersten Beitrag.

Edited by Kunda
Link to comment

Ich habe den zweiten Beitrag umgearbeitet und eine neue Version hochgeladen. Das Script und die Programmdatei lesen jetzt Einstellungen aus einer INI-Datei. Durch Editieren der Datei können alle bisher genannten Varianten sowie Größe und Position des Fensters eingestellt werden. Um Verwirrung zu vermeiden habe ich die weiteren Anhänge gelöscht.

Alle Infos finden sich oben im ersten Beitrag.

Edited by Kunda
Link to comment

Auch mit ClickThrough=False, HideDesktopIcons=False, FullScreen=False habe ich fast das gleich verhalten wie vorher. Das Fenster popt nach dem Start für eine Sekunden an der stelle auf wo es sein sollte. Und verschwindet dann.

Link to comment

Das überrascht mich allerdings. Mit Win7 läuft es damit gut. Microsoft hat in jeder Version etwas an der Desktop-Composition geändert. Natürlich kann es auch an anderen Dingen wie Grafikkarte, Video Renderer etc. liegen. Unter Win7 und Win10 funktionieren bei mir allerdings alle Einstellungen in den Optionen. Meine GK ist eine NVIDIA Geforce GTX 750 Ti.

 

Wenn weitere Tests zeigen, dass das Programm tatsächlich nur unter Win10/Win7 läuft kann ich eine automatische Prüfung der OS-Version einbauen. Vorerst lasse ich es bei der derzeitigen Version, damit weiter getestet werden kann.

Link to comment

 

Aber dann sollen das erst mal auch andere Testen.

Richtig. Auch eine Rückmeldung, ob es bei Anderen ebenfalls problemlos mit Win10/Win7 läuft wäre nützlich.

Leider kann man sich bei Microsoft nie sicher sein, dass es auch weiterhin funktioniert. Jedes Update/Upgrade könnte das wieder ändern.

Link to comment
  • 2 weeks later...

Fröhliche Weihnachten allerseits!

Es sieht aus als hätte ich eine Lösung für das Durchklickbar-Problem gefunden. Zumindest unter Win 7 ist DesktopTV-Win10 jetzt bei mir voll funktionstüchtig. Mit etwas Glück funktioniert diese Lösung auch mit anderen Windows-Versionen.

Die Lösung bestand darin, dem Fenster die Eigenschaft "Transparent" zuzuweisen, ohne es wirklich durchsichtig zu machen. Die relevanten Script-Zeilen für die Option Durchklickbar lauten damit:

WinSet, Transparent, 255, ahk_class TfrmMain
WinSet,ExStyle,+0x80020, ahk_class TfrmMain

 

 

In der neuesten Version 1.0 gibt es diverse weitere Änderungen, die die Anwendung komfortabler gestalten. Genauere Informationen und Download finden sich wie immer oben im ersten Beitrag.

 

@Tjod: Wäre super, wenn du dieser Version noch eine Chance geben und sie unter Win 8.1 testen könntest.

Edited by Kunda
Link to comment
  • 2 weeks later...

Hallo Tjod,

wenn die INI nicht erstellt wird kann es natürlich nicht richtig funktionieren. Zur Erklärung, wo es schief gelaufen sein könnte:

- Die Anwendung sucht zunächst den Pfad zu DVBViewer.exe in der Registrierung unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\DVBViewer.exe. Existiert dieser Eintrag bei dir?

- Im gefundenen Installationspfad wird die Datei usermode.ini gelesen, um den Pfad zum Konfigurationsverzeichnis zu ermitteln. Das Verzeichnis wird dann je nachdem, was da unter Mode und Root eingetragen ist entweder unter %APPDATA%\[Root] (Mode=2), %PROGRAMDATA%\[Root] (Mode=1) oder im Installationspfad von DVBViewer (Mode=0), wie in der Wiki beschrieben gesucht. Hast du da was anderes (z.B. einen anderen Pfad für Root) stehen?

- Im Konfigurationsverzeichnis werden dann verschiedene Werte aus der setup.xml gelesen. Die Tatsache, dass der Einstellungsdialog bei dir auf deutsch angezeigt wird lässt darauf schließen, dass die setup.xml gefunden wurde und der Eintrag für Language gelesen werden konnte. Das ist der einzige Eintrag, der nur gelesen und nicht in die INI-Datei geschrieben wird. Ansonsten werden die Werte für X,Y,W und H gelesen. Dabei ist wichtig, dass die ersten gefundenen Werte gelesen werden. Die section "Display" muss also vor allen anderen Sektionen, die Fenstergrößen festlegen in der setup.xml stehen, sonst werden die Werte für ein anderes Fenster ausgelesen.

- Zum Schluss wird die INI-Datei mit den gefundenen Werten geschrieben. Hier scheint bei dir das Problem zu liegen. Die Anwendung bekommt anscheinend nicht die benötigten Rechte die Datei zu schreiben. Das kann z.B. passieren wenn du die Anwendung im Programme-Ordner ausführst. Du kannst versuchen die Anwendung als Administrator auszuführen oder die Anwendung an einem anderen Ort (z.B. vom Desktop) auszuführen, wo du sicher Schreibrechte hast. Es könnte natürlich auch sein, dass eine Sicherheitssoftware dazwischen funkt.

 

Du kannst die INI-Datei natürlich auch manuell nach dem im zweiten Beitrag dargestellten Muster erstellen. Wenn eine vorhandene INI gefunden wird, werden deren Werte nur dann überschrieben, wenn du im Einstellungen-Dialog Änderungen vornimmst. Zum Testen, ob alles andere funktioniert reicht das erst mal aus.

Link to comment

Das ist aber eher (imho eindeutig) ein Fehler des Skripts.


Das sollte nicht versuchen in Verzeichnisse zu schreiben, für die es keine Schreibrechte hat.


Die INI sollte per Default in "@AppDataCommonDir" oder so abgelegt werden. ;)


Edited by nuts
Link to comment

- Die Anwendung sucht zunächst den Pfad zu DVBViewer.exe in der Registrierung unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\DVBViewer.exe. Existiert dieser Eintrag bei dir?

Ja und verweist auch auch die richtige Installation (das hätte bei mir ein Problem sein können ich habe meist mehrere Installationen die auch mal unsauber gelöscht werden ;))

C:\Program Files (x86)\DVBViewer\DVBViewer.exe

 

Hast du da was anderes (z.B. einen anderen Pfad für Root) stehen?

Nein Standard Werte:

[Mode]

UserMode=2

Root=CMUV\DVBViewer

 

Ansonsten werden die Werte für X,Y,W und H gelesen. Dabei ist wichtig, dass die ersten gefundenen Werte gelesen werden. Die section "Display" muss also vor allen anderen Sektionen, die Fenstergrößen festlegen in der setup.xml stehen, sonst werden die Werte für ein anderes Fenster ausgelesen.

Die Reinhnfolge in der .xml ist nicht festgelegt. Der DVBViewer fügt fehlen Sektionen einfach hinten an. Und es werde mehr oder weniger da nur Sachen geschrieben die schon mal geändert wurden.

 

Das Sprache und Position vorhanden sind ist aber wohl meistens so. Und in den meisten fällen sollte such die Position des Hauptfensters als erstes geschrieben werden.

 

Hier mal meine setup.xml zum Testen.

 

 

- Zum Schluss wird die INI-Datei mit den gefundenen Werten geschrieben. Hier scheint bei dir das Problem zu liegen. Die Anwendung bekommt anscheinend nicht die benötigten Rechte die Datei zu schreiben. Das kann z.B. passieren wenn du die Anwendung im Programme-Ordner ausführst.

Ich habe die in den DVBViewer Ordner kopiert.

 

Wenn du dir schon die mühe macht das Konfigurationsverzeichnis zu ermitteln. Warum Speicherst du die .ini nicht da?

 

Wenn ich die .exe wo anders starte sieht es schon etwas besser aus:

2016-01-07_154158.png

 

Aber auch wenn ich eine Fester Breite 100 und Höhe 100 eintrage und das ganze neu starte ist nichts zu sehen (der Ton ist aber wie eigentlich immer zu hören).

 

Desktop TV Beenden scheint keine Funktion zu haben. Und DVBViewer beenden in dem Menü sorgt nur dafür das die Icons wieder erscheinen. Der DVBViewer läuft aber weiter.

Link to comment

Danke für eure Rückmeldungen. Ich habe eine neue Version hochgeladen, die hoffentlich die genannten Mängel behebt.

- In meiner settings.xml standen in der Sektion "Display" die Werte W und H, die bei Änderungen der Fenstergröße aktualisiert wurden. In der settings.xml von Tjod gab es diese Einträge nicht, sondern nur die Werte CW und CH. Diese Werte blieben bei mir immer unverändert, bis ich die Zeilen für W und H testweise gelöscht habe. Die neue Version kann mit beiden Versionen umgehen.

- Warum die Befehle Desktop-TV beenden und DVBViewer beenden nicht funktionieren kann ich nur vermuten. Ich hatte dafür den Befehl -x6 aus der actions.ini verwendet, der eine Bestätigung erfordert, wenn das nicht (wie bei mir) in den Einstellungen deaktiviert wurde. Die neue Version verwendet jetzt -x12326 (DVBViewer ohne Bestätigung beenden).

Edit: Ich habe das jetzt getestet und es lag tatsächlich an der Kombination -x6 und aktivierte Bestätigung beim Beenden in den Einstellungen. -x12326 funktioniert bei mir zuverlässig.

- Eurem Rat folgend wird die INI-Datei jetzt im Konfigurationsverzeichnis gespeichert.

- UserMode=0 sucht das Konfigurationsverzeichnis jetzt nicht mehr im Installationsverzeichnis sondern erfordert eine vollständige Pfadangabe für Root=[Pfad] in der usermode.ini

 

@Tjod: Wie es aussieht will das Fernsehbild ums Verrecken nicht auf deinem Desktop festgenagelt werden. Auf deinem System wird es nach deinen Schilderungen vermutlich auch mit der neuen Version nicht funktionieren. Vielleicht magst du trotzdem noch einmal testen, ob die anderen Fehler jetzt ausgemerzt sind.

 

Eine ausführliche Beschreibung der Änderungen und den Download findet ihr wie immer oben im ersten Beitrag.

Edited by Kunda
Link to comment

Bis auf die anzeige des Fernsehbilds klappt jetzt alles.

 

Wäre mal interessant ob das an Windows 8.1 oder an was auf meinem System liegt. Daber das scheint keinen anderen mit Win 8.1 zu geben der das probieren will.

Und bei UserMode=0 kannst da davon ausgehen das du im DVBViewer Verzeichnis schreib rechte hast ;)
Sonst gibt es auch mit dem DVBViewer Probleme. :innocent:

Das kann außerdem nur manuell in der UserMode.ini gesetzt werden. Das heißt das kommt nur bei Nutzern vor die wissen sollten was sie machen.

Link to comment

Hallo Tjod,

schön dass (bis auf das Wichtigste :() alles funktioniert. Bei der usermode.ini habe ich mich an den Empfehlungen im Wiki-Artikel orientiert.

Vielen Dank für deine Unterstützung. Dadurch konnte ich einige wichtige Bugs beheben.

Ich würde es auch klasse finden, wenn ein paar mehr User die Anwendung mal testen würden. Bisher bist du der Einzige. Im englischen Forum gibt es zwar immerhin 14 Downloads aber kein Feedback. Dabei kostet das Testen nur einen Doppelklick auf die heruntergeladene Datei.

 

Als überzeugter Fernbedienungs-Hasser kann ich gar nicht verstehen, das sich so wenig Leute für Desktop-TV interessieren. Ich möchte meine komplett Maus-bedienbare 42 Zoll Multimedia Glotze jedenfalls nicht mehr missen und bin froh eine Lösung gefunden zu haben, das alte Feature neu zu beleben. Das der Trend eher dahin geht, Internet- und Computerfunktionen mit der Fernbedienung zu managen kann ich nicht nachvollziehen. Mir schwillt immer der Kamm, wenn ich mich mit so einem Teil durch irgendwelche Menüs quälen muss.

Link to comment

Update auf Version 1.2:

- Die Werte aus der settings.xml werden jetzt immer aus der Sektion "Display" gelesen, auch wenn davor andere Fensterdefinitionen vorhanden sind.

- Das Beenden von DVBViewer wenn explorer.exe beendet wurde funktionierte nicht, wenn in den Einstellungen die Bestätigung beim Beenden aktiviert war. Statt -x6 wird jetzt auch hier -x12326 verwendet.

Link to comment

Meinst du das sollte in das Tray-Kontextmenü von DesktopTV-Win10 integriert werden? Das wäre sicher möglich.

Zum Umschalten finde ich allerdings TVBrowser mit Switch-Plugin optimal. Da kann ich direkt aus dem Tray-Kontextmenü umschalten. Weitere Befehle finde ich für den Desktop-Modus am komfortabelsten im Kontextmenü des Desktops untergebracht. Wenn man weiß wie's geht kann man da auch ein Untermenü mit zahlreichen Einträgen erstellen. Ich habe da außerdem einen "ToggleTaskbar-Befehl" untergebracht, der die Funktion "Taskleiste automatisch ausblenden" ein- und ausschaltet, wenn ich mal Vollbild ohne Taskleiste haben will. Auf Dauer ist mir die Automatik zu nervig.

Bei der Einrichtung dieser Dinge kann ich ggfs. gern behilflich sein.

 

TVBrowser Tray-Kontextmenü

post-41379-0-00689500-1452267609_thumb.png

 

Desktop Kontextmenü

post-41379-0-23510100-1452267806_thumb.png

Edited by Kunda
Link to comment

Das muss nicht integriert werden.

Würde ich auch eher überzogen finden.

Der DVBViewer ist ja auch in der Taskleiste sichtbar

...wenn nicht (wie bei mir) in den Optionen deaktiviert.

 

Mit Hilfe der Jumplist.ini ist es aber möglich, DesktopTV-Win10 aus der Sprungliste zu starten, wenn man zunächst per Command.vbs eine ActionID für den Start von DesktopTV-Win10.exe erstellt.

Link to comment

Auch schön! Das kannte ich noch nicht. Einiges gefällt mir da sogar besser als bei TVBrowser wie z.B. das andockbare Fenster mit Autohide-Funktion und die Konfigurierbarkeit von Farben und Transparenz. Im Zusammenspiel mit DesktopTV-Win10 zickt Zappi aber etwas rum. Beim Start gibt es eine Fehlermeldung, dass keine gültige DVBViewer-Instanz gefunden wurde. Dann macht Zappi aber doch brav seine Arbeit. Das liegt sicher daran, dass das DVBViewer-Fenster zum Desktop-Child gemacht wurde.

In der Bilanz bleibe ich aber doch bei TVBrowser, weil es da einiges an Funktionalität gibt, die ich nicht missen möchte.

Link to comment

Update Version 1.3:

- In Version 1.2 funktionierte die Anwendung nicht, weil beim Versuch ein Icon zuzuordnen ein Eintrag im Tray-Menü nicht gefunden wurde. Das Script funktionierte, weil es keine Icons im Tray-Menü verwendet.

Link to comment

Ja danke, das macht Sinn. Ich habe den ersten Beitrag und alle Verweise darauf entsprechend umformuliert.

 

Edit: Ich habe auch den Titel geändert, weil die Anwendung ja nicht auf Windows 10 beschränkt ist. Konsequenterweise müsste ich jetzt auch den Namen der Anwendung ändern...

Edited by Kunda
Link to comment
  • 1 year later...

Startet bei mir ... aber ich habe dann nur Ton und kein Bild.

Die ini wird bei mir nicht erstellt. Habe versucht sie per hand zu erstellen.

Bin aber wahrscheinlich zu blöd dafür.

 

Wenn jemand eine funktionierende ini hochläd, wäre super.

Link to comment

Hat sich erledigt. Ein Neustart hat geholfen.

Für alle die, die .ini per hand erstellen müssen, können meine Version probieren.

 

Für AMD-Kartenbesitzer hier mal zwei Links. Die haben zwar bei mir nicht geholfen, aber da wird auch ein Problem, mit dem Video-Overlay unter Windows 10 ersichtlich.

Und vielleicht hilft es ja jemand.

 

https://community.amd.com/thread/185778

http://install-driver.com/de/file/1418219887_amd-catalyst-omega-14.12-with-dotnet45-win8.1-64bit.exe.html

DesktopTV-Win10.ini

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...