2009-01-16 21 views
9

मैं जावा एप्लिकेशन में जानने के लिए एक तरीका ढूंढ रहा हूं (बिना जेएनआई - यह एक बहु-मंच एप्लिकेशन है) यह पता लगा सकता है कि स्क्रीन लॉक है या नहीं।क्या स्क्रीन एप्लिकेशन लॉक होने पर जावा एप्लिकेशन का पता लगाने का कोई तरीका है?

जानकारी के लिए ... उपयोगकर्ता द्वारा काम करते समय हमारे एप्लिकेशन रिकॉर्ड समय - हम चाहते हैं कि उपयोगकर्ता को स्पष्ट रूप से ऐसा करने के बजाय स्क्रीन लॉक होने पर स्वचालित रूप से रिकॉर्डिंग बंद कर दें।

+0

सिर्फ उत्सुक है, लेकिन हो सकता है कि यह बेहतर उत्तर भी लेता है: इसका उद्देश्य क्या है? –

+0

एप्लिकेशन रिकॉर्ड करते समय एप्लिकेशन रिकॉर्ड करता है - हम चाहते हैं कि जब स्क्रीन स्पष्ट रूप से ऐसा करने के बजाय स्क्रीन लॉक हो जाए तो रिकॉर्डिंग बंद करना चाहें। –

+0

स्पार्क में एक समान आवश्यकता थी (नीचे दिए गए मेरे उत्तर में उल्लिखित): वर्कस्टेशन लॉक होने पर उपस्थिति को सेट करें ... उस क्रॉस-प्लेटफ़ॉर्म आईएम क्लाइंट के लिए उपयोगी। – VonC

उत्तर

1

मुझे नहीं लगता कि इसके लिए एक एपीआई है या यहां तक ​​कि इसे करने का एक तरीका भी है। Java.awt.Robot द्वारा जेनरेट किए गए स्क्रीनशॉट को न तो प्लेटफॉर्म- न ही संस्करण- या यहां तक ​​कि कॉन्फ़िगरेशन-स्वतंत्र भी है, और सामान्य रूप से, मुझे नहीं लगता कि "स्क्रीन लॉक है" इस अर्थ में उपयोग की जाने वाली एक अच्छी तरह से परिभाषित अवधारणा है - लिनक्स पर, केवल एक "स्क्रीन" (एक्स सर्वर) से अधिक हो सकता है, आप कंसोल टर्मिनल पर स्विच कर सकते हैं, आप एक (या अधिक) मशीनों को अपने जीयूआई को नेटवर्क पर दूसरी मशीन पर प्रदर्शित करने वाले अनुप्रयोगों को चला सकते हैं ...

+0

हाँ - निश्चित रूप से कुछ समस्याएं, लेकिन मैंने सोचा कि आप एक विशिष्ट विंडो में चल रहे किसी एप्लिकेशन के संबंध में "स्क्रीन लॉक हो गई है" को परिभाषित करने में सक्षम होंगे - चाहे एक्स या विंडोज। –

1

मैं पुष्टि करता हूं कि स्क्रीन लॉक स्थिति का पता लगाने के लिए कोई जावा एपीआई नहीं है।

Spark डेवलपर ने इसे 2006 में प्रयास किया (इस thread shows की तरह), लेकिन कार्यान्वयन के विशिष्ट पर कोई विवरण देने के बिना।
हालांकि, यह संभव है कि इसमें WTSQuerySessionInformation जैसे कार्यों के लिए जेएनआई और मूल कॉल शामिल हो (यह पता लगाने के लिए कि डिस्कनेक्ट किए गए WTSQuerySessionInformation(NULL, WTS_CURRENT_SESSION, WTSConnectState) का उपयोग करें और WTSDisconnected देखें)।

तो, Michael pointed out के रूप में, कोई "बहु-मंच" सार्वभौमिक उत्तर नहीं है (मेरे सर्वोत्तम ज्ञान के लिए)।

+0

तो विंडोज़ पर पता लगाने का कोई तरीका है केवल Win7 – Johnydep

+0

@ जॉनीडेप जो संभव हो सकता है, लेकिन मुझे Win7 पर लॉक स्थिति का पता लगाने के लिए एक विशिष्ट विधि से अवगत नहीं है – VonC

संबंधित मुद्दे

 संबंधित मुद्दे