рдХрднреА-рдХрднреА рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рджреВрд╕рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдпрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВред рдХреНрд▓рд╛рд╕рд┐рдХ рд╡рд┐рдВрдбреЛрдЬ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ - рд╣рдо
FindWindow рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореВрд▓ рд╡рд┐рдВрдбреЛ
рдвреВрдВрдврддреЗ рд╣реИрдВ , рдлрд┐рд░, рдЗрд╕рдХреЗ HWND рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдП, рд╣рдо рдЪрд╛рдЗрд▓реНрдб рд╡рд┐рдВрдбреЛ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрди рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рдкреВрд░реНрдг рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реИ - рд╣рдо рдЗрди рддрддреНрд╡реЛрдВ рдкрд░ рд▓рд┐рдЦреЗ рдЧрдП рдкрд╛рда рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреАрдмреЛрд░реНрдб рд╕реЗ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореМрдЬреВрджрд╛ рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирдП рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рд╣реИред рдЖрдЗрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рд╡рд┐рдВрдбреЛрдЬ 8 рд╕реБрдЗрдЯ рд╕реЗ рд╡реЗрджрд░ рдРрдк рд▓реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рдЦреЛрд▓рд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЕрдкрдиреЗ рдирд┐рдпрдорд┐рдд (рдбреЗрд╕реНрдХрдЯреЙрдк) рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХрд┐рд╕ рддрд╛рдкрдорд╛рди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдк Spy ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡реЗрджрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдкреЗрд░реЗрдВрдЯ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдЬреИрд╕реЗ рдХрд┐ Windows.UI.Core.CoreWindow рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╡реЗрдм рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдПрдВрдмреЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдПрдЪрдЯреАрдПрдордПрд▓ \ рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдХ рдЖрдзреБрдирд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рд░рд╣рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╡рд┐рдВрдбреЛрдЬ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ - рд╡реЗ рдмрд╕ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдЕрднреА рднреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рддрд╛рдкрдорд╛рди рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдкрд░реАрдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рд╢реИрд▓реА рдореЗрдВ MSDN рдкрд░ рджреЛ рд▓реЗрдЦ рд╣реИрдВ - рдПрдХ рд╣рдореЗрдВ IE рдореЗрдВ рд╣рдорд╛рд░реЗ рд╣рд╛рдереЛрдВ рдкрд░ рдЪрдврд╝рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИ (
"рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рд╕рдХреНрд░рд┐рдп рдкрд╣реБрдБрдЪ рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рд╕реВрдЪрдирд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рди рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рди рд╣реА рд╕рд░реНрд╡рд░ рдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреНрд▓рд╛ рдмреНрд▓рд╛ рдмреНрд▓рд╛ ... " )ред рдФрд░ рджреВрд╕рд░рд╛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдкрд░ рдПрдХ рдХреЛрдб рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░реВрдЪрд┐ рдХрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛
KB 249232 рд╣реИ ред
рд╕рдЪ рд╣реИ, рдЗрд╕рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ -
ObjectFromLresult
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓ рдореЗрдВ рд╡реЗ рдЧрд▓рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ MSDN рдХреА рд╢реИрд▓реА рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрджрдд рдбрд╛рд▓рдиреА рд╣реЛрдЧреАред
рддреЛ, рд╣рдорд╛рд░реЗ рдЙрджреНрдпрдо рдХрд╛ рд╕рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
- рд╣рдо рджрд┐рдП рдЧрдП рд╢реАрд░реНрд╖рдХ рдФрд░ рд╡рд░реНрдЧ ("рдореМрд╕рдо" рдФрд░ "Windows.UI.Core.CoreWindow") рдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рдЦрд┐рдбрд╝рдХреА рдкрд╛рддреЗ рд╣реИрдВред
- рд╣рдо рдЗрд╕рдХреЗ "рдмрдЪреНрдЪреЛрдВ" рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдХрдХреНрд╖рд╛ "рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░_рд╕реЗрд╡рд░" рдХреА рдПрдХ рдЦрд┐рдбрд╝рдХреА рдкрд╛рддреЗ рд╣реИрдВред
- рд╣рдо рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ WM_HTML_GETOBJECT рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
ObjectFromLresult
рдлрд╝рдВрдХреНрд╢рди ObjectFromLresult
IHTMLDocument2 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред - IHTMLDocument2 рд╣реЛрдиреЗ рд╕реЗ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕реЗ рдмрджрд▓реЗрдВ, "рдХреНрд▓рд┐рдХ" рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
рдореБрдЭреЗ рд▓рдЧрднрдЧ рдпрдХреАрди рдерд╛ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ 3-4 рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рд╡рд┐рдВрдбреЛрдЬ рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЦрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рд╡рд╛рд▓реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░реЗрдЧрд╛, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдерд╛ рдЬреЛ рдореИрдВрдиреЗ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛
рдерд╛ ред рд▓реЗрдХрд┐рди ... рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рдереАред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╡реЗрджрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рдЗрдВрдЯрд┐рдЧреНрд░рд┐рдЯреА рдХреЗ рд╕рд╛рде рд╣реИ - рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, IHTMLDocument2 рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕реБрд░рдХреНрд╖рд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА - рд╡реЗ рдмрд╕ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо:

рдореБрдЦреНрдп рдХреЛрдб #include "stdafx.h" #include <iostream> #include <sstream> #include <mshtml.h> #include <atlbase.h> #include <oleacc.h> #include "conio.h" using namespace std; BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) { TCHAR buf[100]; ::GetClassName( hwnd, (LPTSTR)&buf, 100 ); if ( _tcscmp( buf, _T("Internet Explorer_Server") ) == 0 ) { *(HWND*)lParam = hwnd; return FALSE; } else return TRUE; }; void GetDocInterface(HWND hWnd) { CoInitialize( NULL ); // Explicitly load MSAA so we know if it's installed HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") ); if ( hInst != NULL ) { if ( hWnd != NULL ) { HWND hWndChild=NULL; // Get 1st document window ::EnumChildWindows( hWnd, EnumChildProc, (LPARAM)&hWndChild ); if ( hWndChild ) { CComPtr<IHTMLDocument2> spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") ); ::SendMessageTimeout( hWndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes ); LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, "ObjectFromLresult" ); if ( pfObjectFromLresult != NULL ) { HRESULT hr; hr = (*pfObjectFromLresult)( lRes, IID_IHTMLDocument2, 0, (void**)&spDoc ); if ( SUCCEEDED(hr) ) { BSTR bstrContent = NULL; IHTMLElement *p = 0; spDoc->get_body(&p); if (p) { p->get_innerHTML( &bstrContent ); std::wstring ws(bstrContent, SysStringLen(bstrContent)); std::string s(ws.begin(), ws.end()); cout << s; p->Release(); } } } } // else document not ready } // else Internet Explorer is not running ::FreeLibrary( hInst ); } // else Active Accessibility is not installed CoUninitialize(); } int _tmain(int argc, _TCHAR* argv[]) { wstring windowTitle, windowClass; wcout << "Please enter parent window title (you can find it by Spy++):" << endl; std::getline(std::wcin, windowTitle); wcout << "Please enter parent window class (you can find it by Spy++):" << endl; std::getline(std::wcin, windowClass); HWND hwnd = FindWindow(windowClass.c_str(), windowTitle.c_str()); wcout << "HWND is " << hwnd << endl; GetDocInterface(hwnd); _getch(); return 0; }
рдЬреАрдердм рдкрд░ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