chis0710
Goto Top

Powershell GUI Video oder Stream einbinden

Hallo,

ich suche eine Möglichkeit, in eine von Powershell erstellte User Oberfläche (GUI oder ähnliches) Videos oder Streams abzuspielen. Ich würde mir wünschen, dass es zum Beispiel mit YouTube Videos oder auch mit ARD, ZDF,... Live Streams funktioniert. Gibt es hierfür irgendeine Möglichkeit?

VG

Content-Key: 275742

Url: https://administrator.de/contentid/275742

Printed on: April 18, 2024 at 13:04 o'clock

Mitglied: 114757
114757 Jun 26, 2015 updated at 13:02:31 (UTC)
Goto Top
Moin,
mit dem IE WebBrowser ActiveX Control bspw....

Gruß jodel32
Member: colinardo
Solution colinardo Jun 26, 2015, updated at Jun 28, 2015 at 20:00:32 (UTC)
Goto Top
Hallo Chris0710,
hier ein Beispiel für ein Youtube-Video:
$showWindowAsync = Add-Type –memberDefinition @” 
[DllImport("user32.dll")]   
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
“@ -name “Win32ShowWindowAsync” -namespace Win32Functions –passThru

function Hide-PowerShell() { 
    [void]$showWindowAsync::ShowWindowAsync((Get-Process –id $pid).MainWindowHandle, 2) 
}

function GenerateForm {

#region Import the Assemblies
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null  
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null  
#endregion

#region Generated Form Objects
$form1 = New-Object System.Windows.Forms.Form
$browser = New-Object System.Windows.Forms.WebBrowser
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
#endregion Generated Form Objects

$handler_form1_Shown= 
{
    # Webbrowser Code für das Video
    $video_code = @'  
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
</head>
<body style="margin:0;padding:0">  
<iframe width="400" height="300" src="https://www.youtube.com/embed/yN-7T95EOKk?autoplay=1" frameborder="0" allowfullscreen></iframe>  
</body>
</html>
'@  
    $browser.Navigate('about:blank')  
    $doc = $browser.Document.OpenNew($true)
    $doc.Write($video_code)
    $browser.Refresh()
    
}

#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 320
$System_Drawing_Size.Width = 420
$form1.ClientSize = $System_Drawing_Size
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$form1.Name = "form1"  
$form1.Text = "Simple WebBrowser"  
$form1.add_Shown($handler_form1_Shown)

$browser.DataBindings.DefaultDataSourceUpdateMode = 0
$browser.Dock = 5



$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 0
$System_Drawing_Point.Y = 0
$browser.Location = $System_Drawing_Point
$browser.Name = "pictureBox1"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 320
$System_Drawing_Size.Width = 420
$browser.Size = $System_Drawing_Size
$browser.TabIndex = 0
$browser.TabStop = $False

$form1.Controls.Add($browser)

#endregion Generated Form Code

#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$form1.ShowDialog()| Out-Null

} #End Function
Hide-PowerShell
GenerateForm
Grüße Uwe
Member: Chis0710
Chis0710 Jun 28, 2015 at 09:23:20 (UTC)
Goto Top
Hallo Uwe,

vielen Dank, ich habe die Hide-Powershell Function rausgeworfen, da sie einen Fehler ausgegeben hat und dadurch die GUI nicht kam. Jetzt bekomme ich noch eine riesen Meldungen (aber das Fenster öffnet). Diese kann man natürlich nicht kopieren, deshalb wäre es super, wenn wer eine alternative Lösung hat.
Member: colinardo
colinardo Jun 28, 2015 updated at 12:22:31 (UTC)
Goto Top
ich habe die Hide-Powershell Function rausgeworfen, da sie einen Fehler ausgegeben hat
Kann ich nicht bestätigen, nutze diese Funktion schon seit eh und jeh und hat noch nie Probleme gemacht, ist ja auch nichts Weltbewegendes !!
Siehe: Powershell Logon Script - Ausgabe anzeigen

Mache das ganze ja nicht zum ersten Mal. Sehr wahrscheinlich nutzt du noch die PS 2.0 und die kennt das CMDLet Add-Type noch nicht. Sollte das bei dir der Fall sein bitte zu aller erst mal die Powershell mindestens auf PS 3.0 hoch ziehen.
Aber du postest hier ja noch nicht mal die Fehlermeldung welche bei dir kommt face-sad

Jetzt bekomme ich noch eine riesen Meldungen (aber das Fenster öffnet).
Läuft hier einwandfrei, getestet auf Win 7/8 x64 mit IE 10 und11.
Was für eine Powershell-Version und welches OS und IE Version verwendest du?
Diese kann man natürlich nicht kopieren,
Hä ?? wieso nicht , klar geht das ! Also, wenn man dir hier helfen soll solltest du uns schon mit den Mindestinformationen versorgen, denn dem IE kann man auf unterschiedlichen Wegen HMTL Code unterschieben.

Hier spielen natürlich auch deine Sicherheitseinstellungen im IE eine wichtige Rolle.

Bitte nutze aber Codetags.

wenn wer eine alternative Lösung hat.
Viel anderes kannst du da nicht mehr machen,außer spezielle OCX Steuerlemente einzubinden (Window Media Player z.B.) dabei ist man dann aber immer auf spezielle Formate eingeschränkt.
Oder auf WPF zu switchen - da du aber noch Anfänger in Sachen GUI zu sein scheinst will ich dich damit jetzt nicht überfordern, denn das würde deine bestehende GUI komplett über den Haufen werfen, weil WPF ein ganz anderes Konzept als Windows Forms ist !
Mitglied: 114757
114757 Jun 28, 2015 at 11:40:28 (UTC)
Goto Top
Zitat von @colinardo:
Läuft hier einwandfrei, getestet auf Win 7/8 x64 mit IE 10 und11.
Kann ich ebenfalls bestätigen, läuft hier testweise auch problemlos. Youtube-Video läuft direkt nach dem Start an ... liegt wie @colinardo vermutet an deinen IE Sicherheitseinstellungen, aber ohne Fakten mal wieder Raten mit der Glaskugel.

Gruß jodel
Member: Chis0710
Chis0710 Jun 28, 2015 at 20:00:17 (UTC)
Goto Top
Hallo,

erstmal Entschuldigung für den Kommentar oben, mir ist klar, dass man so nicht helfen kann. Ich bin leider relativ neu unterwegs bei Powershell und brauche deshalb etwas länger.

Als erstes habe ich über "get-host" mal die Version herausgefunden:

PS C:\WINDOWS\system32> C:\Users\Christoph\Desktop\test.ps1


Name             : Windows PowerShell ISE Host
Version          : 4.0
InstanceId       : fc14fc47-30fb-47ab-856b-d4bcc5cf36de
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : de-DE
CurrentUICulture : de-DE
PrivateData      : Microsoft.PowerShell.Host.ISE.ISEOptions
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

Das Problem war wohl eher, dass ich die IE Einstellungen zu streng hatte und es deshalb nicht funktioniert hat. Jetzt läuft es, vielen Dank face-smile