Tvservice.exe manuell starten?! (1 Viewer)

Enforcer

Portal Member
November 21, 2006
46
0
Home Country
Germany Germany
Hallo,

da ich neben Mediaportal auch ProgDVB und DVBViewer für verschiedene Zwecke benutze, ist es störend dass der tvservice-Dienst bei jedem Windowsstart automatisch gestartet wird. Kann man das irgendwie so einstellen dass dieser Dienst erst startet, wenn ich Mediaportal starte? Geschickt wäre es dann auch, wenn dieser Dienst beim Beenden von Mediaportal wieder deaktiviert wird.

Danke!

Gruß ENF
 

level20peon

MP Donator
  • Premium Supporter
  • January 4, 2007
    1,082
    101
    42
    Aachen
    Home Country
    Germany Germany
    Hallo Enforcer,

    german version:
    grundsätzlich ist diese Funktion nicht in MediaPortal enthalten, da der Sinn eines Services nicht darin liegt, ihn zu starten, wenn ein bestimmtes Programm gestartet wird und ihn zu beenden, wenn dieses Programm wieder geschlossen wird. Ein Service läuft quasi immer (im Hintergrund).

    Du könntest aber zB mit AutoIt ein script verfassen und kompilieren, über das du dann MediaPortal startest, der Code würde in etwa so aussehen (Der Code bezieht sich darauf, dass er zu der Datei "MP.exe" kompiliert wird):


    english version:
    this option is not integrated in MediaPortal since the purpose of a service lays in always running in the background.

    Is is however possible to use an AutoIt script. Compile it an start MediaPortal through it afterwards. The Code would be something like this (It is intended to name the compiled .exe "MP.exe"):

    Code:
    #NoTrayIcon
    
    ProcessSetPriority("MP.exe", 0)
    
    Func _Singleton($occurenceName, $flag = 0)
    	Local $ERROR_ALREADY_EXISTS = 183
    	$occurenceName = StringReplace($occurenceName, "\", "") ; to avoid error
    	;    Local $handle = DllCall("kernel32.dll", "int", "CreateSemaphore", "int", 0, "long", 1, "long", 1, "str", $occurenceName)
    	Local $handle = DllCall("kernel32.dll", "int", "CreateMutex", "int", 0, "long", 1, "str", $occurenceName)
    	Local $lastError = DllCall("kernel32.dll", "int", "GetLastError")
    	If $lastError[0] = $ERROR_ALREADY_EXISTS Then
    		If $flag = 0 Then
    			Exit -1
    		Else
    			SetError($lastError[0])
    			Return 0
    		EndIf
    	EndIf
    	Return $handle[0]
    EndFunc
    
    
    
    if Not _Singleton("MP.exe",1) = 0 Then
    	Run("C:\Windows\System32\net.exe start TVService", "", @SW_HIDE)
    	Run("C:\Programme\Team MediaPortal\MediaPortal\MediaPortal.exe")
    	ProcessWait("MediaPortal.exe")
    	ProcessWaitClose("MediaPortal.exe")
    	Run("C:\Windows\System32\net.exe stop TVService", "", @SW_HIDE)
    EndIf


    -level20peon
     

    Users who are viewing this thread

    Top Bottom