मेरे पास 2 ऐप्स हैं, एक छिपी हुई विंडो ("एचडब्लू") है, दूसरा कंसोल ऐप ("सीए") है , से जो मुझे लगता है कि एचडब्ल्यू को आदेश भेजना है। अगर मैं चल रहा हूँ: सांत्वना अनुप्रयोग मैं HW संभाल हो रही है, और यहाँ में एक सवाल हैPostMessage (hwnd, WM_SETTEXT, ..) पोस्टमेसेज (hwnd, WM_QUIT, ..) करता है, जबकि
PostMessage(hwnd, WM_QUIT, NULL, NULL);
सब कुछ ठीक काम करता है, संदेश HW करने के लिए हो जाता है और .लेकिन यह बंद हो जाती है अगर मैं भेज रहा हूं
PostMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)"texttext");
संदेश एचडब्ल्यू नहीं मिलता है। जासूस ++ यह भी दिखाता है कि संदेश एचडब्ल्यू नहीं मिलता है। क्या WM_SETTEXT के बारे में कुछ विशिष्ट है, जो इसे रोकता है? अग्रिम में धन्यवाद।
ठीक है। पाया जवाब यहाँ http://cboard.cprogramming.com/windows-programming/72589-wm_settext-postmessage.html
Turns out the API tries to protect me against scope issues; PostMessage() always fails with WM_SETTEXT, or any other system-defined message that has a pointer as a parameter.Which gets me to SendMessage(), which is not good, because i wanted asynchronous messaging....
P.P.S.
इसके अलावा, लग रहा है
तरह
SendMessage(hwnd, WM_QUIT, NULL, NULL);
HWND hNote;
if (!(hNote=FindWindow(L"Notepad",NULL)))
exit(1);
SendMessage(hNote, WM_QUIT, NULL, NULL);
जबकि
PostMessage(hNote, WM_QUIT, NULL, NULL);
काम करता है की तरह साधारण परीक्षण अनुप्रयोग में app.Even लक्षित करने के लिए कुछ नहीं करता।
जो मेरे लिए इतना तार्किक नहीं दिखता है ... क्या कोई सार्वभौमिक कार्य है जो किसी भी प्रकार के संदेश के साथ ठीक से काम करता है?
मुझे लगता है कि आपका संदेश तुरंत अस्वीकार कर दिया गया है क्योंकि आपके द्वारा प्रदान किए गए पॉइंटर को प्रेषण समय पर मान्य होने की गारंटी नहीं है। आपको उपयोगकर्ता द्वारा परिभाषित/पंजीकृत संदेश का उपयोग करके इसे काम करने की आवश्यकता है जहां आप पेलोड स्ट्रिंग के प्रबंधन के लिए ज़िम्मेदार हैं। या, वहां से अन्यथा विंडो थ्रेड और 'SendMessage' में नियंत्रण पास करें। –
आपको SendMessage() का उपयोग करने की आवश्यकता है। और आम तौर पर एक यूनिकोड स्ट्रिंग का उपयोग करें। –
धन्यवाद। इसे अभी मिला। लेकिन एसिंक संदेश में पूर्वनिर्धारित पाठ नहीं भेजना चाहता था। – user1821599