घर
Top.Mail.Ru Yandeks.Metrika
मंच: "मुख्य";
वर्तमान संग्रह: 2002.01.08;
डाउनलोड करें: [xml.tar.bz2];

नीचे

सिस्टम को एक संदेश कैसे भेजें कि एक कुंजी दबाया जाए? इसी तरह की शाखाएँ खोजें


Delphimun   (2001-12-20 12:10) [0]

सिस्टम को एक संदेश कैसे भेजें कि एक कुंजी दबाया जाए? उदाहरण के लिए, आपने सिस्टम पर यह संदेश टाइमर पर रखा है कि कुंजी दबाया गया है, और उपयोगकर्ता वर्तमान में नोटबुक में काम कर रहा है और इसलिए कि ये पत्र नोटबुक में लिखे गए हैं जो आपने सिस्टम को भेजे थे (कि कुंजी दबाया गया था)



gek   (2001-12-20 12:32) [1]

आपको नोटपैड हैंडल मिलता है और इसे wm_keydown भेजते हैं



Delphimun   (2001-12-20 13:10) [2]

मैंने पहले ही यह समझ लिया था (मुझे न केवल नोटबुक भेजने की आवश्यकता थी, बल्कि सामान्य प्रणाली में भी)
यहाँ एक उदाहरण है जो रुचि रखते हैं:

-------------------------------------------------- -----------------------
नीचे दी गई प्रक्रिया आपको किसी भी क्लिक को भेजने की अनुमति देती है
एक नियंत्रण (खिड़की नियंत्रण) से इनपुट स्वीकार करने में सक्षम
कुंजीपटल। आप इस तकनीक का उपयोग चाबियों को चालू करने के लिए कर सकते हैं।
Windows NT के तहत NumLock, CapsLock, और ScrollLock। वही तकनीक काम करती है
और CapsLock और ScrollLock के लिए Windows 95 के तहत लेकिन कुंजी के लिए काम नहीं करता है
NumLock।
ध्यान दें कि चार प्रक्रियाएँ हैं: SimulateKeyDown () -
एक कीस्ट्रोक का विमोचन (विमोचन के बिना) SimulateKeyUp () -
रिलीज़ कुंजी का अनुकरण करें SimulateKeystroke () - एक हिट का अनुकरण करें
कुंजी द्वारा (दबाने और विमोचन) और SendKeys (), आपको लचीले ढंग से अनुमति देता है
नियंत्रण भेजे गए कीबोर्ड संदेश।
SimulateKeyDown (), SimulateKeyUp () और SimulateKeystroke () कोड प्राप्त करते हैं
आभासी कुंजी (जैसे VK_F1)। प्रक्रिया
SimulateKeystroke () एक अतिरिक्त पैरामीटर प्राप्त करता है, जब उपयोगी होता है
PrintScreen दबाने का अनुकरण। जब यह पैरामीटर शून्य हो
स्क्रीन को क्लिपबोर्ड पर कॉपी किया जाएगा। अगर अतिरिक्त
1 के बराबर पैरामीटर केवल सक्रिय विंडो की प्रतिलिपि बनाई जाएगी।
चार बटन क्लिक विधियों का उपयोग प्रदर्शन:
ButtonClick1 - कैप्सलॉक को सक्षम करता है ButtonClick2 - संपूर्ण को स्वीकार करता है
क्लिपबोर्ड पर स्क्रीन (क्लिपबोर्ड)। ButtonClick3 - इंटरसेप्ट्स
क्लिपबोर्ड में सक्रिय विंडो (क्लिपबोर्ड)। ButtonClick4 - संपादन और में फ़ोकस सेट करता है
इसे एक तार भेजता है।
उदाहरण:

प्रक्रिया SimulateKeyDown (कुंजी: बाइट);
शुरू करना
keybd_event (कुंजी, 0, 0, 0);
अंत;

प्रक्रिया SimulateKeyUp (कुंजी: बाइट);
शुरू करना
keybd_event (कुंजी, 0, KEYEVENTF_KEYUP, 0);
अंत;

