最好还是用owc
----------------------------------------------------------------------
欢迎试用ASP.NET大文件上传组件(AspnetUpload 1.1 Release & 无刷新进度条)
http://www.cnblogs.com/bestcomy/archive/2004/06/09/14267.aspx
http://bestcomy.europe.webmatrixhosting.net
----------------------------------------------------------------------
----------------------------------------------------------------------
欢迎试用ASP.NET大文件上传组件(AspnetUpload 1.1 Release & 无刷新进度条)
http://www.cnblogs.com/bestcomy/archive/2004/06/09/14267.aspx
http://bestcomy.europe.webmatrixhosting.net
----------------------------------------------------------------------
office在系统中同时只允许有一个进程在运行,所有在你自己的excel进程开始之前必须保证要关闭系统中的其他excel进程!
----------------------------
在开始我的程序我已经确认系统中没有了Excel进程,而在运行了我的程序后却发现Excel进程还存在,但是有一点很奇怪,不是每一次都异常。
Excel.ApplicationClass objExcel=new Excel.ApplicationClass();
会出现
"指令引用的"0x00000000内存,该内存不能为Read",可是该代码在桌面程序下运行正常。
现在一运行Excel.ApplicationClass objExcel=new Excel.ApplicationClass();
就出现内存错误。
<HTML>
<HEAD>
<% @ Import namespace= "System.Diagnostics" %>
<script language="C#" runat="Server" debug="true">
void Page_Load(Object Sender, EventArgs e){
btnKill.Attributes.Add("onclick", "javascript: return confirm('你真的要杀死这个进程吗?');");
}private void KillProcess(string processName){
System.Diagnostics.Process myproc= new System.Diagnostics.Process();
//得到所有打开的进程
try{
foreach (Process thisproc in Process.GetProcessesByName(processName)) {
if(!thisproc.CloseMainWindow()){
thisproc.Kill();
}
}
}
catch(Exception Exc)
{
msg.Text+= "杀死" +procname.SelectedItem.Text + "失败!";
}
}
public void btnKill_Click(object sender, System.EventArgs e)
{
KillProcess(procname.SelectedItem.Text);
msg.Text= procname.SelectedItem.Text +" 已经被杀死。";
}
public void btnShow_Click(object sender, System.EventArgs e){
ArrayList procList =new ArrayList();
string tempName="";
int begpos;
int endpos;
foreach (Process thisProc in System.Diagnostics.Process.GetProcesses()) {
tempName=thisProc.ToString();
begpos = tempName.IndexOf("(")+1;
endpos= tempName.IndexOf(")");
tempName=tempName.Substring(begpos,endpos-begpos);
procList.Add(tempName);
}
procname.DataSource=procList;
procname.DataBind();
}
</script>
</HEAD>
<body>
<Basefont Face="Tahoma" />
<center><h2>ASP.NET 进程杀死器!</h2><BR>
<Table cellspacing=2 cellpadding=2 border=0 BGCOLOR="#fFCC66">
<form id="frmProc" runat="Server" method="post">
<TR><TD><ASP:DropDownList id="procname" runat="server" /></TD><TD>
进程名字</TD></TR>
<TR><TD>
<asp:button id="btnKill" Text="杀死进程" runat="server" CausesValidation="False" onclick="btnKill_Click" />
</TD>
<TD><asp:button id="btnShow" Text="列出所有进程" runat="server" CausesValidation="False" onclick="btnShow_Click" />
</TD></TR>
</TABLE>
<center><asp:Label id="msg" runat="server"/></center>
</form>
</center>
</body>
</HTML>