Comment puis-je obtenir la résolution de l’écran (hauteur, largeur) en pixels?
Vous pouvez utiliser une interface de ligne de commande pour WMI
> system("wmic desktopmonitor get screenheight") ScreenHeight 900
Vous pouvez capturer le résultat avec le 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"
Avec plusieurs écrans, la sortie est, par exemple,
[1] "ScreenWidth \r" "1600 \r" "1600 \r" ""
Nous voulons toutes les valeurs sauf la première et la dernière, converties en nombres
as.numeric(c( scr_width[-c(1, length(scr_width))], scr_height[-c(1, length(scr_height))] )) # [1] 1440 900
C’est facile avec JavaScript: vous faites juste
window.screen.height window.screen.width
Vous pouvez appeler JavaScript à partir de R en utilisant le package SpiderMonkey d’ OmegaHat .
Vous pouvez également résoudre ce problème avec Java et utiliser le package rJava pour y accéder.
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")
La réponse acceptée ne fonctionne pas sous Windows 8 et versions ultérieures.
Utilisez ceci:
system("wmic path Win32_VideoController get VideoModeDescription,CurrentVerticalResolution,CurrentHorizontalResolution /format:value")
Pour obtenir la résolution de l’écran dans un vecteur, vous pouvez l’implémenter comme suit:
suppressWarnings( current_resolution <- system("wmic path Win32_VideoController get CurrentHorizontalResolution,CurrentVerticalResolution /format:value", intern = TRUE) %>% strsplit("=") %>% unlist() %>% as.double() ) current_resolution <- current_resolution[!is.na(current_resolution)]
Maintenant, vous aurez un vecteur de longueur 2:
> current_resolution [1] 1920 1080
Sous Windows, vous pouvez appeler GetSystemMesortingcs
transmettant SM_CXSCREEN
et SM_CYSCREEN
. Cela renvoie la largeur / hauteur de l’écran du moniteur d’affichage principal, en pixels.
DWORD dwWidth = GetSystemMesortingcs(SM_CXSCREEN); DWORD dwHeight = GetSystemMesortingcs(SM_CYSCREEN);