प्रक्रिया SimulateKeystroke (कुंजी: बाइट; अतिरिक्त: DWORD);
शुरू करना
keybd_event (कुंजी, अतिरिक्त, 0,0);
keybd_event (कुंजी, अतिरिक्त, KEYEVENTF_KEYUP, 0);
अंत;

प्रक्रिया SendKeys (s: string);
var i: पूर्णांक;
झंडा: बूल;
w: शब्द;
शुरू करना
{कैप लॉक की स्थिति प्राप्त करें}
ध्वज: = GetKeyState (VK_CAPITAL) और 1 = 0 नहीं;
{यदि कैप्स लॉक कुंजी चालू है तो इसे बंद कर दें}
अगर झंडा है तो
SimulateKeystroke (VK_CAPITAL, 0);
i: = 1 से लेकर लंबाई तक
शुरू करना
w: = VkKeyScan (s [i]);
{यदि कुंजी अनुवाद में कोई त्रुटि नहीं है}
यदि ((HiByte (w) <> $ FF) और (LoByte (w) <> $ FF)) तब
शुरू करना
{यदि कुंजी को शिफ्ट कुंजी की आवश्यकता है - इसे दबाए रखें}
अगर HiByte (w) और 1 = 1 तो
SimulateKeyDown (VK_SHIFT);
{VK_KEY} भेजें
SimulateKeystroke (LoByte (w), 0);
{यदि कुंजी आवश्यक है शिफ्ट कुंजी नीचे - इसे जारी करें}
अगर HiByte (w) और 1 = 1 तो
SimulateKeyUp (VK_SHIFT);
अंत;
अंत;
{यदि कैप्स लॉक कुंजी प्रारंभ में थी, तो इसे वापस चालू करें}
अगर झंडा है तो
SimulateKeystroke (VK_CAPITAL, 0);
अंत;

प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject);
शुरू करना
{कैप लॉक टॉगल करें}
SimulateKeystroke (VK_CAPITAL, 0);
अंत;

प्रक्रिया TForm1.Button2 क्लिक करें (प्रेषक: TObject);
शुरू करना
{क्लिपबोर्ड पर संपूर्ण स्क्रीन कैप्चर करें}
{प्रिंटस्क्रीन कुंजी दबाकर अनुकरण करके}
SimulateKeystroke (VK_SNAPSHOT, 0);
अंत;

प्रक्रिया TForm1.Button3 क्लिक करें (प्रेषक: TObject);
शुरू करना
{क्लिपबोर्ड पर सक्रिय विंडो कैप्चर करें}
{प्रिंटस्क्रीन कुंजी दबाकर अनुकरण करके}
SimulateKeystroke (VK_SNAPSHOT, 1);
अंत;

प्रक्रिया TForm1.Button4 क्लिक करें (प्रेषक: TObject);
शुरू करना
{फ़ोकस को एक विंडो पर सेट करें (नियंत्रण को संपादित करें) और इसे एक स्ट्रिंग भेजें}
Application.ProcessMessages;
Edit1.SetFocus;
SendKeys ("डेल्फी इज़ राड!");
अंत;
-------------------------------------------------- -------------------------

अब मुझे क्लैव बटन पर उपयोगकर्ता के क्लिक को ट्रैक करने की आवश्यकता है (उदाहरण के लिए, अल्फा) और अपने स्वयं के साथ बदलने के लिए इस प्रेस को रीसेट करें।




पन्ने: 1 पूरी शाखा

मंच: "मुख्य";
वर्तमान संग्रह: 2002.01.08;
डाउनलोड करें: [xml.tar.bz2];

ऊपर









मेमोरी: 0.57 एमबी
समय: 0.041 c
3-21939
सैन
2001-12-04 16:01
2002.01.08
MSSQL


1-22059
सिंह ^ सूर्य
2001-12-19 07:24
2002.01.08
किसने काम किया


14-22330
एलेक्सी टी।
2001-11-02 13:25
2002.01.08
मेरी मदद करो !!!


1-22026
रोमांटिक स्टैशन
2001-12-18 11:07
2002.01.08
डेल्फी कैसे चल सकता है * .exe साथ ...।


6-22311
बिगफुट
2001-10-04 19:27
2002.01.08
दूर से





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский