在 MVC 5 网站的视图加载时以编程方式执行 F11 按键



我们正在开发一个使用 MVC 5 的网站。我们希望在加载其中一个视图时自动模拟按键 (F11(。这必须在视图加载时自动发生。 这样做的全部目的是使浏览器全屏显示。

到目前为止,我们有以下代码,它在本地测试时有效,但当我们将其实时发布到 Azure 时,它不起作用。

[DllImport("user32.dll")]
public static extern int SetForegroundWindow(IntPtr hWnd);
[STAThread]
public ActionResult StudentView()
{
while (true)
{
Process[] processes = Process.GetProcessesByName("chrome");
foreach (Process proc in processes)
{
SetForegroundWindow(proc.MainWindowHandle);
SendKeys.SendWait("{F11}");
}
Thread.Sleep(5000);
return View();
}
}

我们也尝试了这个问题中的一些解决方案,但是当网站发布上线时,它仍然不起作用。模拟按键 c#

请协助我们在视图加载时使浏览器全屏显示。提前谢谢。

恐怕你需要一种不同的方法。并非所有浏览器都会使用 F11 进入全屏。

导入 user32.dll 并模拟按键只有在 Windows 客户端上执行时才有效 - 本地执行,而不是从 Azure 执行。浏览器有一些全屏选项 - 但我不确定它们是否适合您的情况。视频播放组件能够请求全屏;你可能想深入研究一下。

否则,如果您以特定操作系统或浏览器为目标,则可以创建自定义客户端应用或插件。


至于javascript部分,你可以在这里找到一个例子:https://www.w3schools.com/howto/howto_js_fullscreen.asp,但我不确定它是否符合你的要求。

下面是其中一个示例:

来源: https://www.w3schools.com/howto/howto_js_fullscreen.asp

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
/* Chrome, Safari and Opera syntax */
:-webkit-full-screen {
background-color: yellow;
}
/* Firefox syntax */
:-moz-full-screen {
background-color: yellow;
}
/* IE/Edge syntax */
:-ms-fullscreen {
background-color: yellow;
}
/* Standard syntax */
:fullscreen {
background-color: yellow;
}
/* Style the button */
button {
padding: 20px;
font-size: 20px;
}
</style>
</head>
<body>
<h2>Fullscreen with JavaScript</h2>
<p>Click on the "Open Fullscreen" button to open this page in fullscreen mode. Close it by either clicking the "Esc" key on your keyboard, or with the "Close Fullscreen" button.</p>
<button onclick="openFullscreen();">Open Fullscreen</button>
<button onclick="closeFullscreen();">Close Fullscreen</button>
<script>
var elem = document.documentElement;
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) { /* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE/Edge */
elem.msRequestFullscreen();
}
}
function closeFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
</script>
<p>Note: Internet Explorer 10 and earlier does not support the msRequestFullscreen() method.</p>
</body>
</html>

最新更新