精华内容
下载资源
问答
  • office进程名
    2021-07-09 17:19:47

    解决C#使用Microsoft.Office.Interop.Excel操作Excel后进程一直存在的问题

    参考文章:

    (1)解决C#使用Microsoft.Office.Interop.Excel操作Excel后进程一直存在的问题

    (2)https://www.cnblogs.com/Linford-Xu/p/4450472.html

    (3)https://www.javazxz.com/thread-6741-1-1.html


    备忘一下。


    更多相关内容
  • 用于清除QAxObject创建的Office进程,可以区分是外部创建的Office进程还是软件内部创建的Office进程
  • 很多人在Deepin 20 Linux系统下安装WPS新版本后都出现一个无响应的wpsoffice进程,不过似乎不是共有的问题,有些人表示没有这个。进一步说明如果把WPS给卸载掉然后再重新安装,还是会出现,如果单独把wpsoffice删除...

    很多人在Deepin 20 Linux系统下安装WPS新版本后都出现一个无响应的wpsoffice进程,不过似乎不是共有的问题,有些人表示没有这个。

    82069ad308bbd50ec20010dfce388773.png

    进一步说明

    如果把WPS给卸载掉然后再重新安装,还是会出现,如果单独把wpsoffice删除,则Word excel PPT就打不开了。如果把该进程强制禁止掉,它又立刻自启。参考在Linux上安装WPS Office的方法(它是Microsoft Office的免费替代品)。

    可能是BUG

    这个问题似乎是一个BUG,但不是每个人都有的,如果无碍事就不管它了。

    附:wpsoffice进程导致系统无法关机的BUG

    在使用完WPS后关闭其软件,在系统关机时右下角有窗口弹出,不能正常的关机,提示以下错误:

    Plasma Workspace

    Logout canceled by '/opt/kingsoft/wps-office/office6/wpsoffice`

    解决该问题的方法是:打开任务管理器KSysGuard,发现wpsoffice进程依然存在,选择该进程,右键-- Send Signal -- Kill(KILL),关闭该进程,然后能够正常关机了。

    相关主题

    展开全文
  • open office进程挂掉会出现连接异常,则可以在代码中增加对OpenOffice的ConnectException异常检测,如果捕获该异常,系统就连接open office服务器并执行restart脚本重启open office服务。代码如下: try { // ........

    linux服务器open office 进程总退出问题解决方法

    在项目中使用open office做有生成证书(pdf)功能,但open office服务进程总是莫名其妙退出,解决方案如下。

    方法一:程序捕获异常

    open office进程挂掉会出现连接异常,则可以在代码中增加对OpenOffice的ConnectException异常检测,如果捕获该异常,系统就连接open office服务器并执行restart脚本重启open office服务。代码如下:

    try {
        // ......
        connection.connect();
        // ......
    } catch (ConnectException e) {
        logger.info("连接异常openoffic服务器......,ip={}", ip);
        Connection sshConn = new Connection(ip, 22);
        Session session = null;
        try {
            sshConn.connect();
            boolean isAuthenticated = sshConn.authenticateWithPassword("root", "123456");
            if (isAuthenticated) {
                session = sshConn.openSession();
                logger.info("重启open office服务......");
                session.execCommand("sh /root/restart.sh", "UTF-8");
                InputStream sessionIn = new StreamGobbler(session.getStdout());
                BufferedReader brs = new BufferedReader(new InputStreamReader(sessionIn));
                String line = brs.readLine();
                logger.info("重启open office服务,启动结果输出,{}", line);
            } else {
                logger.error("连接ssh失败,用户名或密码错误");
            }
        } catch (Exception se) {
            logger.error("连接ssh失败,ip=" + ip, se);
        } finally {
            if (session != null) {
                session.close();
            }
            sshConn.close();
        }
        // 抛出异常,让当前的任务记录错误信息,下一个任务会正常进行
        throw e;
    } 
    

    方法二:使用linux定时任务

    使用linux的cron定时任务管理,每分钟都执行一下脚本检测open office进程是否存在,不存在则重启服务,脚本如下

    #!/bin/sh
    
    OPENOFFICEPID=`ps -ef|grep "/opt/openoffice4/program/soffice"|grep -v grep|grep -v grep|awk '{print $2}'`
    
    if [ ! -n "$OPENOFFICEPID" ]; then
        echo "OPENOFFICEPID is empty, start openoffice"
        nohup soffice -headless -accept="socket,host=192.168.1.1,port=8100;urp;" -nofirststartwizard &
    else
        # kill all openoffice process
        # ps -ef|grep "/opt/openoffice4/program/soffice"|grep -v grep|grep -v grep|awk '{print $2}'  | xargs kill 
        echo "OPENOFFICEPID is $OPENOFFICEPID is started!"
    fi
    

    备注:定时任务添加步骤如下:

    crontab -e
    # 进入vim编辑,添加一行定时任务并保存
    # 格式: 分 时 日 月 周 命令 参数
    */1 * * * * /bin/sh /root/restart.sh
    
    # 查看任务列表
    crontab -l 
    
    展开全文
  • 环境 系统:Windows10 64位 家庭中文版 Qt版本:5.6.0 msvc2013 32位 ...我们需要及时地清理这些进程,注意:不能不加区分地清理Office的进程,因为Office进程有可能是Qt程序创建的也有可能是Of...

    环境

    系统:Windows10 64位 家庭中文版
    Qt版本:5.6.0 msvc2013 32位
    编译器:Visual Studio 2013 专业版

    目的

    在Qt中,当程序非正常关闭时,用QAxObject创建的Office进程不会随着程序的关闭而关闭,导致进程残留。我们需要及时地清理这些进程,注意:不能不加区分地清理Office的进程,因为Office进程有可能是Qt程序创建的也有可能是Office本身创建的。

    步骤

    1.获取残留的Office进程的Pid,关键代码:

    //根据进程名获取pid
    QList<int> Widget::getListPidByName(const char *strName)
    {
        QList<int> lstPid;
        HANDLE hProcess;
        PROCESSENTRY32 processEntry;
        processEntry.dwSize = sizeof(PROCESSENTRY32);
        BOOL bRet;
        //进行进程快照
        hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //TH32CS_SNAPPROCESS快照所有进程
        //开始进程查找
        bRet = Process32First(hProcess, &processEntry);
        //循环比较,得出ProcessID
        while(bRet)
        {
            QString temp = QString::fromWCharArray(processEntry.szExeFile);
            if(strcmp(strName, temp.toLocal8Bit()) == 0)
            {
                lstPid.append(processEntry.th32ProcessID);
            }
            bRet = Process32Next(hProcess, &processEntry);
        }
        return lstPid;
    }
    

    2.根据进程的Pid获取父Pid,关键代码:

    //根据进程的Pid获取父Pid
    DWORD Widget::getParentPidByPid(DWORD dwProcessId)
    {
        LONG                        status = -1;
        DWORD                       dwParentPid = (DWORD)-1;
        HANDLE                      hProcess = NULL;
        PROCESS_BASIC_INFORMATION   processBasicInformation;
    
        PROCNTQSIP NtQueryInformationProcess = (PROCNTQSIP) GetProcAddress(
                    GetModuleHandle(L"ntdll"), "NtQueryInformationProcess");
    
        if (NULL == NtQueryInformationProcess)
        {
            return (DWORD)-1;
        }
        // Get process handle
        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcessId);
        if (!hProcess)
        {
            return (DWORD)-1;
        }
    
        // Retrieve information
        status = NtQueryInformationProcess(hProcess,
                                           ProcessBasicInformation,
                                           (PVOID)&processBasicInformation,
                                           sizeof(PROCESS_BASIC_INFORMATION),
                                           NULL
                                           );
    
        //注意:这里要用32位的编译器,64位的编译器得到的不是0而是 -1073741820
        if (!status)
        {
            dwParentPid = processBasicInformation.InheritedFromUniqueProcessId;
        }
    
        CloseHandle(hProcess);
    
        return dwParentPid;
    }
    

    3.根据父Pid来决定要不要杀死这个进程,关键代码:

    //杀死进程
    void Widget::killProcess(const QList<int> &lstSubPid, const QList<int> &lstParentPid)
    {
        int nParentPid = -1;
        //遍历子进程
        for (int i = 0; i < lstSubPid.count(); ++i)
        {
            //获取子进程的父进程
            nParentPid = getParentPidByPid(lstSubPid.at(i));
            //如果这个进程是由某个父进程创建的,则杀死
            if (lstParentPid.contains(nParentPid))
            {
                HANDLE hProcess = NULL;
                //打开目标进程
                hProcess = OpenProcess(PROCESS_TERMINATE,FALSE, lstSubPid.at(i));
                if (hProcess == NULL)
                {
                    qDebug()<<"Open Process fAiled ,error:"<<GetLastError();
                }
                //结束目标进程
                DWORD ret = TerminateProcess(hProcess,0);
                if(ret == 0)
                {
                    qDebug()<<"kill task faild,error:"<<GetLastError();
                }
                else
                {
                    qDebug()<<"kill task success ------------------------------------------------";
                }
            }
        }
    }
    

    注意:这里这样做的原因是:用QAxObject创建的Office进程的父进程和用Office创建的Office进程的父进程不是同一个进程。
    示例源码

    展开全文
  • office excel2010如何双开窗口或多窗口_亲测有效.zip
  • Microsoft.Office.Interop.Excel.dll for Excel2010 Microsoft.Office.Interop组件接口-2010版本
  • C#进程.docx

    2019-09-24 10:05:05
    这是一个C#进程文档,适合初学C#,关于进程方面的知识点
  • 1、项目中,引用添加office COM组件 2、引用接口 3、在程序中 添加代码 [DllImport(“User32.dll”, CharSet = CharSet.Auto)] public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); 4...
  • 当我们使用Excel操作时候,发现总是不能退出,可以这么办 IntPtr t = new IntPtr(xlsApplication.Hwnd); int k = 0; GetWindowThreadProcessId(t, out k); System.Diagnostics.Process p = System.Diagnostics...
  • Windows 进程完全解析

    2018-01-05 00:04:14
    Windows 进程完全解析 system process 进程文件: [system process] or [system process] 进程名称: Windows内存处理系统进程 描述: Windows页面内存管理进程,拥有0级优先。 是否为系统进程: 是
  • 最近利用Microsoft.Office.Interop.Excel.Application读取一个excel后,进程中一直存在excel,在网上找了一阵子,其中有几个解决方案
  • 解决在IIS中调用Microsoft Office Excel组件后进程无法正常退出的问题
  • Imports System.Runtime.InteropServices Imports Microsoft.Office.Interop Public Class 关闭EXCEL ' ' TODO: 在此处添加构造函数逻辑 ' Public Sub New() End Sub <DllImport("User32.dll", CharS...
  • c# 启动关闭进程

    2012-10-22 18:40:56
    c# 启动关闭进程 文档为网上收集,版权归原作者所有,O(∩_∩)O谢谢。
  • 如果你的Deepin 20(Linux)系统出现一个(无响应)wpsoffice进程,可用该方法来解决。问题安装国内版如果打开文档速度太快,一下点太多次,进程里面经常出现wpsoffice无响应:强制结束又会自动出现,这个很烦人。解决...
  • 使用JavaScript判断office版本,在项目开发中非常有用,由其是在OA系统的在线office编辑,我们需要让office在线编辑工具同时支持office的多个版本,例如office2003、2007。office在安装的时候,会在注册表中写入键值...
  • (注意:一定要阅读我的readme)用java实现了office转PDF的功能。并做成了bat启动文件,方便一键启动。等待转化的文件路径:D:\\pdfwordData,转化后的文件路径D:\\overData\\。当然你也可以根据自己的需要更改。
  • 根据mime类型而不是文件扩展分析文件 不产生子进程以使用设备上安装的工具 如果是简单文本文件,则从文件读取并返回文本 使用的图书馆 该模块使用了一些令人惊叹的现有库,它们的性能比该模块中最初存在的库要好,...
  • 系统进程列表
  • 怀念windows下的任务管理器啊,有啥看的顺眼的程序鼠标点几下就能将其干掉。 今天在用Firefox浏览器浏览网页时,界面瞬间卡住了,什么都不能点,测试了下,只有切换到命令行界面(Ctrl+Alt+F1)才有反应,切回...
  • if (killOffice) { logger.warn("检测到有正在运行的office进程,已自动结束该进程"); } try { DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration(); configuration....
  • 通常,当COM或.NET客户端作为32位进程运行时,会发生这些问题。 本项目解决了32位和64位版本的Office之间的这些COM和.NET问题的补救措施。修复资源此项目中有两个资源可用来帮助检测和修复孤立的Office TypeLib...
  • Linux环境下启动office转换服务的方法 注意不建议使用xshell去连接启动office转换服务该工具存在断开连接后...操作步骤 1先查询是否存在office转换服务的进程 命令ps ef|grep Office 下图中查询出是存在进程的pid是2
  • jacob操作office后关闭不掉进程

    千次阅读 2016-01-26 13:04:45
    用jacoba操作office后,发现代码中的 app.invoke("Quit", new Variant[] {}); 不能正确关闭进程,解决方法是:将方法放在ComThread中最后关闭ComThread /** * 将Excel转换成PDF * @param excelPath * @param ...
  • 复制代码 代码如下:#-*- coding:utf-8 -*-...name) app.Visible = True time.sleep(0.5) app.Quit() if __name__ == ‘__main__’: ””’ 通过python启动办公软件的应用进程, 其中wpp、et、wpp对应的是金山文件、表格
  • 此突破是由Office软件里面的[公式编辑器]造成的,由于编辑器进程没有对举个例子,如果黑客利用这个漏洞,构造带有外壳后门的office文件,当普通用户打开这个office文件,则电脑可以被黑客直接控制。 影响版本: ...
  • 如果您无法使用Fix it或控制面板删除Offiice 2013或Office 365,也可以尝试手动从PC删除Microsoft Office。要确定Office 2013的安装版本,请执行以下步骤:1、启动Office 2013应用程序,例如Word 2013。2、在“文件...
  • 用VC单文档界面调用WORD
  • 游船工程管理软件 用access编的 Cruise project management software

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,873
精华内容 13,949
关键字:

office进程名