2015-06-10 71 views
2

我使用VLC播放器播放來自我的WPF應用程序的視頻(vlc palyer隨應用程序分發)可以在第一次啓動時避免警報「打開文件 - 安全Warnng」視頻(vlc)在新機器上不改變系統設置?從.NET應用程序和附件執行服務啓動進程

我使用這個代碼啓動VLC:

var vlcArgs = string.Format("\"{0}\" --config=\"{1}\" -Incurse --play-and-exit", 
    videoFilePath, vlcConfigPath); 

var psi = new ProcessStartInfo(@"vlc\vlc.exe", vlcArgs); 
VlcProcess = Process.Start(psi); 

我發現

每個腳本或程序時使用的ShellExecute()API 運行通過AES

那麼,如果我設置UseShellExecute屬性ProcessStartInfo對象爲false,會有幫助嗎?或者其他的想法如何避免AES檢查?

warning

+0

可能值得考慮的是,使用VLC包裝將視頻播放器嵌入到您的應用程序中如Vlc.DotNet(https://www.nuget.org/packages/Vlc.DotNet.Wpf/)。這應該有助於保持界面的一致性並提供對視頻播放的額外控制。 – goobering

+0

@goobering謝謝,我們在應用中使用了Vlc.DotNet很長一段時間,但是我們在內存泄漏方面存在嚴重問題(https://github.com/ZeBobo5/Vlc.DotNet/issues/68),所以我們決定臨時使用這個不是很優雅的解決方案/解決方法(我希望內存泄漏將在Vlc.DotNet的下一個問題中得到解決,我們將回退) –

回答

0

使用的CreateProcess相反的ShellExecute的。你可以嘗試下面的代碼嗎?

var vlcArgs = string.Format("\"{0}\" --config=\"{1}\" -Incurse --play-and-exit", 
    videoFilePath, vlcConfigPath); 

var psi = new ProcessStartInfo(@"vlc\vlc.exe", vlcArgs); 
psi.UseShellExecute = false; 
VlcProcess = Process.Start(psi); 
0

你可以嘗試以下方法:

如果proc.StartInfo.UseShellExecute是假的,那麼你正在啓動過程中,可以使用:

proc.StartInfo.CreateNoWindow = true; 

如果proc.StartInfo.UseShellExecute是true,

proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
相關問題