का उपयोग करके डेल्फी में कीबोर्ड इनपुट को सिम्युलेट करना मुझे डेल्फी ग्रिड (अन्य एप्लिकेशन में) के एक सेल में प्रोग्रामेटिक रूप से एक वर्ण दर्ज करना होगा।WinAPI
आदेश में इस मैन्युअल रूप से करने के लिए, निम्न चरणों के लिए आवश्यक हैं:
- प्रेस F3 बटन।
- दायां तीर कुंजी 3 बार दबाएं।
- स्पेस बटन दबाएं।
- कुंजीपटल पर 'अक्षर' टाइप करें।
राइट-तीर कुंजी दबाएं।
// Press F3 button keybd_event(VK_F3, 0, 0, 0); // Press right arrow key 3 times keybd_event(VK_RIGHT, 0, 0, 0); keybd_event(VK_RIGHT, 0, 0, 0); keybd_event(VK_RIGHT, 0, 0, 0); // Press the space button keybd_event(VK_SPACE, 0, 0, 0); // Type letter E keybd_event(Ord('E'), 0, 0, 0); // Move to the right keybd_event(VK_RIGHT, 0, 0, 0);
लेकिन यह काम नहीं करता। जब मैं यह कोड चलाता हूं, ऐसा कुछ नहीं होता है।
मुझे इस कोड को कैसे संशोधित करना चाहिए ताकि यह वास्तव में उपयोगकर्ता इनपुट को अनुकरण कर सके?
मैंने कुछ समय पहले ['वर्चुअल कीबोर्ड'] (http://stackoverflow.com/a/12565963/960757) के बारे में कुछ किया है (और कई अन्य होंगे)। लेकिन आपकी समस्या के लिए, यदि आप 'TStringGrid' को लक्षित कर रहे हैं, तो मुझे लगता है कि आप इसे ध्यान केंद्रित करने और अपने कीस्ट्रोक अनुकरण करने के अलावा कुछ भी नहीं कर सकते हैं (अगर मुझे यह सही याद है, तो TStringGrid' किसी भी प्रकार के संदेश का जवाब नहीं देता है एक सेल के पाठ को सेट करने में सक्षम हो)। – TLama
इस विशेष एप्लिकेशन में केवल कीबोर्ड के माध्यम से उस ग्रिड में मान दर्ज करना संभव है। मैंने इसे पहले ही ऑटोहॉटकी और एमएस यूआई ऑटोमेशन के साथ किया है, लेकिन अब डेल्फी में इस कोड को फिर से लिखना होगा। –
मैं ग्रिड पर ध्यान केंद्रित नहीं कर सकता क्योंकि लक्ष्य प्रणाली पर एक कार्यक्रम है, जो हर 200 मिलीसेकंड को सक्रिय करता है। –