C# 判断(Excel)文件是否已经打开
using System.IO;
using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
public static extern IntPtr _lopen(string lpPathName, int iReadWrite);
[DllImport("kernel32.dll")]
public static extern bool CloseHandle(IntPtr hObject);
public const int OF_READWRITE = 2;
public const int OF_SHARE_DENY_NONE = 0x40;
public readonly IntPtr HFILE_ERROR = new IntPtr(-1);
private void button1_Click(object sender, EventArgs e)
{
string vFileName = @"c:\temp\temp.bmp";
if (!File.Exists(vFileName))
{
MessageBox.Show("文件都不存在!");
return;
}
IntPtr vHandle = _lopen(vFileName, OF_READWRITE | OF_SHARE_DENY_NONE);
if (vHandle == HFILE_ERROR)
{
MessageBox.Show("文件被占用!");
return;
}
CloseHandle(vHandle); //判断之后一定要关闭!!!
MessageBox.Show("没有被占用!");
}
最新文章
- js获取cookie
- Excel中添加下拉框
- mysql忘记root密码
- 51nod 1413 权势二进制 背包dp
- iOS sharedSDK详解
- .net 利用 GZipStream 压缩和解压缩
- Altium Designer 里面怎么画等长线
- 同时安装VS2010,VS2012
- MSSQL2008数据库备份还原和数据恢复
- MySQL数据库MyISAM和InnoDB存储引擎的比较【转载】
- [Redis] - redis实战1
- Eclipse添加JDK,JRE切换
- PAT A1098 Insertion or Heap Sort (25 分)——堆排序和插入排序,未完待续。。
- stm32型号解读
- 牛客网多校第3场Esort string (kmp)
- Linux 系统目录
- git 自动转换行符的坑爹案例
- Codeforces 938 D. Buy a Ticket (dijkstra 求多元最短路)
- mysql主从复制(简单直观)
- VS2013过期激活