घर
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]

я с этим уже разобрался(мне нужно было не только блокноту отсылать, а вобщем системе)
Вот пример из faq, кто заинтересовался:

-------------------------------------------------- -----------------------
Ниже приведена процедура, позволяющаю отправлять нажатия в любой
элемент управления (window control), способный принимать ввод с
клавиатуры. Вы можете использовать эту технику чтобы включать клавиши
NumLock, CapsLock и ScrollLock под Windows NT. Та же техника работает
и под Windows 95 для CapsLock и ScrollLock но не работает для клавиши
NumLock.
Обратите внимание, что приведены четыре поцедуры: SimulateKeyDown() -
эмулировать нажатие клавиши (без отпускания) SimulateKeyUp() -
эмулировать отпускание клавиши SimulateKeystroke() - эмулировать удар
по клавише (нажатие и отпускание) и SendKeys(), позволяющие Вам гибко
контролировать посылаемые сообщения клавиатуры.
SimulateKeyDown(), SimulateKeyUp() и SimulateKeystroke() получают коды
виртуальных клавиш (virtural key) (вроде VK_F1). Процедура
SimulateKeystroke() получает дополнительный параметр, полезный при
эмуляции нажатия PrintScreen. Когда этот параметр равен нулю весь
экран будет скопирован в буфер обмена (clipboard). Если дополнительный
параметр равен 1 будет скопированно только активное окно.
Четыре метода "button click" демонстрируют использование:
ButtonClick1 - включает capslock ButtonClick2 - перехватывает весь
экран в буфер обмена (clipboard). ButtonClick3 - перехватывает
активное окно в буфер обмена (clipboard). ButtonClick4 - устанавливает фокус в Edit и
отправляет в него строку.
उदाहरण:

procedure SimulateKeyDown(Key : byte);
शुरू करना
keybd_event(Key, 0, 0, 0);
अंत;

procedure SimulateKeyUp(Key : byte);
शुरू करना
keybd_event(Key, 0, KEYEVENTF_KEYUP, 0);
अंत;

procedure SimulateKeystroke(Key : byte; extra : DWORD);
शुरू करना
keybd_event(Key,extra,0,0);
keybd_event(Key,extra,KEYEVENTF_KEYUP,0);
अंत;

procedure SendKeys(s : string);
var i : integer;
flag : bool;
w : word;
शुरू करना
{Get the state of the caps lock key}
flag := not GetKeyState(VK_CAPITAL) and 1 = 0;
{If the caps lock key is on then turn it off}
अगर झंडा है तो
SimulateKeystroke(VK_CAPITAL, 0);
i: = 1 से लेकर लंबाई तक
शुरू करना
w := VkKeyScan(s[i]);
{If there is not an error in the key translation}
if ((HiByte(w) <> $FF) and (LoByte(w) <> $FF)) then
शुरू करना
{If the key requires the shift key down - hold it down}
if HiByte(w) and 1 = 1 then
SimulateKeyDown(VK_SHIFT);
{Send the VK_KEY}
SimulateKeystroke(LoByte(w), 0);
{If the key required the
shift key down - release it}
if HiByte(w) and 1 = 1 then
SimulateKeyUp(VK_SHIFT);
अंत;
अंत;
{if the caps lock key was on at start, turn it back on}
अगर झंडा है तो
SimulateKeystroke(VK_CAPITAL, 0);
अंत;

प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject);
शुरू करना
{Toggle the cap lock}
SimulateKeystroke(VK_CAPITAL, 0);
अंत;

प्रक्रिया TForm1.Button2 क्लिक करें (प्रेषक: TObject);
शुरू करना
{Capture the entire screen to the clipboard}
{by simulating pressing the PrintScreen key}
SimulateKeystroke(VK_SNAPSHOT, 0);
अंत;

प्रक्रिया TForm1.Button3 क्लिक करें (प्रेषक: TObject);
शुरू करना
{Capture the active window to the clipboard}
{by simulating pressing the PrintScreen key}
SimulateKeystroke(VK_SNAPSHOT, 1);
अंत;

प्रक्रिया TForm1.Button4 क्लिक करें (प्रेषक: TObject);
शुरू करना
{Set the focus to a window (edit control) and send it a string}
Application.ProcessMessages;
Edit1.SetFocus;
SendKeys("Delphi Is RAD!");
अंत;
-------------------------------------------------- -------------------------

Теперь мне нужно отследить нажатие пользователя на кнопку клавы(например алфовитную) и обнулировать это нажатие\заместить своим.




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

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

ऊपर









मेमोरी: 0.83 एमबी
समय: 0.026 c
4-22472
यूजीन
2001-10-27 17:03
2002.01.08
कैसे अपने छोटे प्रॉक्सी सर्वर बनाने के लिए?


3-21993
&#1050;&#1085;&#1086;&#1087;&#1082;&#1072;
2001-12-07 09:23
2002.01.08
डेटाबेस में खोजें (बहुत जरूरी !!!)


14-22388
एक प्रकार का बाज़
2001-11-08 11:43
2002.01.08
पेंट्री में एक और गंदगी


6-22287
एंड्रयू
2001-08-08 10:35
2002.01.08
किसी ने WebSnap के साथ काम किया है ????


1-22183
एक्सईएन
2001-12-21 11:21
2002.01.08
DelphiX_play





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