需要引用单元 Tlhelp32
function KillTask(ExeFileName: string): integer; //杀进程函数
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
//取得系统快照
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
//循环例举,如果到达最后,则退出loop
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin //取得进程名,大写后好作比较
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))=
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then //调用terminateprocess结束符合的进程项
Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;
//ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
//这一句是从进程链中,取出一个到FProcessEntry32结构中,然后
//在这个结构中取得进程名。至于FProcessEntry32,你用按下ctrl同时在这个上面鼠标点下,可以看到它的详细定义。
短暂的春节就这么快的过了,上班头一天怎么就无心工作?新的一年要有新的计划。该是计划自己2012走的路了。
整理一些自己用的sql模板,在写后台程序时很有用,可以很快的建立一个新的后台程序。
1、Ctrl+鼠标左键拖动 拉一个副本。
2、按F2替换新文件名。
3、在sql server2005中打开,Ctrl+H替换相关名称(表名,视图名,函数名等..)。
4、可以很快的直接去写主体了。
如果需要加密的话可以使用“WITH ENCRYPTION”。
一、表 模板

创建表if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[表名]
GO
/* 以下是在Sql2005中自动生成的。sql2000中不行。
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[表名]') AND type in (N'U'))
DROP TABLE [dbo].[表名]
GO*/
/*
名称:
创建人:
说明:
*/
CREATE TABLE [dbo].[表名](
[字段名] [类型]
CONSTRAINT [PK_表名] PRIMARY KEY CLUSTERED
(
[主建] ASC
)
) ON [PRIMARY]
GO
--这时可以加该表初始的数据。
二、视图 模板

视图IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[视图名]') AND OBJECTPROPERTY(id, N'IsView') = 1)
DROP VIEW [dbo].[视图名]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/*
程序名称:
作者:Kevin
运行实例:
select * From 视图名
*/
CREATE VIEW [dbo].[视图名]
AS
--查询体
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
三、触发器 模板

触发器if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[触发器名]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop Trigger [dbo].[触发器名]
GO
/*以下为Sql2005自动生成删除代码
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[触发器名]'))
DROP TRIGGER [dbo].[触发器名]
*/
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
Create Trigger [触发器名]
ON 触发器名
WITH ENCRYPTION--加密
AFTER|BEFORE INSERT|UPDATE|DELETE
AS
Begin
--要执行的Sql
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
四、函数 模板

函数if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[函数名]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/*
名称:
创建人:
主要功能:
运行实例:
select dbo.函数名(1,1)
*/
CREATE FUNCTION 函数名(
--参数列表
)
RETURNS 数据类型(int,varchar(10))
AS
BEGIN
RETURN 返回值
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
五、存储过程 模板

存储过程if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[存储过程名]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/*
程序名称:
编写人:Kevin
说明:
运行实例:exec 存储过程名
*/
CREATE PROCEDURE 存储过程名(
--参数列表
)
WITH ENCRYPTION
AS
--语句块
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO