环境影响评价工程师:环境监测的基本程序

环境影响评价工程师:环境监测的基本程序,第1张

环境监测就是环境信息的捕获一传递一解析一综合一控制的过程,在对监测信息进行解析综合的基础上,揭示监测数据的内涵,进而提出控制对策建议,并依法实施监督,从而达到直接有效地为环境管理和环境监督服务。

1.受领任务环境监测的任务主要来自环境保护主管部门的指令,单位、组织或个人的委托、申请和监测机构的安排三个方面。环境监测是一项政府行为和技术性、执法性活动,所以必须要有确切的任务来源依据。

2.明确目的根据任务下达者的要求和需求,确定针对性较强的监测工作具颂饥体目的。

3.现场调查根据监测目的,进行现场调查研究,主要摸清主要污染源的来源、性质及排放野枣返规律,污染受体的性质及污染源的相对位置以及水文、地理、气象等环境条件和历史情况等。

4.方案设计根据现场调查情况和有关技术规范要求,认真做好监测方案设计,并据此进行现场布点作业,做好标识和必要准备工作。

5.采集样品按照设计方案和规定的 *** 作程序,实施样品采集,对某些需现场处置的样品,应按规定进行处置包装,并如实记录采样实况和现场实况。考试大环境影响评价工程师站点我

6.运送保存按照规范方法需求,将采集的样品和记录及时安全的送往实验室,办好交接手续。

7.分析测试按照规定程序和规定的分析方法,对样品进行分析,如实记录检测信息。

8.数据处理对测试数据进行处理和统计检验,整理入库(数据库)。

9.综合评价依据有关规定和标准进行综合分析,并结合现场调查资料对监测结果作出合理解释,写出研究(预测结论和对策建议)报告,并按规定程序报出。考试大环境影响评价工程师站点我

10.监督控制 依据主管部门指令或用户需求,对监测对象实施监督控制,保证法规政令落到实处。

11.反馈处置对监测结果的意见申诉和对策执行情况进行反馈处理,不岩冲断修正工作,提高服务质量。

主要监测监督工作程序

环境监测监督是一项政府行为,是一种执法活动。政府行为也应有规矩,执法活动更应讲程序。环境监测工作开展这么多年以来,可以说,仍基本上是环保部门和监测监督机构在唱独角戏,被监测单位始终处于被动地位,监测主体与监测受体两张皮。所以,环境监测监督工作的效能和效果一直不尽如人意,有时甚至还会产生对抗和矛盾。因此,需要制定主体和受体都十分清楚、且必须遵照执行的监测监督工作程序,以提高工作的透明度和协调性。但是,我国至今仍没有形成一套严谨、严格、可行的监测监督工作程序。根据工作的实践和实际情况,现提出几项主要监测监督工作程序,供同行参考。

