घर
Top.Mail.Ru Yandeks.Metrika
फोरम: "विनएपीआई";
वर्तमान संग्रह: 2004.12.12;
डाउनलोड करें: [xml.tar.bz2];

नीचे

रिमोट कंट्रोल इसी तरह की शाखाएँ खोजें


Роман   (2004-10-25 12:16) [0]

सभी को नमस्कार।
मेरा एक सवाल है। यह कोड एक विंडो के लिए दिखना चाहिए, फिर उस पर एक बटन। हालाँकि, बटन स्थित नहीं है।
जबकि HndBtn = 0 करते हैं HndBtn: = FindWindowEx (HndDialog, 0, "Button", "OK"); अगर (HndBtn <> 0) और (io <> 0) तब शुरू करना IdBtn: = GetDlgCtrlID (HndBtn); अगर IdBtn <> 0 तो शुरू करना SendMessage (HndAsc, WM_Command, MakeWParam (IdBtn, BN_CLICKED), HndBtn); अंत; अंत; <\ code>



4e6ypaTop _@(o,o)@_ ©   (2004-10-25 12:44) [1]

यह कोशिश करो ...

प्रक्रिया ClickOnForm (wnd: HWND; कैप्शन: स्ट्रिंग); वर TheChildHandle: HWND; शुरू करना TheChildHandle: = FindWindowEx (wnd, 0, nil, PChar (कैप्शन)); SendMessage (TheChildHandle, WM_LButtonDown, 1,1); SendMessage (TheChildHandle, WM_LButtonUP, 1,1); अंत; प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject); वर wnd: HWND; कैप्शन: स्ट्रिंग; शुरू करना wnd: = GetTopWindow (0); दोहराना सेटलॉग्रोट (कैप्शन, गेटविंडोक्स्टलक्लिफ्ट (wnd)); GetWindowText (wnd, @ कैप्शन [1], लंबाई (कैप्शन) + 1); if (ट्रिम (कैप्शन) = pchar (edit1.text)) तो ClickOnForm (wnd, pchar (edit2.text)); wnd: = GetNextWindow (wnd, GW_HWNDNEXT); wnd = 0 तक; अंत;



Роман   (2004-10-25 13:32) [2]

और बटन की तलाश कहां है?



4e6ypaTop _@(o,o)@_ ©   (2004-10-25 13:38) [3]

बटन खोजा नहीं गया है, आप उसका नाम दर्ज करें (ठीक है, वह है, उसका कैप्शन) और वह यह है। और आपको बस किसी और की खिड़की और सभी चीजों के सभी बटन ढूंढने के लिए कुछ चाहिए?
FindWindowEx (HndDialog, 0, "Button" , "OK");
आप उदाहरण के लिए बटन या स्पीडबटन नहीं जानते हैं।



Роман   (2004-10-25 13:49) [4]

मुझे बटन के हैंडल को खोजने की जरूरत है, फिर उस पर क्लिक करें।



Unknown Mystic ©   (2004-10-25 14:07) [5]

और तुम भी खिड़की के लिए कैसे लग रहे हो? मैंने इसे अभी तक प्रोग्राम नहीं किया है, लेकिन MSDN ने इसे पहले ही पढ़ लिया है और मुझे इसकी आवश्यकता है:

WindowHandle: = FindWindow (nil, <फॉर्म हेडर>); ControlHandle: = FindWindowEx (WindowHandle, nil, "Button", <बटन हैडर>);
और फिर
SendMessage (ControlHandle, BM_CLICK, 1, 1);
या
SendMessage (ControlHandle, WM_LBUTTONDOWN, 1, 1); SendMessage (ControlHandle, WM_LBUTTONUP, 1, 1);
ठीक है, चेक जोड़ें ...

और यह भी, अगर आपको केवल ओके क्लिक करने की आवश्यकता है - आप कोशिश कर सकते हैं:
SendDlgItemMessage (WindowHandle, ID_OK, WM_LBUTTONDOWN, 1, 1); SendDlgItemMessage (WindowHandle, ID_OK, WM_LBUTTONUP, 1, 1);



Роман   (2004-10-25 14:17) [6]

मैं यही करता हूं, केवल फॉर्म खोज कोड जो मैंने याद किया है।
WinExec (PChar ("C: \ Program Files \ Common Files \ Borland Shared \ Database Desktop \ dbd32.exe"), 1); नींद (2000); Hnd: = FindWindow (nil, "Database Desktop"); यदि Hnd <> 0 तो शुरू करें windows.etForegroundWindow (Hnd); HndMen: = GetMenu (Hnd); HndSMen: = GetSubMenu (HndMen, 0); idMen: = GetMenuItemID (HndSMen, 7); अगर idMen <> 0 तो शुरू करें पोस्टमासेज (Hnd, WM_COMMAND, idMen, 0); जबकि HndDialog = 0 HndDialog करते हैं: = FindWindow (nil, "निजी निर्देशिका सेट करें)"; अगर HndDialog <> 0 तो शुरू करें // ब्राउज़ बटन के लिए देखो ... जबकि HndBtn = 0 HndBtn करते हैं: = FindWindowEx (HndDialog, 0, "बटन", "ब्राउज़ करें ..."); अगर (HndBtn <> 0) और (io <> 0) तब शुरू करना IdBtn: = GetDlgCtrlID (HndBtn); अगर IdBtn <> 0 तो शुरू करना SendMessage (HndAsc, WM_Command, MakeWParam (IdBtn, BN_CLICKED), HndBtn); अंत; अंत; बाहर निकलने के;
काम नहीं कर रहा है यानी यह काम करता है लेकिन बटन नहीं लगता है।



Роман   (2004-10-25 15:14) [7]

> 4e6ypaTop _ @ (o, o) @_
ClickOnForm प्रक्रिया में, चर TheChildHandle अपना मान कभी नहीं बदलता है। क्यों?



4e6ypaTop _@(o,o)@_ ©   (2004-10-25 16:48) [8]

उपन्यास (25.10.04 15: 14) [7]

क्योंकि प्रेषित मूल्य
TheChildHandle: = FindWindowEx (wnd, 0, nil, PChar (शीर्षक))
हमेशा उस विंडो का नाम जिसकी मुझे आवश्यकता है।



Unknown Mystic ©   (2004-10-25 17:52) [9]

>> रोमांस (25.10.04 14: 17) [6]

जबकि HndDialog = 0 HndDialog करते हैं: = FindWindow (nil, "निजी निर्देशिका सेट करें)"; जबकि HndBtn = 0 HndBtn करते हैं: = FindWindowEx (HndDialog, 0, "बटन", "ब्राउज़ करें ...");

अगर मैं गलत नहीं हूँ, जबकि यहाँ बेकार है।

तुमने पीछा किया? और वह दूसरी बार बैठी? यदि हाँ, तो कुछ अन्य बटन देखने की कोशिश करें, हो सकता है ब्राउज़ करें ... कहीं अंतराल।

>> रोमांस (25.10.04 15: 14) [7]

FindWindow या FindWindowEx को फिर से कॉल करने से आपको अगली विंडो उसी नाम से नहीं मिलेगी।



Роман   (2004-10-26 12:16) [10]

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



Unknown Mystic ©   (2004-10-27 14:28) [11]

आज मैंने कुछ ऐसा लिखने की कोशिश की। नियंत्रण देखने के लिए शीर्षक के तहत भी काम नहीं किया। मैंने अभी तक नहीं देखा कि क्या हो रहा था और एमएसडीएन में आगे खुदाई नहीं की।

एक विकल्प के रूप में, आप उपयोग करने का प्रयास कर सकते हैं
GetWindow (WindowHandle, GW_CHILD);
या
EnumChildWindows



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

फोरम: "विनएपीआई";
वर्तमान संग्रह: 2004.12.12;
डाउनलोड करें: [xml.tar.bz2];

ऊपर









मेमोरी: 0.6 एमबी
समय: 0.056 c
14-1100350021
Aleksandr1
2004-11-13 15:47
2004.12.12
मदद कृपया!


1-1101683635
कौन है
2004-11-29 02:13
2004.12.12
क्या ऐसे में अपने कार्यक्रम (एक्साई) की सूची प्राप्त करना संभव है


3-1100013338
Sergeich
2004-11-09 18:15
2004.12.12
ADOQuery में पैरामीटर


3-1100407797
कम
2004-11-14 07:49
2004.12.12
MS Access डेटाबेस से अनुरोधों की सूची कैसे प्राप्त करें


4-1098876608
VZup
2004-10-27 15:30
2004.12.12
OpenDialog - किसने सामना किया ???





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