C# 是否可以使用Interop按位置(顶部和左侧偏移量)选择Powerpoint文本框中的文本?
我试图通过互操作自动化Powerpoint文本框中文本编辑的基本过程,但遇到了一个障碍。我需要能够在屏幕上的特定位置开始文本编辑过程,在抓取MSDN之后,我仍然不知道如何做。用例可以归结为:C# 是否可以使用Interop按位置(顶部和左侧偏移量)选择Powerpoint文本框中的文本?,c#,powerpoint,office-interop,C#,Powerpoint,Office Interop,我试图通过互操作自动化Powerpoint文本框中文本编辑的基本过程,但遇到了一个障碍。我需要能够在屏幕上的特定位置开始文本编辑过程,在抓取MSDN之后,我仍然不知道如何做。用例可以归结为: 我的服务接收X和Y坐标 我告诉Powerpoint在该位置选择形状 我告诉Powerpoint将闪烁的光标放在用户自己点击开始编辑文本的位置 这是让我绊倒的第三步。Word具有RangeFromPoint,它返回文本范围。但在Powerpoint中,该方法返回一个形状。我可以使用TextRange.Char
任何人都知道如何做到这一点(除了通过Win32调用强制输入鼠标消息)每一个文本位,直到字符级别,都可以被视为一个范围;每个文本区域都具有.BoundLeft、.BoundTop、.BoundHeight和.BoundWidth属性,这些属性返回文本区域边界矩形的坐标 例如,此代码段将为您提供当前选定形状中第三个文本字符的左坐标:
With ActiveWindow.Selection.ShapeRange(1)
Debug.Print .TextFrame.TextRange.Characters(3, 1).BoundLeft
End With
坐标以点的形式返回。听起来你已经掌握了将屏幕坐标转换为PPT坐标的方法。这基本上就是我必须要做的(迭代文本框中的字符,获取它们的边界,并确定哪个最接近点击的坐标)。很高兴知道这是最好的方法。谢谢