本程序通过调用kernel dll中的几个API 函数 搜索并列出系统中除本进程外的所有进程的ID 对应的文件说明符 优先级 CPU占有率 线程数 相关进程信息等有关信息 并可中止所选进程 本程序运行时会在系统托盘区加入图标 不会出现在按Ctrl+Alt+Del出现的任务列表中 也不会在任务栏上显示任务按钮 在不活动或最小化时会自动隐藏 不会重复运行 若程序已经运行 再想运行时只会激活已经运行的程序枝败 本程序避免程序反复运行的方法是比较独特的 因为笔者在试用网上介绍一些方法后 发现程序从最小化状态被激活时 单击窗口最小化按钮时 窗口却不能最小化 于是笔者采用了发送和处理自定义消息的方法 在程序运行时先枚举系统中已有窗口 若发现程序已经运行 就向该程序窗口发送自定义消息 然后结束 已经运行的程序接到自定义消息后显示出窗口 //工猛森颤程文件procviewpro dprprogram procviewprousesForms windows messages main in procview pas {Form }{$R * RES}{//这是系统自动的beginApplication InitializeApplication Title := 系统进程监控 Application CreateForm(TForm Form )Application Runend }varmyhwnd:hwndbeginmyhwnd := FindWindow(nil 系统进程监控 )// 查找窗口if myhwnd= then // 没有发现 继续运行beginApplication InitializeApplication Title := 系统进程监控 Application CreateForm(TForm Form )Application Runendelse //发现窗口 发春枣送鼠标单击系统托盘区消息以激活窗口postmessage(myhwnd WM_SYSTRAYMSG wm_lbuttondown){//下面的方法的缺点是 若窗口原先为最小化状态 激活后单击窗口最小化按钮将不能最小化窗口showwindow(myhwnd sw_restore)FlashWindow(MYHWND TRUE)}end {//下面是使用全局原子的方法避免程序反复运行constatomstr= procview varatom:integerbeginif globalfindatom(atomstr)= thenbeginatom:=globaladdatom(atomstr)with application dobeginInitializeTitle := 系统进程监控 CreateForm(TForm Form )Runendglobaldeleteatom(atom)endend }//单元文件procview pasunit procviewinterfaceusesWindows Messages SysUtils Classes Graphics Controls Forms Dialogs StdCtrls TLHelp Buttons ComCtrls ExtCtrls ShellAPI MyFlagconstPROCESS_TERMINATE= SYSTRAY_ID= WM_SYSTRAYMSG=WM_USER+ typeTForm = class(TForm)lvSysProc: TListViewlblSysProc: TLabellblAboutProc: TLabellvAboutProc: TListViewlblCountSysProc: TLabellblCountAboutProc: TLabelPanel : TPanelbtnDetermine: TButtonbtnRefresh: TButtonlblOthers: TLabellblEmail: TLabelMyFlag : TMyFlagprocedure btnRefreshClick(Sender: TObject)procedure btnDetermineClick(Sender: TObject)procedure lvSysProcClick(Sender: TObject)procedure FormCreate(Sender: TObject)procedure AppOnMinimize(Sender:TObject)procedure FormClose(Sender: TObjectvar Action: TCloseAction)procedure FormDeactivate(Sender: TObject)procedure lblEmailClick(Sender: TObject)procedure FormResize(Sender: TObject)private{ Private declarations }fshandle:thandleFormOldHeight FormOldWidth:Integerprocedure SysTrayOnClick(var message:TMessage)message WM_SYSTRAYMSGpublic{ Public declarations }endvarForm : TForm idid: dwordfp :tprocessentry fm :tmoduleentry SysTrayIcon:TNotifyIconDataimplementation{$R * DFM}function RegisterServiceProcess(dwProcessID dwType:integer):integerstdcallexternal KERNEL DLL procedure TForm btnRefreshClick(Sender: TObject)varclp:boolnewitem :TlistitemMyIcon:TIconIconIndex:wordProcFile : array[ MAX_PATH] of charbeginMyIcon:=TIcon createlvSysProc Items clearlvSysProc SmallImages clearfshandle:=CreateToolhelp Snapshot(th cs_snapprocess )fp dwsize:=sizeof(fp )clp:=process first(fshandle fp )IconIndex:= while integer(clp)<>dobeginif fp th processid<>getcurrentprocessid thenbeginnewitem :=ems add{newitem caption:=fp szexefileMyIcon Handle:=ExtractIcon(Form Handle fp szexefile )}StrCopy(ProcFile fp szExeFile)newitem caption:=ProcFileMyIcon Handle:=ExtractAssociatedIcon(HINSTANCE ProcFile IconIndex)if MyIcon Handle<>thenbeginwith lvSysProc dobeginNewItem ImageIndex:= *** allimages addicon(MyIcon)endendwith newitem subitems dobeginadd(IntToHex(fp th processid ))Add(IntToHex(fp th ParentProcessID ))Add(IntToHex(fp pcPriClassBase ))Add(IntToHex(tUsage ))Add(IntToStr(tThreads))endendclp:=process next(fshandle fp )endclosehandle(fshandle)lblCountSysProc caption:=IntToStr(unt)MyIcon Freeendprocedure TForm btnDetermineClick(Sender: TObject)varprocesshndle:thandlebeginwith lvSysProc dobeginif selected thenbeginmessagebox(form handle 请先选择要终止的进程! *** 作提示 MB_OK+MB_ICONINFORMATION)endelsebeginif messagebox(form handle pchar( 终止 +itemfocused caption+ ? ) 终止进程 mb_yesno+MB_ICONWARNING+MB_DEFBUTTON )=mryes thenbeginidid:=strtoint( $ +itemfocused subitems[ ])processhndle:=openprocess(PROCESS_TERMINATE bool( ) idid)if integer(terminateprocess(processhndle ))= thenmessagebox(form handle pchar( 不能终止 +itemfocused caption+ ! ) *** 作失败 mb_ok+MB_ICONERROR)elsebeginSelected DeletelvAboutProc Items ClearlblCountSysProc caption:=inttostr(unt)lblCountAboutProc caption:= endendendendendprocedure TForm lvSysProcClick(Sender: TObject)varnewitem :Tlistitemclp:boolbeginif lvSysProc selected<>nil thenbeginidid:=strtoint( $ +emfocused subitems[ ])ems Clearfshandle:=CreateToolhelp Snapshot(th cs_snapmodule idid)fm dwsize:=sizeof(fm )clp:=Module First(fshandle fm )while integer(clp)<>dobeginnewitem :=lvAboutProc Items addwith newitem dobegincaption:=fm szexepathwith newitem subitems dobeginadd(IntToHex(fm th moduleid ))add(IntToHex(fm GlblcntUsage ))add(IntToHex(fm proccntUsage ))endendclp:=Module Next(fshandle fm )endclosehandle(fshandle)lblCountAboutProc Caption:=IntToStr(unt)endendprocedure TForm FormCreate(Sender: TObject)beginwith application dobeginshowwindow(handle SW_HIDE)//隐藏任务栏上的任务按钮OnMinimize:=AppOnMinimize//最小化时自动隐藏OnDeactivate:=FormDeactivate//不活动时自动隐藏OnActivate:=btnRefreshClickendRegisterServiceProcess(GetcurrentProcessID )//将程序注册为系统服务程序 lishixinzhi/Article/program/Delphi/201311/24680

