2011-10-04 30 views
7

क्या Word.Aplication OLE ऑब्जेक्ट से विंडो शीर्षक प्राप्त करने का कोई तरीका है? मैं FindWindow का उपयोग कर विंडो प्राप्त करने का प्रयास करने के लिए इसका उपयोग करना चाहता हूं।किसी शब्द ओएलई एप्लिकेशन ऑब्जेक्ट से एप्लिकेशन शीर्षक प्राप्त करना

मैं एक OLE वस्तु बना रहा हूं और किसी मौजूदा दस्तावेज़ जोड़ने, तो जैसे:

App := CreateOLEObject('Word.Application'); 
App.Visible := True; 
App.Activate; 
Doc := App.Documents.Open('File.doc'); 

इस बिंदु पर, शीर्षक मूल्यों निम्नलिखित हैं:

App.Caption => 'Microsoft Word' 
Doc.ActiveWindow.Caption => 'File.doc [Compatibility Mode]' 

हालांकि, विंडो शीर्षक वास्तव में File.doc [Compatibility Mode] - Microsoft Word है।

क्या ओएलई ऑब्जेक्ट से इस विंडो शीर्षक को प्राप्त करने का कोई तरीका है (FindWindow का उपयोग किए बिना एचडब्ल्यूएनडी स्वयं प्राप्त करने का एक बेहतर तरीका प्रतीत नहीं होता है)? मुझे संदेह है कि यह मानना ​​सुरक्षित है कि खिड़की का शीर्षक हमेशा <doc caption> - <app caption> होगा।

मैं (OLE Automation to launch MS Word and bring to front देखें) एक से थोड़ा अधिक सुरक्षित तरीके से सही शीर्षक में पारित करके FindWindow समारोह का उपयोग करने के अग्रभूमि में लाने के लिए सक्षम होने के लिए खिड़की के लिए एक संभाल प्राप्त करना चाहते हैं।

संपादित

यहाँ वैकल्पिक हल का उपयोग कर ठीक http://support.microsoft.com/kb/258511

App := CreateOLEObject('Word.Application'); 

// get the handle 
TempTitle := 'Temp - ' + IntToStr(Random(1000000)); 
App.Caption := TempTitle; 
Handle := FindWindow('OpusApp', PWideChar(TempTitle)); 
App.Caption := EmptyStr; 

App.Visible := True; 
App.Activate; 
Doc := App.Documents.Open('File.doc'); 

// bring to front 
SetForegroundWindow(Handle); 

उत्तर

3

में वर्णित है यह आपके लिए क्या देख रहे है?

How to obtain the window handle for an Office Automation server

+1

क्या लिंक के पीछे लेख के बारे में है का एक संक्षिप्त विवरण जोड़ें। यह StackOverflow की सामान्य उपयोगिता को बढ़ाता है। –

+1

हां, "एक ऐसे अनुप्रयोग के लिए विंडो हैंडल ढूंढें जिसमें कई उदाहरण हो सकते हैं" में कामकाज काम किया। मुझे वर्णित विधि का उपयोग करके एक अस्थायी अनुप्रयोग कैप्शन को यादृच्छिक बनाकर हैंडल प्राप्त करें और उसके बाद विंडो को अग्रभूमि में बाद में लाने के लिए इसका उपयोग करें। – Andrew

+0

@ मारजन - मैंने केबी आलेख का शीर्षक जोड़ा, उम्मीद है कि मदद करता है। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^