Excel에 액세스하는 방법 설명
2718 단어 Excel 액세스
IntPtr t = new IntPtr(app.Hwnd);
int k = 0;
GetWindowThreadProcessId(t, out k); // k
if (k != 0)
{
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); // k
p.Kill(); // k
}
2, 웹, 웹 서비스가 잘못되었습니다. Get Windows Thread Process Id(t,out k);실행이 끝난 후 프로세스 Id를 찾을 수 없습니다. Id는 0으로 사용됩니다.인터넷에서는 권한이 부족할 수도 있으니 아래를 통해 권한을 높여야 한다고 한다
TokPriv1Luid tp;
IntPtr hproc = GetCurrentProcess();
IntPtr htok = IntPtr.Zero;
if (OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok))
{
//MessageBox.Show("OpenProcessToken="+htok.ToString());
}
tp.Count = 1;
tp.Luid = 0;
tp.Attr = SE_PRIVILEGE_ENABLED;
if (LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid))
{
//MessageBox.Show("LookupPrivilegeValue="+tp.Luid.ToString());
}
if (AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero))
{
//MessageBox.Show("AdjustTokenPrivileges " + tp.Luid.ToString() +" ---"+tp.Count.ToString() + "---"+tp.Attr.ToString());
}
3 현재 채택된 것은 이런 방식이며 이 과정을 죽일 수도 있다
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;