2011-09-05 4 views
9

में स्क्रीन रिज़ॉल्यूशन कैसे प्राप्त कर सकता हूं मैं पिक्सल में स्क्रीन रिज़ॉल्यूशन (ऊंचाई, चौड़ाई) कैसे प्राप्त कर सकता हूं?मैं आर

+2

कौन सी स्क्रीन? मेरे पास दो है। –

+1

अधिक उपयोगी सवाल यह है कि क्यों; टीके या अन्य जीयूआई जैसी चीजें शामिल हैं? – mbq

+0

@mbq gvisMotionChart को चार्ट की चौड़ाई और ऊंचाई की आवश्यकता होती है जो यह उत्पन्न करता है। तो मैंने सोचा कि मैं उपयोगकर्ता के स्क्रीन रिज़ॉल्यूशन के अनुसार उन पैरामीटर को बदल सकता हूं। –

उत्तर

10

आप WMI

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

को commad-लाइन इंटरफेस इस्तेमाल कर सकते हैं आप कैप्चर 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 
+0

सिस्टम में त्रुटि ("wmic डेस्कटॉप मॉनिटर स्क्रीनविड्थ प्राप्त करें", intern = TRUE): 'wmic' नहीं मिला। क्या मुझे कुछ इंस्टॉल करना है? –

+0

@ gd047 wmic निश्चित रूप से विंडोज व्यावसायिक संस्करण (XP/7) पर उपलब्ध है। मुझे पता है कि यह एक्सपी होम पर गायब है, लेकिन मुझे नहीं पता कि इसे स्थापित किया जा सकता है। – Marek

+0

यह पथ में नहीं था! –

1

विंडोज़ पर आप GetSystemMetricsSM_CXSCREEN और SM_CYSCREEN पास कर सकते हैं। यह पिक्सेल में प्राथमिक प्रदर्शन मॉनिटर की स्क्रीन की चौड़ाई/ऊंचाई देता है।

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

मेरा मानना ​​है कि पोस्टर सी ++ की बजाय आर भाषा से ऐसा करने की तलाश में है। –

+1

@ डेविड हेफरमैन हां आप सही, क्षमा करें, वैसे भी मुझे यह [लिंक] (http://www.nceas.ucsb.edu/scicomp/usecases/CreateRPackageWithC) मिला है शायद – Arash

4

यह जावास्क्रिप्ट के साथ आसान है: तुम सिर्फ कर

window.screen.height 
window.screen.width 

आप OmegaHat से SpiderMonkey पैकेज का उपयोग आर से JavaScript कॉल कर सकते हैं।


तुम भी solve this with 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") 
+0

मदद करें क्योंकि वास्तव में यह स्वयं परीक्षण नहीं किया गया है पैकेज बनाने के लिए संघर्ष करने के लिए संघर्ष कर रहे हैं। एक बार जब मैं इसे प्रबंधित करता हूं तो वापस रिपोर्ट करूंगा। –

+2

डाउनवोट के साथ क्या है? मुझे पता है कि विचार केवल आधे पूर्ण हैं, लेकिन फिर भी वे वैध संभावनाएं हैं। –

+1

ऐसा लगता है कि यह एक JVM की आवश्यकता के बिना प्राप्त किया जाना चाहिए! व्यक्तिगत रूप से मैं बस कुछ Win32 एपीआई कॉल लपेटूंगा लेकिन निश्चित रूप से कहीं ऐसा पैकेज है जो आपको हार्डवेयर जानकारी पूछने की अनुमति देता है। –

1

स्वीकृत जवाब Windows 8 और बाद में काम नहीं करता है करने के लिए परिवर्तित। इस

उपयोग:

system("wmic path Win32_VideoController get VideoModeDescription,CurrentVerticalResolution,CurrentHorizontalResolution /format:value")

आप एक वेक्टर में संकल्प स्क्रीन पाने के लिए आपको इसे लागू कर सकते हैं के रूप में:

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)] 

अब आप लंबाई 2 के साथ एक सदिश होगा:

> current_resolution 
[1] 1920 1080