दिलचस्प पोस्ट
अजीब PHP त्रुटि: 'लिखने वाले संदर्भ में फ़ंक्शन रिटर्न मान का उपयोग नहीं किया जा सकता' ASP.NET के साथ Quartz.net का उपयोग कैसे करें एकाधिक स्वरूपों को पार्स करने के लिए Joda दिनांक और समय एपीआई का उपयोग करना क्या Windows कमांड लाइन पर 'कौन सा' है? क्या मैं हेडोकू पर एक नोड.जेएस ऐप बनाते समय जीआईटी में नोड_मॉड्यूल में जांच करूँ? नया फ़ायरबेज क्लाउड मेसेजिंग सिस्टम के साथ अधिसूचना आइकन क्या सी # एक्सटेंशन गुण हैं? PHP: यूनिकोड कोडपॉइंट को यूटीएफ -8 में कनवर्ट करें कॉल और आवेदन के बीच अंतर क्या है? जेडीबीसी में डालने की आईडी कैसे प्राप्त करें? जावास्क्रिप्ट के साथ एचटीएमएल ईमेल जब मैं एक वैल () का उपयोग करके एक मान का मूल्य सेट करता हूँ तो jQuery परिवर्तन ईवेंट क्यों ट्रिगर नहीं करता? एनईटी कंसोल ऐप में कुंजी प्रेस के लिए सुनो Xcode 6 अजीब बग: इंटरफ़ेस बिल्डर फ़ाइल में अज्ञात वर्ग क्रॉस-थ्रेड ऑपरेशन मान्य नहीं है: इसे 'डुप्लिकेट' पर बनाया गया थ्रेड के अलावा किसी थ्रेड से एक्सेस किया गया 'नियंत्रण' पाठ बॉक्स

जावा में प्रोग्राम विंडो के एक्स और वाई कैसे प्राप्त करें?

जावा में एक विंडो के एक्स और वाई मान पाने के लिए क्या कोई तरीका है? मैंने पढ़ा है कि मुझे रनटाइम का उपयोग करना होगा, क्योंकि जावा सीधे गलती नहीं कर सकता है, लेकिन मैं यह सुनिश्चित नहीं कर रहा हूं कि यह कैसे करना है। क्या कोई मुझे इस बारे में कुछ लिंक / सुझाव देता है?

वेब के समाधान से एकत्रित समाधान "जावा में प्रोग्राम विंडो के एक्स और वाई कैसे प्राप्त करें?"

"किसी अन्य असंबद्ध अनुप्रयोग" की एक्स और वाई स्थिति प्राप्त करने के लिए आपको ओएस को पूछना पड़ता है और इसका मतलब है कि यानी जेएनआई, जेएनए या किसी अन्य स्क्रिप्टिंग उपयोगिता जैसे ऑटोइट (अगर विंडोज़) का इस्तेमाल होता है। मैं या तो जेएनए या स्क्रिप्टिंग उपयोगिता की सिफारिश करता हूं क्योंकि दोनों जेएनआई (मेरे सीमित अनुभव में) की तुलना में बहुत आसान हैं, लेकिन उनका इस्तेमाल करने के लिए आपको कुछ कोड डाउनलोड करने और इसे अपने जावा अनुप्रयोग से एकीकृत करने की आवश्यकता होगी।

1 संपादित करें मैं कोई भी जेएनएनए विशेषज्ञ नहीं हूं, लेकिन मैं इसे कुछ के साथ चारों ओर बेला करता हूं, और यह है कि मुझे कुछ नामित खिड़की के लिए खिड़की निर्देशांक प्राप्त करना है:

import java.util.Arrays; import com.sun.jna.*; import com.sun.jna.platform.win32.WinDef.HWND; import com.sun.jna.win32.*; public class GetWindowRect { public interface User32 extends StdCallLibrary { User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class, W32APIOptions.DEFAULT_OPTIONS); HWND FindWindow(String lpClassName, String lpWindowName); int GetWindowRect(HWND handle, int[] rect); } public static int[] getRect(String windowName) throws WindowNotFoundException, GetWindowRectException { HWND hwnd = User32.INSTANCE.FindWindow(null, windowName); if (hwnd == null) { throw new WindowNotFoundException("", windowName); } int[] rect = {0, 0, 0, 0}; int result = User32.INSTANCE.GetWindowRect(hwnd, rect); if (result == 0) { throw new GetWindowRectException(windowName); } return rect; } @SuppressWarnings("serial") public static class WindowNotFoundException extends Exception { public WindowNotFoundException(String className, String windowName) { super(String.format("Window null for className: %s; windowName: %s", className, windowName)); } } @SuppressWarnings("serial") public static class GetWindowRectException extends Exception { public GetWindowRectException(String windowName) { super("Window Rect not found for " + windowName); } } public static void main(String[] args) { String windowName = "Document - WordPad"; int[] rect; try { rect = GetWindowRect.getRect(windowName); System.out.printf("The corner locations for the window \"%s\" are %s", windowName, Arrays.toString(rect)); } catch (GetWindowRect.WindowNotFoundException e) { e.printStackTrace(); } catch (GetWindowRect.GetWindowRectException e) { e.printStackTrace(); } } } 

निश्चित रूप से इसके लिए काम करने के लिए, जावा क्लासपाथ पर या आपके आईडीई के निर्माण पथ में जेएनए पुस्तकालयों को डाउनलोड और डालने की आवश्यकता होगी।

यह अंतिम उपयोगकर्ता की मदद से करना आसान है बस उन्हें एक स्क्रीन शॉट में एक बिंदु पर क्लिक करने के लिए मिलता है

ईजी

 import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*; /** Getting a point of interest on the screen. Requires the MotivatedEndUser API - sold separately. */ class GetScreenPoint { public static void main(String[] args) throws Exception { Robot robot = new Robot(); final Dimension screenSize = Toolkit.getDefaultToolkit(). getScreenSize(); final BufferedImage screen = robot.createScreenCapture( new Rectangle(screenSize)); SwingUtilities.invokeLater(new Runnable() { public void run() { JLabel screenLabel = new JLabel(new ImageIcon(screen)); JScrollPane screenScroll = new JScrollPane(screenLabel); screenScroll.setPreferredSize(new Dimension( (int)(screenSize.getWidth()/2), (int)(screenSize.getHeight()/2))); final Point pointOfInterest = new Point(); JPanel panel = new JPanel(new BorderLayout()); panel.add(screenScroll, BorderLayout.CENTER); final JLabel pointLabel = new JLabel( "Click on any point in the screen shot!"); panel.add(pointLabel, BorderLayout.SOUTH); screenLabel.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent me) { pointOfInterest.setLocation(me.getPoint()); pointLabel.setText( "Point: " + pointOfInterest.getX() + "x" + pointOfInterest.getY()); } }); JOptionPane.showMessageDialog(null, panel); System.out.println("Point of interest: " + pointOfInterest); } }); } } 

विशिष्ट आउटपुट

 Point of interest: java.awt.Point[x=342,y=43] Press any key to continue . . .