社区
C#
帖子详情
打开word后如何知道该word进程的PID?
wangqian84
2011-01-19 03:20:15
请问:c#打开word后如何知道该word进程的PID?
---------------------------------
打开word的操作是抛到线程实现的,
也就是同一时间可能有几个word.exe进程存在,因此只能用进程pid去杀。
...全文
624
9
打赏
收藏
打开word后如何知道该word进程的PID?
请问:c#打开word后如何知道该word进程的PID? --------------------------------- 打开word的操作是抛到线程实现的, 也就是同一时间可能有几个word.exe进程存在,因此只能用进程pid去杀。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangqian84
2011-01-20
打赏
举报
回复
解决
用 线程同步 方法做
杀进程的话得需要权限,之前是权限不够。。。呵呵
l576981437
2011-01-19
打赏
举报
回复
遍历所有进程 然后一个一个对比
xingyuebuyu
2011-01-19
打赏
举报
回复
http://www.cnblogs.com/deepnight/archive/2010/01/27/Query_Parent_Process.html
Process.GetProcessesByName(processName)
获取所有word进程,然后判断这些进程的父进程ID是不是你自已的程序,不是不需要kill
only_fly_x
2011-01-19
打赏
举报
回复
你可以先检测有word进程运行没有,有的话,在原进程下运行新文档怎么样?
那样只要关一个word进程了。
wuyq11
2011-01-19
打赏
举报
回复
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
System.Runtime.InteropServices.Marshal.ReleaseComObject(Doc);
app=null;
Doc=null;
GC.Collect();
GC.Collect();
System.Diagnostics.Process myproc= new System.Diagnostics.Process();
foreach (Process thisproc in Process.GetProcessesByName(processName)) {
if(!thisproc.CloseMainWindow()){
thisproc.Kill();
}}
wangqian84
2011-01-19
打赏
举报
回复
我自己测试时 如果不单开word 运行程序 可以自动销毁
如果打开一个word 然后再运行此程序时,
计算机会响一声 然后那个进程也不会关闭,就是有两个word.exe进程。
如果再运行一次此程序会有三个word.exe进程 。。。。。
wangqian84
2011-01-19
打赏
举报
回复
没这么简单啊,
我是通过api操作word时引发的进程里word.exe未背销毁
就是在word打开的瞬间如何取到进程pid
部分代码如下:
Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = null;
...
....
// 打开doc文件
doc = newApp.Documents.Open(ref Source, ref Unknown, ref readOnly,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
// 转换格式
doc.SaveAs(ref Target, ref format,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
..
..
finally
{
if (doc != null)
{
// 关闭文档和Word程序
doc.Close(ref Unknown, ref Unknown, ref Unknown);
}
newApp.Quit(ref Unknown, ref Unknown, ref Unknown);
//逐步关闭所有
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
System.Runtime.InteropServices.Marshal.ReleaseComObject(newApp);
}
widiandian
2011-01-19
打赏
举报
回复
楼上正解~~
cfans1314
2011-01-19
打赏
举报
回复
试试这样行不?
通过 Process newp = Process.Start (openFileDialog1.FileName );开启word后
string [] processInfo={
newp.newp.ProcessName , //进程名字
newp.Id.ToString() //进程号
};
在结束word的方法中这样写:
//获取计算机中的进程
Process[] processes;
processes = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < processes.Length; i++)
{
Process process = processes[i];
string processname = process.ProcessName.ToString();
if(processname="word.exe")
{
processes[i].kill();
}
}
linux终止
pid
进程
,Linux用ps命令查找
进程
PID
再用kill命令终止
进程
的方法
使用linux操做系统,不免遇到一些软件"卡壳"的问题,这时就须要使用linux下强大的kill命令来结束相关
进程
。这在linux系统下是极其容易的事情,你只须要kill xxx便可,这里xxx表明与此软件运行相关的
进程
PID
号。首先,咱们须要使用linux下另一个ps命令查找与
进程
相关的
PID
号:ps aux | grep program_filter_
word
ps a 显示现行终端机下的全部程...
Linux用ps命令查找
进程
PID
再用kill命令终止
进程
的方法
使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关
进程
。这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关的
进程
PID
号。
首先,我们需要使用linux下另外一个ps命令查找与
进程
相关的
PID
号:ps aux | grep program_filter_
word
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A
进程
的句柄,
PID
及线程
进程
(process)
进程
是一个正在运行的程序
进程
里可以包括多个模块(DLL,OCX,等)
进程
是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。 一个任务就是一个
进程
(Process),比如
打开
一个浏览器就是启动一个浏览器
进程
,
打开
一个记事本就启动了一个记事本
进程
,
打开
两个记事本就启动了两个记事本
进程
。 线程(Thread) 单个
进程
中执行中每个任务就是一...
查看
进程
pid
,杀死
进程
使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关
进程
。这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关的
进程
PID
号。 首先,我们需要使用linux下另外一个ps命令查找与
进程
相关的
PID
号:ps aux | grep program_filter_
word
ps a
C++ 根据
进程
名获取
pid
(
PID
最全方案)
网络上流行的创建快照的方案对于部分
进程
无效,如360
进程
。解决方案亲测可用
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章