我怎样才能获得像素的屏幕分辨率(高度,宽度)?
您可以使用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_CXSCREEN
和SM_CYSCREEN
。 这将返回主显示器屏幕的宽度/高度,以像素为单位。
DWORD dwWidth = GetSystemMetrics(SM_CXSCREEN); DWORD dwHeight = GetSystemMetrics(SM_CYSCREEN);