• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

通过Interop操作Word时,怎么得到已知Document的窗口句柄?

phommy 2013-06-08 03:48:59
网上能找到的都是下边这样:把文档(doc)激活,然后FindWindow。但实际跑起来有很多例外,比如打开了多窗口,比如word弹出了个对话框什么的,既然连doc的引用都有了,理应有更直接的方式得到窗体句柄,请各位帮忙。。。


var wd = new ApplicationClass();
wd.Visible = true;
wd.Activate();
var doc = wd.Documents.Add("Normal", false, 0, true);
doc.Activate();
var wordWnd = FindWindow("Opusapp", null);
...全文
89 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
我想楼主的意思是不是想杀死相应的word进程?
//*** Kill Excel Process ***//
[DllImport("user32.dll", SetLastError = true)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int lpdwProcessID);
public static void KillExcellProcess(Microsoft.Office.Interop.Excel.Application xlsApp)
{
    try
    {                
        if (xlsApp != null)
        {
            int excelProcessID = 0;
            GetWindowThreadProcessId(new IntPtr(xlsApp.Hwnd), out excelProcessID);                    
            if (excelProcessID != 0)
            {
                Process excelProc = Process.GetProcessById(excelProcessID);
                if (excelProc != null)
                {
                    excelProc.Kill();
                }
            }
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
回复
phommy 2013-06-13
再顶一下。。。哪位知道啊。。。
回复
phommy 2013-06-09
沉了,顶上来。。。
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2013-06-08 03:48
社区公告

让您成为最强悍的C#开发者