新建一个Console应用程序,项目名称为“FileSystemWatcher”,Copy代码进,编译后就可以用了。代码如下:

using System

using System.Collections.Generic

using System.Text

using System.IO

using System.Security.Permissions

namespace MyFileSystemWatcher

{

public class Watcher

{

public static void Main(string[] args)

{

Run()

}

[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]

public static void Run()

{

string[] args = System.Environment.GetCommandLineArgs()

if (args.Length != 2)

{

Console.WriteLine("使用方式: FileSystemWatcher.exe DirectoryPath")

return

}

FileSystemWatcher watcher = new FileSystemWatcher()

watcher.Path = args[1]

/* 设置为监视 LastWrite 和 LastAccess 时间方面的更改,以及目录中文本文件的创悔兄敬建、删除或重命名。 */

watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite

| NotifyFilters.FileName | NotifyFilters.DirectoryName

// 只监控.txt文件

watcher.Filter = "*.txt"

// 添加事件处理器。

watcher.Changed += new FileSystemEventHandler(OnChanged)

watcher.Created += new FileSystemEventHandler(OnChanged)

watcher.Deleted += new FileSystemEventHandler(OnChanged)

watcher.Renamed += new RenamedEventHandler(OnRenamed)

// 开始监控。

watcher.EnableRaisingEvents = true

// 输入q推出程序。

Console.WriteLine("按 \'q\' 推出程序。")

while (Console.Read() != 'q') 

}

// 定义事件处理器。

private static void OnChanged(object source, FileSystemEventArgs e)

{

//如果更改、创建或删除文件,文件路径将被输出到控制台。

Console.WriteLine("文件: " + e.FullPath + " " 碧慎+ e.ChangeType)

}

private static void OnRenamed(object source, RenamedEventArgs e)

{

// 在文件重命名后,旧路径和新路径都输出到控制台。

Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath)

}

}

}

使用说明(具体看尘烂图):

1、打开cmd窗口,先定位到FileSystemWatcher.exe所在的文件夹目录;

2、输入【FileSystemWatcher.exe 文件夹目录名称】,回车;

3、在监控的文件夹目录中增删改文件,就可以看见监控结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12309452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存