Powershell에서 WebBrowser(CefSharp)를 실행합니다.
9684 단어 CefSharpPowerShell
개요
특히 수요는 없을지도 모르지만 Powershell에서 브라우저 표시시켜 조작할 필요가 있을지도 모른다.
하지만 표준 웹 브라우저 컨트롤이라면 IE에서 동작해 버리므로, 서포트라든지 표시의 문제라든지 필요없는 걱정을 하고 싶지 않기 때문에 IE를 사용하지 않도록 하자고 하는 이야기.
조사해 보면 그렇게 정보가 없었기 때문에 비망록으로 남겨 둡니다.
목차
· 준비
· WinForms로 이동
· WPF로 이동
준비
VisualStudio의 Nuget에서 다운로드하여 거기에서 필요한 구성 요소를 추출합니다.
적절한 WPF 응용 프로그램을 만들고 (WinForms에서 실행하려는 경우 Windows Forms 응용 프로그램 만들기) 도구> NuGet 패키지 관리자> 솔루션의 NuGet 패키지 관리를 엽니 다.
아래 패키지를 설치합니다.
(종속성으로 자동 다운로드되는 것도 있습니다)
·CefSharp.Common
・CefSharp.WinForms(WindForms로 움직일 경우)
・CefSharp.Wpf(WPF로 움직일 경우)
· cef.redist (이동하고 싶은 비트수를 설치한다)
↓의 기사를 보면 cef.redist의 모듈이 있다는 것.
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 58006674 / 룬이 g-f f rp-in-po r r
cef.redist 모듈의 다운로드 대상 아래 폴더를 복사합니다. (64bit 버전의 경우)
C:\Users\<사용자 이름>\.nuget\packages\cef.redist.x64\<버전 번호>\CEF
복사한 폴더에 다음 파일(모듈)을 넣습니다.
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.common\<버전 번호>\runtimes\win-x64\lib\netcoreapp3.0
· CefSharp.Core.dll
· CefSharp.Core.Runtime.dll
· CefSharp.dll
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.common\<버전 번호>\CefSharp\x64
· CefSharp.BrowserSubprocess.Core.dll
· CefSharp.BrowserSubprocess.exe
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.wpf\<버전 번호>\lib\net452
· CefSharp.Wpf.dll
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.winforms\<버전 번호>\lib\net452
· CefSharp.WinForms.dll
파일을 모으면 이런 느낌이 듭니다.
이제 움직일 준비가 되었습니다.
WinForms로 이동
준비 항목에서 만든 폴더에 ps1 파일을 만들어 동작을 확인해 봅니다.
코드 참고: h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 58006674 / 룬이 g-f f rp-in-po r r
(여기에 기재된 코드만이라면 동작하지 않았기 때문에 모듈 추기해 동작하도록 하고 있습니다)
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.Runtime.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.WinForms.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.dll")
Add-Type -AssemblyName System.Windows.Forms
# WinForm Setup
$mainForm = New-Object System.Windows.Forms.Form
$mainForm.Font = "Comic Sans MS,9"
$mainForm.ForeColor = [System.Drawing.Color]::White
$mainForm.BackColor = [System.Drawing.Color]::DarkSlateBlue
$mainForm.Text = "CefSharp"
$mainForm.Width = 960
$mainForm.Height = 700
[CefSharp.WinForms.ChromiumWebBrowser] $browser = New-Object CefSharp.WinForms.ChromiumWebBrowser "www.google.com"
$mainForm.Controls.Add($browser)
[void] $mainForm.ShowDialog()
WPF로 이동
마찬가지로 준비 항목에서 만든 폴더에 ps1 파일을 만들어 동작을 확인해 봅니다.
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.Runtime.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Wpf.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.dll")
Set-PSDebug -Strict
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WebBrowserTest"
xmlns:cef="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
Title="test" Height="720" Width="1280">
<Grid>
<cef:ChromiumWebBrowser Address="https://www.google.co.jp" />
</Grid>
</Window>
'@
$reader = New-Object System.Xml.XmlNodeReader $xaml
$frame = [System.Windows.Markup.XamlReader]::Load($reader)
$frame.ShowDialog()
Reference
이 문제에 관하여(Powershell에서 WebBrowser(CefSharp)를 실행합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SuperBoonland/items/293eb8ec991cee8bb1ee
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· 준비
· WinForms로 이동
· WPF로 이동
준비
VisualStudio의 Nuget에서 다운로드하여 거기에서 필요한 구성 요소를 추출합니다.
적절한 WPF 응용 프로그램을 만들고 (WinForms에서 실행하려는 경우 Windows Forms 응용 프로그램 만들기) 도구> NuGet 패키지 관리자> 솔루션의 NuGet 패키지 관리를 엽니 다.
아래 패키지를 설치합니다.
(종속성으로 자동 다운로드되는 것도 있습니다)
·CefSharp.Common
・CefSharp.WinForms(WindForms로 움직일 경우)
・CefSharp.Wpf(WPF로 움직일 경우)
· cef.redist (이동하고 싶은 비트수를 설치한다)
↓의 기사를 보면 cef.redist의 모듈이 있다는 것.
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 58006674 / 룬이 g-f f rp-in-po r r
cef.redist 모듈의 다운로드 대상 아래 폴더를 복사합니다. (64bit 버전의 경우)
C:\Users\<사용자 이름>\.nuget\packages\cef.redist.x64\<버전 번호>\CEF
복사한 폴더에 다음 파일(모듈)을 넣습니다.
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.common\<버전 번호>\runtimes\win-x64\lib\netcoreapp3.0
· CefSharp.Core.dll
· CefSharp.Core.Runtime.dll
· CefSharp.dll
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.common\<버전 번호>\CefSharp\x64
· CefSharp.BrowserSubprocess.Core.dll
· CefSharp.BrowserSubprocess.exe
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.wpf\<버전 번호>\lib\net452
· CefSharp.Wpf.dll
C:\Users\<사용자 이름>\.nuget\packages\cefsharp.winforms\<버전 번호>\lib\net452
· CefSharp.WinForms.dll
파일을 모으면 이런 느낌이 듭니다.
이제 움직일 준비가 되었습니다.
WinForms로 이동
준비 항목에서 만든 폴더에 ps1 파일을 만들어 동작을 확인해 봅니다.
코드 참고: h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 58006674 / 룬이 g-f f rp-in-po r r
(여기에 기재된 코드만이라면 동작하지 않았기 때문에 모듈 추기해 동작하도록 하고 있습니다)
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.Runtime.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.WinForms.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.dll")
Add-Type -AssemblyName System.Windows.Forms
# WinForm Setup
$mainForm = New-Object System.Windows.Forms.Form
$mainForm.Font = "Comic Sans MS,9"
$mainForm.ForeColor = [System.Drawing.Color]::White
$mainForm.BackColor = [System.Drawing.Color]::DarkSlateBlue
$mainForm.Text = "CefSharp"
$mainForm.Width = 960
$mainForm.Height = 700
[CefSharp.WinForms.ChromiumWebBrowser] $browser = New-Object CefSharp.WinForms.ChromiumWebBrowser "www.google.com"
$mainForm.Controls.Add($browser)
[void] $mainForm.ShowDialog()
WPF로 이동
마찬가지로 준비 항목에서 만든 폴더에 ps1 파일을 만들어 동작을 확인해 봅니다.
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.Runtime.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Wpf.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.dll")
Set-PSDebug -Strict
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WebBrowserTest"
xmlns:cef="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
Title="test" Height="720" Width="1280">
<Grid>
<cef:ChromiumWebBrowser Address="https://www.google.co.jp" />
</Grid>
</Window>
'@
$reader = New-Object System.Xml.XmlNodeReader $xaml
$frame = [System.Windows.Markup.XamlReader]::Load($reader)
$frame.ShowDialog()
Reference
이 문제에 관하여(Powershell에서 WebBrowser(CefSharp)를 실행합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SuperBoonland/items/293eb8ec991cee8bb1ee
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
준비 항목에서 만든 폴더에 ps1 파일을 만들어 동작을 확인해 봅니다.
코드 참고: h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 58006674 / 룬이 g-f f rp-in-po r r
(여기에 기재된 코드만이라면 동작하지 않았기 때문에 모듈 추기해 동작하도록 하고 있습니다)
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.Runtime.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.WinForms.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.dll")
Add-Type -AssemblyName System.Windows.Forms
# WinForm Setup
$mainForm = New-Object System.Windows.Forms.Form
$mainForm.Font = "Comic Sans MS,9"
$mainForm.ForeColor = [System.Drawing.Color]::White
$mainForm.BackColor = [System.Drawing.Color]::DarkSlateBlue
$mainForm.Text = "CefSharp"
$mainForm.Width = 960
$mainForm.Height = 700
[CefSharp.WinForms.ChromiumWebBrowser] $browser = New-Object CefSharp.WinForms.ChromiumWebBrowser "www.google.com"
$mainForm.Controls.Add($browser)
[void] $mainForm.ShowDialog()
WPF로 이동
마찬가지로 준비 항목에서 만든 폴더에 ps1 파일을 만들어 동작을 확인해 봅니다.
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.Runtime.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Wpf.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.dll")
Set-PSDebug -Strict
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WebBrowserTest"
xmlns:cef="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
Title="test" Height="720" Width="1280">
<Grid>
<cef:ChromiumWebBrowser Address="https://www.google.co.jp" />
</Grid>
</Window>
'@
$reader = New-Object System.Xml.XmlNodeReader $xaml
$frame = [System.Windows.Markup.XamlReader]::Load($reader)
$frame.ShowDialog()
Reference
이 문제에 관하여(Powershell에서 WebBrowser(CefSharp)를 실행합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SuperBoonland/items/293eb8ec991cee8bb1ee
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Core.Runtime.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.Wpf.dll")
[System.Reflection.Assembly]::LoadFile("$PSScriptRoot\CefSharp.dll")
Set-PSDebug -Strict
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WebBrowserTest"
xmlns:cef="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
Title="test" Height="720" Width="1280">
<Grid>
<cef:ChromiumWebBrowser Address="https://www.google.co.jp" />
</Grid>
</Window>
'@
$reader = New-Object System.Xml.XmlNodeReader $xaml
$frame = [System.Windows.Markup.XamlReader]::Load($reader)
$frame.ShowDialog()
Reference
이 문제에 관하여(Powershell에서 WebBrowser(CefSharp)를 실행합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SuperBoonland/items/293eb8ec991cee8bb1ee텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)