我怎样才能得到R的屏幕分辨率

我怎样才能获得像素的屏幕分辨率(高度,宽度)?

您可以使用commad-line界面来WMI

> system("wmic desktopmonitor get screenheight") ScreenHeight 900 

你可以用system捕获结果

 (scr_width <- system("wmic desktopmonitor get screenwidth", intern=TRUE)) # [1] "ScreenWidth \r" "1440 \r" "\r" (scr_height <- system("wmic desktopmonitor get screenheight", intern=TRUE)) # [1] "ScreenHeight \r" "900 \r" "\r" 

有了多个屏幕,输出是,例如,

 [1] "ScreenWidth \r" "1600 \r" "1600 \r" "" 

我们希望除了第一个和最后一个值之外的所有值都转换成数字

 as.numeric(c( scr_width[-c(1, length(scr_width))], scr_height[-c(1, length(scr_height))] )) # [1] 1440 900 

使用JavaScript很简单,只需要做

 window.screen.height window.screen.width 

您可以使用OmegaHat的SpiderMonkey包从R调用JavaScript。


你也可以用Java解决这个问题 ,并使用rJava包来访问它。

 library(rJava) .jinit() toolkit <- J("java.awt.Toolkit") default_toolkit <- .jrcall(toolkit, "getDefaultToolkit") dim <- .jrcall(default_toolkit, "getScreenSize") height <- .jcall(dim, "D", "getHeight") width <- .jcall(dim, "D", "getWidth") 

在Windows上,您可以调用GetSystemMetrics传递SM_CXSCREENSM_CYSCREEN 。 这将返回主显示器屏幕的宽度/高度,以像素为单位。

 DWORD dwWidth = GetSystemMetrics(SM_CXSCREEN); DWORD dwHeight = GetSystemMetrics(SM_CYSCREEN);