Windows服务监听程序

Windows服务监听程序
Windows服务监听程序

目录

Part One:函数组件实现 (1)

Part two:安装/卸载/调用服务主程序,Main函数入口 (9)

Part Three:头文件,平台/浏览器使用版本宏定义 (10)

Part Four:头文件,函数组件声明 (10)

Part One:函数组件实现

TCHAR g_szServieName[] = TEXT("HookService");//服务名称

TCHAR g_szServieDescription[] = TEXT("The Service Of HookProgram");//服务描述

SERVICE_STATUS g_svrStatus;//服务状态

SERVICE_STATUS_HANDLE g_hStatus;

DWORD g_errCode = 0;

HANDLE g_eventWait = NULL;

DWORD waitID = 0; // 监控Token插拔的线程的ID

HANDLE waitHD = NULL; // 监控Token插拔的线程的句柄

//P11_CONTEXT g_p11Ctx; // PKCS#11库的全局上下文

//*************************************************************************************************** *************************

//编译生成可执行程序的绝对路径函数

BOOL FindExePath(TCHAR* Path)

{

if ( !GetModuleFileName(NULL, Path, MAX_PATH) ) {

printf_s("Get ExeFile Failed. error code = %d\n", GetLastError());

return FALSE;

}

return TRUE;

}

DWORD WINAPI waitThreadProc(LPVOID lpParameter) {

waitID=0;

return 0;

}

//启动服务

int StartMoniter() {

//InitP11Context(NULL/*&g_p11Ctx*/, ReadStartupDir, TRUE);

// 创建Key插拔监视线程,监key的状态(插拔),保存该线程句柄

waitHD = CreateThread(

NULL, // SECURITY_ATTRIBUTES结构指针,可以为NULL

0, // 初始的栈大小,此处为,使用缺省大小

(LPTHREAD_START_ROUTINE)waitThreadProc, // 线程函数和线程启动地址

NULL,//&g_p11Ctx, // 将p11库的函数列表指针作为参数传递

CREATE_SUSPENDED, // 创建标志为CREATE_SUSPENDED,不立即运行

&waitID // 线程标识由waitID返回

);

// 启动创建好的key监控线程

ResumeThread(waitHD);//激活线程

return 0;

}

BOOL Run() {

SERVICE_TABLE_ENTRY DispatchTable[] = {

{ g_szServieName, (LPSERVICE_MAIN_FUNCTION)ServiceMain },

{ NULL, NULL } // 最后一个元素必须为{NULL, NULL}

};

// 将服务进程的主线程连接到服务控制管理器SCM

return StartServiceCtrlDispatcher(DispatchTable);

}

BOOL InstallService()

{

TCHAR FilePath[MAX_PATH+1];

ZeroMemory(FilePath,MAX_PATH);

// 首先获取服务可执行程序的绝对路径

FindExePath(FilePath);

// 建立与服务控制管理器(SCM)的连接

SC_HANDLE hSCManager;

hSCManager = OpenSCManager(

NULL, // 目标主机名,此处为NULL,本机

NULL, // 数据库名,缺省为SERVICES_ACTIVE_DATABASE(参数NULL)

SC_MANAGER_ALL_ACCESS // 访问权限

);

if ( hSCManager == NULL ) {

printf_s("OpenSCManager failed, error code = %d\n", GetLastError());

return FALSE;

}

// 创建一个服务对象并将其增添到服务控制管理器(SCM)的数据库中

SC_HANDLE hService;

hService = CreateService(

hSCManager, // 连接句柄,代表一个SCM数据库

g_szServieName, // 服务名

g_szServieName, // 服务显示名

SERVICE_ALL_ACCESS, // 服务访问权限

// 服务类型:

// SERVICE_WIN32_OWN_PROCESS表示独立进程

// SERVICE_INTERACTIVE_PROCESS表示服务能与桌面交互

SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS,

SERVICE_AUTO_START, // 启动选项,此处为自动启动

SERVICE_ERROR_NORMAL, // 错误处理

FilePath, // 服务可执行文件的路径

NULL, // 服务组,为NULL则表示此服务不属任何组NULL, // 服务组中的唯一标签

NULL, // 服务依赖项

NULL, // 服务启动帐户

NULL // 服务启动帐户的口令

);

if ( hService == NULL ) {

CloseServiceHandle(hSCManager);

printf_s("create service failed, error code = %d\n", GetLastError());

return FALSE;

}

// 更改刚创建的服务的描述字符串

SERVICE_DESCRIPTION sd = {0};

sd.lpDescription = g_szServieDescription;

ChangeServiceConfig2(hService, SERVICE_CONFIG_DESCRIPTION, &sd);

// 清理并返回

CloseServiceHandle( hService );

CloseServiceHandle( hSCManager );

return TRUE;

}

BOOL UnInstallService()

{

// 打开SCM数据库

SC_HANDLE hSCManager;

hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

if ( hSCManager == NULL ) {

printf_s("OpenSCManager failed, error code = %d\n", GetLastError());

return FALSE;

}

// 打开指定名称的服务

SC_HANDLE hService;

hService = OpenService(

hSCManager, // SCM数据库连接

g_szServieName, // 服务名

SERVICE_ALL_ACCESS // 访问权限

);

if ( hService == NULL ) {

printf_s("OpenService failed, error code = %d\n", GetLastError());

return FALSE;

}

// 首先停止服务

SERVICE_STATUS ss = {0};

if ( !ControlService(

hService, // 打开的服务

SERVICE_CONTROL_STOP, // 控制码

&ss // 控制的返回状态

) ) {

printf_s("ControlService failed, error code = %d\n", GetLastError());

}

// 删除服务

if ( !DeleteService(hService) ) {

printf_s("DeleteService failed, error code = %d\n", GetLastError());

return FALSE;

}

else printf_s("Service deleted successfully\n");

// 清理并返回

CloseServiceHandle(hService);

CloseServiceHandle(hSCManager);

return TRUE;

}

VOID WINAPI ServiceMain(DWORD argc, LPTSTR* argv) {

// 首先填充SERVICE_STATUS结构

g_svrStatus.dwServiceType = SERVICE_WIN32; // 服务类型

g_svrStatus.dwCurrentState = SERVICE_START_PENDING; // 服务状态为待启动

g_svrStatus.dwControlsAccepted = //

SERVICE_ACCEPT_STOP|SERVICE_ACCEPT_SHUTDOWN; // 允许的控制g_svrStatus.dwWin32ExitCode = //

ERROR_SERVICE_SPECIFIC_ERROR; // 用来报告启动或停止错误的错误码

g_svrStatus.dwServiceSpecificExitCode = 0; // 服务特定的错误码,

dwWin32ExitCode为

/////////////////////////////////////////////////////// ERROR_SERVICE_SPECIFIC_ERROR被忽略g_svrStatus.dwCheckPoint = 1; // 执行长之间操作时报告状态的周期g_svrStatus.dwWaitHint = 2000; // 等待启动、停止等操作的时间限制,单位为毫秒

// 注册服务状态改变时的回调函数

DWORD dwWait;

g_hStatus = RegisterServiceCtrlHandlerEx(

g_szServieName, // 服务名称

ServiceCtrlHandlerEx, // 回调函数的地址

&dwWait // 传递给回调函数的用户自定义数据的地址

);

if ( g_hStatus == SERVICE_STATUS_HANDLE(NULL) ) {

printf_s("RegisterServiceCtrlHandler failed, error code = %d\n", GetLastError());

return;

}

// 更新SCM中的状态信息,若失败向SCM报告

if ( !SetServiceStatus(g_hStatus, &g_svrStatus) ) {

printf_s("SetServiceStatus pending failed, error code = %d\n", GetLastError());

ReportStatusToSCMgr(SERVICE_STOPPED, g_errCode, 0);

return;

}

// 创建一个事件对象,若失败向SCM报告

g_eventWait = CreateEvent(

NULL, // 指向SECURITY_ATTRIBUTES结构的指针,此处为NULL,此句柄不能被子进程继承

TRUE, // 参数TRU表示创建一个手工重置的事件对象,该对象需调用ResetEvent函数清除

FALSE, // FALSE表示新建的事件对象没有信号(signalel)

NULL // 事件对象的名称,为NULL表示匿名对象

);

if ( g_eventWait == NULL ) {

printf_s("CreateEvent failed, error code = %d\n", GetLastError());

ReportStatusToSCMgr(SERVICE_STOPPED, g_errCode, 0);

return;

}

// 启动服务主体函数

StartMoniter();

// 报告服务启动成功

if ( !ReportStatusToSCMgr(SERVICE_RUNNING, NO_ERROR, 2) ) {

printf_s("ReportStatusToSCMgr failed, error code = %d\n", GetLastError());

ReportStatusToSCMgr(SERVICE_STOPPED, g_errCode, 0);

return;

}

// 等待事件对象上的信号

dwWait = WaitForSingleObject(

g_eventWait, // 等待的对象是前面建立的事件对象

INFINITE // 没有期限

);

// 事件上有信号发生,清理并退出服务主函数

if ( g_eventWait != NULL ) CloseHandle(g_eventWait);

if ( g_hStatus != NULL ) ReportStatusToSCMgr( SERVICE_STOPPED, g_errCode, 0);

}

DWORD WINAPI ServiceCtrlHandlerEx(DWORD control, DWORD eventType, LPVOID lpEnentData, LPVOID lpContext) {

DWORD dwState = SERVICE_RUNNING;

switch (control) {

case SERVICE_CONTROL_PAUSE: // 控制码为暂停服务

if ( g_svrStatus.dwCurrentState == SERVICE_RUNNING ) { // 服务运行

//PauseService();

dwState = SERVICE_PAUSED;

}

break;

case SERVICE_CONTROL_CONTINUE: // 控制玛为服务继续

if (g_svrStatus.dwCurrentState == SERVICE_PAUSED ) {

//ResumeService();

dwState = SERVICE_RUNNING;

}

break;

case SERVICE_CONTROL_SHUTDOWN: // 控制码为主机关机

case SERVICE_CONTROL_STOP : // 控制码为停止服务

dwState = SERVICE_STOP_PENDING;

(VOID)ReportStatusToSCMgr(SERVICE_STOP_PENDING, NO_ERROR, 1); // 报告新状态

SetEvent(g_eventWait); // 在等待事件上产生信号

return 0;

case SERVICE_CONTROL_INTERROGATE: // 控制码为质询

break;

default :

break;

}

(VOID)ReportStatusToSCMgr(dwState, NO_ERROR, -1);

return 0;

}

BOOL ReportStatusToSCMgr(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwCheckPoint) {

BOOL fResult;

if ( dwCurrentState == SERVICE_START_PENDING ) g_svrStatus.dwControlsAccepted = 0;

else g_svrStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;

if ( dwCurrentState >= 0 ) g_svrStatus.dwCurrentState = dwCurrentState;

g_svrStatus.dwWin32ExitCode = dwWin32ExitCode;

if ( dwCheckPoint < 0 ) g_svrStatus.dwCheckPoint++;

else g_svrStatus.dwCheckPoint = dwCheckPoint;

// 设置服务状态

if ( !(fResult = SetServiceStatus(g_hStatus, &g_svrStatus)) )

StopService(TEXT("SetServiceStatus"));

return fResult != 0;

}

void StopService(LPTSTR lpszMsg) {

TCHAR chMsg[256];

HANDLE hEventSource;

LPTSTR lpszStrings[2];

g_errCode = GetLastError();

// 取得服务上的事件日志并生成日志文本

hEventSource = RegisterEventSource(NULL, g_szServieName);

_stprintf_s(chMsg, 256, TEXT("%s error:%d"), g_szServieName, g_errCode);

lpszStrings[0] = chMsg;

lpszStrings[1] = lpszMsg;

// 在指定的事件日志中加入记录

if ( hEventSource != NULL ) {

ReportEvent(

hEventSource, // 事件日志的句柄

EVENTLOG_ERROR_TYPE, // 写入日志的事件类型,此处为错误

0, // 事件分类,于事件源相关,可以为任意值

0, // 事件标识

NULL, // 用户的安全识别

2, // lpStrings参数中字符串的个数

0, // 事件相关数据的大小,字节为单位

(LPCTSTR*)lpszStrings, // lpStrings,用来拼装服务消息的字符串数组

NULL // 事件相关的二进制数据指针

);

// 关闭事件日志写入句柄

(VOID)DeregisterEventSource(hEventSource);

}

if ( waitHD ) TerminateThread(waitHD, 0);

// ClearP11Context(&g_p11Ctx);

// 在全局事件上产生一个信号

SetEvent(g_eventWait);

}

***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** *****************************************************************************************************

Part two:安装/卸载/调用服务主程序,Main函数入口

#define CountPra_zero 0

#define CountPra_one 1

#define CountPra_two 2

void ShowUseFun(int argc, char** argv)

{

printf("\tService Install&Uninstall Info:\n");

printf("\tInstall Service:");

printf("\t %s --install\n",argv[CountPra_zero]);

printf("\tUnInstall Service:");

printf("\t %s --uninstall\n",argv[CountPra_zero]);

}

int main(int argc,char* argv[])

{

if(CountPra_two==argc){

if(strcmp(argv[CountPra_one],"--install")==CountPra_zero)

InstallService();

else if(strcmp(argv[CountPra_one],"--uninstall")==CountPra_zero)

UnInstallService();

else{

printf("Input Error!\n");

ShowUseFun(argc, argv);

}

}

else if(CountPra_one==argc)

Run();

//ShowUseFun(argc, argv);

else

ShowUseFun(argc, argv);

return 0;

}

Part Three:头文件,平台/浏览器使用版本宏定义

#pragma once

// 以下宏定义要求的最低平台。要求的最低平台

// 是具有运行应用程序所需功能的Windows、Internet Explorer 等产品的

// 最早版本。通过在指定版本及更低版本的平台上启用所有可用的功能,宏可以

// 正常工作。

// 如果必须要针对低于以下指定版本的平台,请修改下列定义。

// 有关不同平台对应值的最新信息,请参考MSDN。

#ifndef WINVER // 指定要求的最低平台是Windows Vista。

#define WINVER 0x0600 // 将此值更改为相应的值,以适用于Windows 的其他版本。

#endif

#ifndef _WIN32_WINNT // 指定要求的最低平台是Windows Vista。

#define _WIN32_WINNT 0x0600 // 将此值更改为相应的值,以适用于Windows 的其他版本。#endif

#ifndef _WIN32_WINDOWS // 指定要求的最低平台是Windows 98。

#define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以适用于Windows Me 或更高版本。#endif

#ifndef _WIN32_IE // 指定要求的最低平台是Internet Explorer 7.0。

#define _WIN32_IE 0x0700 // 将此值更改为相应的值,以适用于IE 的其他版本。

#endif

Part Four:头文件,函数组件声明

#ifndef _SERVICE_H_

#define _SERVICE_H_

#include

#include

#include

#ifndef MAX_PATH

#define MAX_PATH 256

#endif

BOOL Run();//服务主程序入口

/* 安装服务*/

BOOL InstallService();

/* 卸载服务*/

BOOL UnInstallService();

/* 服务主体函数*/

VOID WINAPI ServiceMain(DWORD argc, LPTSTR* argv);;

/* 服务状态处理*/

DWORD WINAPI ServiceCtrlHandlerEx(

DWORD control, // 控制码

DWORD eventType, // 已发生的事件类型

LPVOID lpEnentData, // 事件数据,由dwControl和dwEventType决定其类型

LPVOID lpContext // 用户自定义数据,由RegisterServiceCtrlHandlerEx传入

);

/* 服务状态控制器处理函数*/

BOOL ReportStatusToSCMgr(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwCheckPoint);

/* 停止服务*/

void StopService(LPTSTR lpszMsg);

#endif// __SERVICE_H__

服务控制程序(新版)

1.目的 对顾客提供产品质量的保证,使其在使用产品前、中、后或公司规定的服务和顾客所提供的服务和信誉,并采取适当对策以提高顾客对我公司产品的满意程度。 2.适用范围 本程序适用于凡是与本公司建立业务关系的顾客及本公司认可的顾客的潜在产品质量保证活动。 3.定义 3.1服务――为满足顾客的需要,供方的顾客之间接触的活动以及供方内部活动所产生的结 果. 3.2售后服务――是指对已到达顾客处的产品的维护. 4.职责 4.1业务部负责产品销售以及作为与顾客沟通的窗户。 4.2质保部负责顾客抱怨的处理。 4.3制造部、业务部协助顾客抱怨的处理。 4.4技术课为顾客抱怨处理提供技术支援。 4.5总经理负责顾客抱怨处理过程的监督和处理的认可。 5.工作程序 5.1顾客服务管理 5.1.1业务部定期(每月至少一次)拜访顾客,并把对顾客的拜访情况进行登记填写《顾 客访问单》,并将顾客反映要求汇总转交质保部、技术课、制造部、管理部。

5.1.2本公司任何部门收到顾客的来电、来信、来访等均应立即通知业务部,由业务部 负责登记《顾客质量反馈单》,立即转交有关部门进行处理和传阅。 5.1.3业务部每季度向顾客发出《顾客满意度调查表》以了解顾客对本公司的质量、服 务、价格、供货状况是否满意,对于未达到顾客满意度目标则由业务部进行进一 步了解和调查原因,填写《顾客质量反馈单》,按5.1.2处理。 5.1.4由技术课负责向顾客提供必要的技术咨询,如产品介绍、产品选型建议提供技术 方面建议等,由技术课编制产品的使用/安装说明,其内容包括对预见的/使用不当 造成产品损坏情况,注明和正确处理使用时可能造成的危险和相关责任(尤其是 涉及产品安全性)。说明必要时采用中/英/德文,在产品投产前与顾客协商确定, 顾客要求时由业务部提供的品备件或调换过期/更改前产品,并对提供备件和调换 作记录等。 5.1.5按合同要求,提供顾客指定的服务,包括现场服务、提供备件等。 5.2顾客抱怨管理 5.2.1业务部根据顾客反映的质量问题,立即填写《顾客质量反馈单》,送质保部。 5.2.2质保部收到业务部转来的《顾客质量反馈单》后,进行调查分析,填写《顾客抱 怨处理单》,若有必要时可会同技术课、制造部共同分析,或派人前往顾客处进行 调查分析。 5.2.3顾客抱怨事件处理期限: a.急件,应在两天内作出处理; b.普通件,应在七天内作出处理。 c.经调查分析后若责任为本公司,或无法确认责任归属者,需根据调查结果或顾 客要求采取适当的对策,进行处理。 d.紧急对策:为能及时处理顾客抱怨而采取的临时解决方法。 1)质保部依顾客抱怨内容进行调查、分析(必要时可会同相关部门进行)后,

windows服务大全

windows服务大全 一、什么是系统服务 在Windows 2000/XP/2003系统中,服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序。通过网络提供服务时,服务可以在Active Directory(活动目录)中发布,从而促进了以服务为中心的管理和使用。 服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。 二、配置和管理系统服务 通过上面的阅读,相信你已对Windows系统服务有所了解,与系统注册表类似,对系统服务的操作,我们可以通过“服务管理控制台”来实现。 以管理员或Administrators组成员身份登录,单击“开始→运行”菜单项,在出现的对话框中键入“Services.msc”并回车,即可打开“服务管理控制台”。你也可以单击“开始→控制面板→性能和维护→管理工具→服务”选项来启动该控制台。 在服务控制台中,双击任意一个服务,就可以打开该服务的属性对话框。在这里,我们可以对服务进行配置、管理操作,通过更改服务的启动类型来设置满足自己需要的启动、关闭或禁用服务。 在“常规”选项卡中,“服务名称”是指服务的“简称”,并且也是在注册表中显示的名称;“显示名称”是指在服务配置界面中每项服务显示的名称;“描述”是为该服务作的简单解释;“可执行文件的路

径”即是该服务对应的可执行文件的具体位置;“启动类型”是整个服务配置的核心,对于任意一个服务,通常都有3种启动类型,即自动、手动和已禁用。只要从下拉菜单中选择就可以更改服务的启动类型。“服务状态”是指服务的现在状态是启动还是停止,通常,我们可以利用下面的“启动”、“停止”、“暂停”、“恢复”按钮来改变服务的状态。 下面让我们来看看3种不同类型的启动状态: 自动:此服务随着系统启动时启动,它将延长启动所需要的时间,有些服务是必须设置为自动的,如Remote Procedure Call(RPC)。由于依存关系或其他影响,其他的一些服务也必须设置为自动,这样的服务最好不要去更改它,否则系统无法正常运行。 手动:如果一个服务被设置为手动,那么可以在需要时再运行它。这样可以节省大量的系统资源,加快系统启动。 已禁用:此类服务不能再运行。这个设置一般在提高系统安全性时使用。如果怀疑一个陌生的服务会给你的系统带来安全上的隐患,可以先尝试停止它,看看系统是否能正常运行,如果一切正常,那么就可以直接禁用它了。如果以后需要这个服务,在启动它之前,必须先将启动类型设置为自动或手动。 单击“依存关系”选项卡,在这里我们可以看到,在顶端列表中指出运行选定服务所需的其他服务,底端列表指出了需要运行选定服务才能正确运行的服务。它说明了一些服务并不能单独运行,必须依靠其他服务。在停止或禁用一个服务之前,一定要看看这个服务的依存关系,

Windows服务列表

Windows服务列表 在优化Windows xp系统时,需要关闭一些不常用的服务,但是在众多的服务项目中,它们是做什么用的?能关吗?这往往困恼很多新手。这里收集到的这篇关于xp系统服务的详细解读资料,希望对需要优化系统的朋友有所帮助。 1、Alerter Alerter(警示器)服务的进程名是Service.exe(即启动这个服务后在后台运行的进程名称,可以通过任务管理器看到,下同)。Alerter服务的功能是,WinXP将系统上发生的与管理有关的事件以警示(Alert)信息传送至网络上指定的电脑或用户,例如当发生打印错误或硬盘即将写满等事件,这类警示信息由WinXP 的警示器服务(Alerter Service)收集、送出。尽管Alerter依存的服务并没有Messenger(信使)服务,但Alerter服务必须依靠后者才能送出信息,故在启动Alerter服务后还必须确定Messenger服务也在工作状态,而接收的电脑也必须启动Messenger服务。由于Alerter服务运行后,服务是用户可以发送“弹出(Pop-up)”信息给其他用户,这些信息有可能被攻击者用来实施攻击,如诱骗用户修改口令等,从而造成安全隐患。同时该服务使得用户账号泄漏,也有可能被攻击者利用来进行口令猜测攻击。所以对于家庭单机用户,甚至对于绝大多数小型的局域网来说,这个功能是完全可禁用的,不仅节省了系统资源和加快启动速度,也提高了机器的安全性。 2、Application Layer Gateway Service 简称“ALG”(应用层网关)的进程名是alg.exe,WinXP Home/Pro默认安装的启动类型为手动。ALG 又被称为代理服务器(Proxy Server),是网络防火墙从功能层面上分类的一种。当内部计算机与外部主机连接时,将由代理服务器担任内部计算机与外部主机的连接中继者。使用ALG的好处是隐藏内部主机的地址和防止外部不正常的连接,如果代理服务器上未安装针对该应用程序设计的代理程序时,任何属于这个网络服务的封包将无法通过防火墙。通俗点说,具体到ALG本身,它就是附带的Internet连接共享/防火墙的具体控管程序,如果你需要启动这二者,这个服务是必备的。当然,只有一台计算机的上网家庭可以考虑禁用这个服务,不过WinXP内置的防火墙效果还是不错的,如果不是坚持要用第三方的防火墙,还是开着它吧。 3、Application Management AppMent(应用程序管理服务)的进程名是Svchost.exe,WinXP Home/Pro默认安装的启动类型为手动,没有任何依存服务关系。从Win2000开始,微软引入了一种基于MSI文件格式(应用程序安装信息程序包文件)的全新、有效软件管理方案——即应用程序管理组件服务(Application Management),它不仅管理软件的安装、删除,而且可使用此项服务修改、修复现有应用程序,监视文件复原并通过复员排除基本故障等。通常这个服务我们保持其默认状态较好。 可能许多朋友都有印象,当年ACDSee4.0刚发布时,由于安装制作上的考虑不周,并没有考虑到那个时候大多数人的系统还并不支持MSI安装格式,结果只得又去下载安装一个名为Windows Installer的MSI 辅助文件才解决问题。通常以MSI文件格式安装的软件十分好认,比如说Office XP,当你安装后再次运行

顾客服务控制程序

顾客服务控制程序 编制审核批准日期日期日期顾客服务控制程序修改条款版本/ 修订修改内容描述生效日期批准审核修订文件标题顾客服务控制程序文件编号JRYG-P045版本A0制定单位开发部制定日期 xx/12/15页码3页1.0目的为加强与客户沟通,了解客户要求及其对本公司产品的满意情况当客户有投诉或要求退货时都能及时得到解决,以提升公司形彖,改善产品品质而更好的为客户服务。 2.0适用范围本程序适用于公司与客户沟通.服务等相尖过程控 3?0定义客户投诉:因本公司提供的产品存在品质问题或公司的服务态度不佳而引起客户不满意的所有信息。 4. 0职责4. 1管理代表?业务部跟单人员与客户沟通和协调磋商。 4.2品质部:分析处理客户投拆或退货,在执行客户投诉或退 货时作出必要的纠正及预防措施。 4.3业务部:负责与客户的联络,了解客户需求,并将客户的意向及时传递至相矢人员。将客户的投诉或退货反映给协理或品质部。 5.0作业程序5.1与客户的沟通5.1.1控制代表?业务部跟单人 员通过各种方式(电话?传真?邮件,面谈等)与客户进行沟通.了 解客户要求。

5.1.2业务部跟单人员明确客户产品信息及记录,应将公司客户的资料记录于〔客户资料统计表〕并妥善保存,如无法确定时,应与协理?控制代表商量决定。 5.1.3当客户就产品事项进行咨询时,业务人员及其它相尖人员应认真?热诚周到地为客户服务,不能以任何理由拒绝。 5.1.4为更好地与客户沟通,业务部门应准备相尖资料(如样品.图档等)以便客户鉴别确定。 5?1. 5当有客户来访时,业务部跟单人员或相矢人员应热情接待,充分了解客户的来访原因及要求,并尽量予配合。 5.1.6在合同洽谈过程中,当发现客户有变更的要求,能及时与客户沟通,把情况弄清楚,并通知有尖部门作好相应的措施。 5.1.7在沟通过程屮形成的合同,应按《客户要求控制程序》的要求进行。 5.2客户的反馈处理5. 2.1当客户对产品和服务提出意见(但没有投诉时)业务或相矢人员应认真记录,以使公司改进产品和服务。 5.2.2当客户电话联络的当事人不在的情况下,接电话者应将有矢要求记录并尽快通知相矢人员及时处理。 5.3客户投诉处理5. 3.1对于客户投诉(无论是以电话?口头等任何形式)的情况发生时,应将其内容记录于〔客户投诉处理 单〕,再交至品质部处理。 5. 3.2如投诉的问题不清楚,应马上与客户联系,找出真正内容

用C语言编写Windows服务程序的五个步骤

用C语言编写Windows服务程序的五个步骤 https://www.360docs.net/doc/df9374590.html,/Article/kfyy/cyy/jszl/200603/3842.html Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务。为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择。本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文本文件。最后,你可以用所学知识编写自己的 Windows 服务。 当初我写第一个NT 服务时,我到 MSDN 上找例子。在那里我找到了一篇Nigel Thompson 写的文章:“Creating a Simple Win32 Service in C++”,这篇文章附带一个 C++ 例子。虽然这篇文章很好地解释了服务的开发过程,但是,我仍然感觉缺少我需要的重要信息。我想理解通过什么框架,调用什么函数,以及何时调用,但 C++ 在这方面没有让我轻松多少。面向对象的方法固然方便,但由于用类对底层 Win32 函数调用进行了封装,它不利于学习服务程序的基本知识。这就是为什么我觉得 C 更加适合于编写初级服务程序或者实现简单后台任务的服务。在你对服务程序有了充分透彻的理解之后,用 C++ 编写才能游刃有余。当我离开原来的工作岗位,不得不向另一个人转移我的知识的时候,利用我用 C 所写的例子就非常容易解释 NT 服务之所以然。 服务是一个运行在后台并实现勿需用户交互的任务的控制台程序。Windows NT/2000/XP 操作系统提供为服务程序提供专门的支持。人们可以用服务控制面板来配置安装好的服务程序,也就是 Windows 2000/XP 控制面板|管理工具中的“服务”(或在“开始”|“运行”对话框中输入 services.msc /s——译者注)。可以将服务配置成操作系统启动时自动启动,这样你就不必每次再重启系统后还要手动启动服务。 本文将首先解释如何创建一个定期查询可用物理内存并将结果写入某个文本文件的服务。然后指导你完成生成,安装和实现服务的整个过程。 第一步:主函数和全局定义 首先,包含所需的头文件。例子要调用 Win32 函数(windows.h)和磁盘文件写入(stdio.h): 接着,定义两个常量:

Oracle监听器服务不能启动的7步解决法

Oracle监听器服务不能启动的7步解决法 200712 陈平 一、连接主机字符串,说没有监听器SVRMGR> connect internal/oracle@orcl; ORA-12541: TNS:no listener SVRMGR> 二、运行监听器,说地址的协议专用组件指定不正确C:>lsnrctl LSNRCTL for 32-bit Windows: Version 8.1.6.0.0 - Pro duction on 14-3月-2003 14:17 :51 (c) Copyright 1998, 1999, Oracle Corporation. All rights reserved. 欢迎来到LSNRCTL,请键入"help"以获得信息。LSNRCTL> status 连接至(DESCRIPTION=(A DDR ESS=(PROTOCOL=TCP)(HOST=robust)(PORT=1521))) TNS-01103: 地址的协议专用组件指定不正确 TNS-12541: TNS:无监听器 TNS-12560: TNS:协议适配器出现错误 TNS-00511: 无监听器32-bit Windows Error: 61: Unknown error LSNRCTL> start 启动tnslsnr:请稍候... Failed to start service, error 3. TNS-12536: TNS:可能会阻碍*作 TNS-12560: TNS:协议适配器出现错误 TNS-00506: *作可能阻塞32-bit Windows Error: 997: Unknown error LSNRCTL> 三、在控制面板中启动服务,出现以下错误服务:在本地计算机无法启动OracleOraHome81TNSListener 服务。错误3:系统找不到指定的路径而且OracleOraHome81TNSListener服务的可执行文件的路径是空的。四、进入注册表中修改ImagePath 在运行处执行REGEDIT进入注册表到HKEY_LO CA L_MAC HINESYSTEMCurrentControlSetServicesOracleOraHome81TNSListener 发现ImagePath关键值没有了,增加他,选择可扩充字符串值,编辑字符串的数值数据为:f:OracleOra81BINTNSLSNR 退出注册表。 五、再去启动服务,服务启动正常 六、启动监听器 C:>lsnrctl LSNRCTL for 32-bit Windows: Version 8.1.6.0.0 - Production on 14-3月-2003 14:42 :10 (c) Copyright 1998, 1999, Oracle Corporation. All rights reserved. 欢迎来到LSNRCTL,请键入"help"以获得信息。 LSNRCTL> start TNS-01106: 使用名称LISTENER的监听器已经启动 LSNRCTL> status 连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=robust)(PORT=1521))) LISTENER 的STATUS ------------------------ 别名LISTENER 版本TNSLSNR for 32-bit Windows: Version 8.1.6.0.0 - Produc tion 启动日期14-3月-2003 14:40:15 正常运行时间0 天0 小时2 分 6 秒跟踪级别off 安全性OFF SNMP OFF 监听器参数文件f:OracleOra81networkadminlistener.ora 监听器日志文件f:OracleOra81networkloglistener.log 服务摘要.. PLSExtProc 具有1个服务处理程序orc2 具有1个服务处理程序orcl 具有1个服务处理程序orcl 具有2个服务处理程序命令执行成功LSNRCTL> 七、再去连接,成功SVRMGR> connect internal/sys@orcl; 连接成功。

WINDOWS 2003 SERVER 进程详解

Windows2003Server进程详解 svchost.exe文件对那些从动态链接库中运行的服务来说是一个普通的主机进程名;最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行):smss.exe Session Manager csrss.exe子系统服务器进程winlogon.exe管理用户登录services.exe包含很多系统服务lsass.exe管理IP安全策略以及启动 ISAKMP/Oakley(IKE)和IP安全驱动程序。(系统服务) 产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务) svchost.exe包含很多系统服务svchost.exe SPOOLSV.EXE将文件加载到内存中以便迟后打印。(系统服务) explorer.exe资源管理器internat.exe托盘区的拼音图标附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):mstask.exe允许程序在指定时间运行。(系统服务) regsvc.exe允许远程注册表操作。(系统服务) winmgmt.exe提供系统管理信息(系统服务)。 inetinfo.exe通过Internet信息服务的管理单元提供FTP连接和管理。(系统服务)tlntsvr.exe允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)允许通过Internet信息服务的管理单元管理Web和FTP服务。(系统服务) tftpd.exe实现TFTP Internet标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务) termsrv.exe提供多会话环境允许客户端设备访问虚拟的Windows2000Professional 桌面会话以及运行在服务器上的基于Windows的程序。(系统服务) dns.exe应答对域名系统(DNS)名称的查询和更新请求。(系统服务) 以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉tcpsvcs.exe

服务过程控制程序(含记录)

服务过程控制程序 (依据GB/T19001-2016 idt ISO9001:2015标准编制) 1.0目的 识别并确定用户对技术服务的需求,为用户提供满意的技术服务。 2.0适用范围 适用于交付产品的开通、维修、改造和现场保障,技术培训、技术咨询,返厂设备(备件)维修、管理,备件及配件供应等技术服务,收集和分析产品使用和服务中的信息。 3.0术语 批量:单机产品生产了10台以上,系统产品生产2套以上。 4.0职责 各部门的职责见表1。 表1

5.0程序要求 5.1与用户沟通 5.1.1沟通的基本要求 遵循以“顾客为关注焦点”的原则,客户服务中心和各单位相关人员负责产品交付后与用户的沟通,接受处理用户的意见抱怨、投诉,解答用户提出的各种疑问。在满足用户技术服务的需求和期望的同时,及时把用户的需求和期望传递给公司相关部门。 5.1.2沟通的途径与方法 5.1.2.1客户服务中心按“服务信息管理系统”记录用户产品与服务等信息。 5.1.2.2客户服务中心和相关单位按“服务电话记录”、“服务传真记录”和“服务收件记录”、“服务发件记录”,并负责将用户需求、处理意见和处理结果记录在案。上述记录每年汇编成册,由客户服务中心负责保存,保存期为5年。5.1.2.3客户服务中心和各单位通过电话、传真等通信工具和其它渠道保持与用户的沟通和联系,定期组织对用户进行走访和调查等活动,主动与用户进行沟通。 5.2对服务人员的要求

5.2.1基本条件 a)具有初级以上专业技术职称,熟悉本公司产品的原理、使用和掌握维修技术; b)具备良好的从业心态和较强的沟通能力,工作吃苦耐劳,待人热情有礼; c)经过服务规范、产品技术等相关业务培训。 5.2.2其他要求 5.2.2.1参与服务的各类人员应认真履行质量职责,严格遵守《客户服务人员服务规范》等各项规章管理制度与法规。 5.2.2.2参与服务的各类人员在服务过程中要注重产品质量信息、用户使用信息和需求信息的收集,发现影响较大的问题要及时报告和反馈。 5.3技术服务流程 技术服务流程见图1。 5.4技术服务计划 5.4.1客户服务中心在每年四月份前,根据公司对服务过程的目标要求和产品订货(交付)信息及用户需求,组织拟制本年度“技术服务计划”,对全年的技术服务工作做总体安排。“技术服务计划”经客户服务中心领导审核,上报公司主管领导批准后,结合用户临时服务需求组织实施。 5.4.2“技术服务计划”应包括服务目标方针、举措和用户培训计划、用户走访计划以及培训教材编写计划及维修件预投计划等内容。 5.5技术服务实施 5.5.1技术服务的时机、方式、内容、要求 技术服务的时机、方式、内容、要求具体见表1。 5.5.2客户服务中心应保持工作日内服务热线电话(传真)、手机畅通和值班手

C#编写的windows服务用命令行安装的详细步骤

第一步:建立好服务,写好代码 第二步:安装 步骤:win+R -----→CMD -------输入microsoft的framework的相应版本的执行程序位置(如:C:\Windows\https://www.360docs.net/doc/df9374590.html,\Framework\v4.0.30319\InstallUtil.exe -----图一所示文件)-→空一格再输入你的服务的执行文件的路径(如:D:\zt_documents\服务\SSY.DealerLoginStateService.root\SSY.DealerLoginStateService\SSY.LoginStateService\SSY.LoginSt ateService\bin\Debug\XX.exe(这里的.exe写自己的项目的名称) 图三所示文件)--→回车(如果安装成功可以都到如图2所示的提示)

图一

图二

图三 第三步:启动服务 打开服务管理,找到你自己的服务启动 第四步:卸载 步骤:win+R -----→CMD -------输入microsoft的framework的相应版本的执行程序位置(如:C:\Windows\https://www.360docs.net/doc/df9374590.html,\Framework\v4.0.30319\InstallUtil.exe -u -----图一所示文件)-→空一格再输入-u -→空一格再输入你的服务的执行文件的路径(如:D:\zt_documents\服务\SSY.DealerLoginStateService.root\SSY.DealerLoginStateService\SSY.LoginStateService\SSY.LoginSt

Windows服务

Windows 服务应用程序介绍 Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。有关服务和 Windows 会话的更多信息,请参见MSDN Online 的 Platform SDK 文档中的“About Services”部分。 注意Windows 服务应用程序项目模板和相关的功能在 Visual Basic 和 Visual C# .NET 的标准版中不可用。有关更多信息,请参见Visual Basic 标准版功能或Visual C# 标准版的功能。 通过创建作为服务安装的应用程序,可以轻松地创建服务。例如,假设要监视性能计数器数据并对阈值做出反应。可以编写一个侦听性能计数器数据的 Windows 服务应用程序、部署该应用程序并开始收集和分析数据。 将服务创建为 Microsoft Visual Studio .NET 项目,并在其中定义特定代码,以控制可以发送到服务的命令和接收到这些命令时采取的操作。可以发送到服务的命令包括开始、暂停、继续和停止该服务,以及执行自定义命令。 创建并生成了应用程序后,可以通过运行命令行实用工具InstallUtil.exe 并将路径传递给服务的可执行文件,或通过使用 Visual Studio 的部署功能来安装该应用程序。然后可以使用服务控制管理器启动、停止、暂停、继续和配置服务。这些任务中有许多也可以在“服务器资源管理器”的“服务”节点中或通过使用ServiceController类来实现。 服务应用程序与其他 Visual Studio .NET 应用程序对比 服务应用程序与其他许多项目类型的功能在几个方面有所不同: ?必须将服务应用程序项目创建的已编译可执行文件安装在服务器上,此项目才能以有意义的方式运行。不能通过按 F5 键或 F11 键来调试或运行服务应 用程序;不能立即运行服务或进入并单步执行其代码。相反,必须安装和启动服务,然后将一个调试器附加到服务的进程中。有关更多信息,请参见调试 Windows 服务应用程序。 ?与一些类型的项目不同,对于服务应用程序,必须为其创建安装组件。安装组件在服务器上安装和注册服务,并用 Windows 服务控制管理器为服务创 建一个项。有关更多信息,请参见将安装程序添加到服务应用程序。

售后服务工作流程及管理制度

售后服务工作流程及管理制度 一、售后服务管理目的 为规范售后服务工作,满足用户的的需求,保证用户在使用我公司产品时,能发挥最大的效益,提高用户对产品的满意度和信任度, 提咼产品的市场占有率,制定售后服务管理制度和工作流程。 二、售后服务内容(售后服务涉及到第三方供方的由其提供售后服务承诺) 1、根据合同及技术协议的要求,对保修期内,因产品的制造,装配及材料等质量问题造成各类故障或零件损坏,无偿为用户维修或更换相应零配件。 2、对保修期外的产品,通过销售中心报价(包括零配件,人员出差等)费用迅速,果断排除故障,让用户满意。 3、对合同中要求进行安装调试的,在规定的时间内,组织人员对产品进行安装调试及对用户工作人员进行培训。 4、定期组织人员对重点销售区域和重点客户进行走访,了解产品的使用情况,征求用户对产品在设计,装配,工艺等方面的意见。 5、宣传我公司的产品及配件。 三、售后服务的标准及要求 1、售后服务人员必须树立用户满意是检验服务工作标准的理念, 要竭尽全力为用户服务,觉不允许顶撞用户和与用户发生口角。 2、在服务中积极,热情,耐心的解答用户提出的各种问题,传授维修保养常识,用户问题无法解答时,应耐心解释,并及时报告公司总部协助解决。 3、服务人员应举止文明,礼貌待人,主动服务,和用户监理良好的关系。

4、接到服务信息,应在24小时内答复,需要现场服务的,在客户规定的时间内到达现场,切实实现对客户的承诺。 5、决不允许服务人员向用户索要财务或变相提出无理要求 6、服务人员对产品发生的故障,要判断准确,及时修复,不允许同一问题重复修理的情况。 7、服务人员完成工作任务后,要认真仔细填写“售后服务报告单”, 必须让用户填写售后服务满意度调查表。 8对于外调产品,或配套件的质量问题,原则上由售后服务总部协调采购部由外协厂家解决。 9、重大质量问题,反馈公司有关部门予以解决。 10、建立售后服务来电来函的登记,做好售后服务派遣记录,以及费用等各项报表。 四、管理考核办法 1、投诉方式:用户以来电、来函、来人方式反应服务人员工作中

C# Windows服务开发

一、VS2012下开发Windows服务 1、打开VS2012,新建项目,选择Windows服务,此处我以开发一个定时自动发送邮件的服务来做介绍,如下图: 2、创建好后,编译器会自动创建一些文件,其中会有一个Service1类文件,该文件是服务的关键,我们可以将其重命名,这里我将其命名为MainService,如下图: 3、在MainService的后台代码中会自动创建一些方法,包括服务的启动和停止方法等,如下图:

4、将服务启动时要执行的操作放在OnStart方法中,服务停止时要执行的操作放在OnStop方法中 5、在MainService.cs设计器中,单击邮件,选择选择添加安装程序,便会生成一个ProjectInstaller.cs的文件,如图所示: 6、设置ProjectInstaller.cs的属性,切换到属性设置界面 (1)选择serviceInstaller1,并设置相应属性如下图所示:

其中:Description属性用于设置服务安装之后再服务界面上显示的描述信息; DisplayName属性用于设置服务安装之后再服务界面上显示的服务名称; ServiceName属性用于设置服务的名称,此名称必须与ServiceBase类的ServiceName 属性设置的名称一致,该名称用于系统标识此服务,可以理解成DisplayName为ServiceName的别名; StartType属性用于设置服务的启动方式。 (2)选择serviceProcessInster1,设置其属性如下:

此处主要设置Account属性,该属性用来指示运行该服务时的账户类型,一般设置为LocalSystem。 7、到此步一个简单的windows服务就创建好了,编译程序会生成一个EmailService.exe 的可执行文件,接下来便是安装服务了。 Windows服务的安装有多种方式,比如可以再cmd下调用命令来安装,也可以写一个安装程序来安装,此处介绍使用bat批处理来安装。 1、安装Windows服务需要用到InstallUtil.exe程序,该程序位于: C:\Windows\https://www.360docs.net/doc/df9374590.html,\Framework64\v4.0.30319 .NET4.0 C:\Windows\https://www.360docs.net/doc/df9374590.html,\Framework64\v2.0.50727 .NET2.0 2、我们可以再批处理命令中直接调用以上目录中的InstallUtil.exe程序,也可以将该程序拷贝到应用程序的目录下,此处我选择奖该程序拷贝到应用程序的目录下,同时将批处理文件也创建在应用程序的的目录下,如下图所示:

plsql远程访问数据库 解决ora12541:TNS无监听程序

本机为win7 32位系统,为了学习oracle,装了个vbox虚拟机,再装了个win7虚拟机,内装oracle 11g(win7如果要装10g,要选择vista版本,win版本会安装报错).oracle11g安装完后有报了个错误,当时没注意,现在也忘了什么错了,但是不影响使用.后来想在本机安装plsql来远程连接虚win7上的oracle.查了一些资料,步骤如下: 1.下载plsql,安装. 2.下载Instant Client,点击下载,下载第一个basic就行了,下载完解压缩,以放到主win7 d盘根目录为 例:d:\instantclient_11_2 3.在d:\instantclient_11_2新建tnsnames.ora,用记事本编辑. 4.到虚win7上的oracle安装目录找到…\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,打开,比如数据库实例是orcl,找到如下代码,拷贝到本机d:\instantclient_11_2\tnsnames.ora里 ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 虚拟机IP)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 5.添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径d:\instantclient_11_2\tnsnames.ora,plsql通过这个找到orcl连接字符串 6.添加一个环境变量NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK 7.打开PLSQL,不用登陆,工具-首选项-ORACLE-连接: 勾选检查连接 Oracle主目录: d:\instantclient_11_2 OCI库: d:\instantclient_11_2\oci.dll 经过以上几步之后,重启PLSQL,问题来了,报错:ora-12541:TNS:无监听程序. ping是可以ping得通的,虚win7上的监听也开着.经过不懈的努力,多次试验终于解决了: 1.虚拟机网络选择桥接,并在虚拟机内网络连接IPV4设置静态IP IP地址:192.168.1.111 (111可修改成自己的 1-255) 子网掩码:255.255.255.0 默认风头:192.168.1.1 首选DNS服务器:192.168.1.1 修改完记得主win7上 ping 192.168.1.111 ping得通再继续往后.

部门业务管理系统流程及节点控制要求

业务管理流程及节点控制要求 节点1、委托指令登记 合格标准 所有业务1个工作日内都应该到商务部登记,并领取商务编号 应做什么 不论何种业务来源,如按年度计划、总经理指令、主任、项目经理电话通知、甲方电话、检验员自主承接等等,都必须到商务部登记,并领取商务号。 不应做什么 未到商务登记,或未领取商务号,开展检验检测业务。 节点2、总师办接到商务号下达委托指令到检验部 合格标准 总师办主任接到商务号,1个工作日内完成下达指令到检验部主任(副) 应做什么 总师办主任应根据业务范围,业务性质,业务来源,统筹下达任务给相应部门完成指令下达应在接到商务号1个工作日内完成 不应做什么 总师办主任不应耽误指令的下达 无故拒绝商务指令 节点3、检验部主任(副)接到总师办指令确定项目负责人,并到总师办文员领取项目流水号 合格标准 1个工作日内检验部主任(副)应及时领取项目流水号并确定合适的项目负责人应做什么 检验部主任应在1个工作日内到总师办文员领取项目流水号并确定项目负责人,应根据各负责人完成前一项目的先后顺序, 考虑负责人的胜任程度。 不应做什么 不领取项目流水号直接安排项目负责人 延迟项目指令的下达 项目负责人上一项目未完成,就下达指令(如确需发现需说明申请总师办主任并经同意) 把项目下达给无相应资质的项目负责人 无故拒绝总师办指令 节点4、确定项目计划与项目团队 合格标准 1个工作日内,根据项目情况,确定参与人员,列出工期计划 应做什么 跟检验部主任(副)商定参与人员,工期计划经过检验部主任(副)同意 不应做什么

节点5、原始资料调查 合格标准 项目负责人3个工作日内(大修项目10个工作日内),完成原始资料调查 应做什么 完成原始记录资料准备,并安排人员进行现场确认 不应做什么 不进行原始资料调查,直接安排现场检验 节点6、编制检验方案 合格标准 原始资料调查完成后,项目负责人3个工作日内(大修项目10个工作日内),完成检验方案编制 应做什么 关于压力容器本所压力容器定期检验工艺可作为我所压力容器定期检验的通用方案,在实际检验中,检验人员可根据压力容器的注册情况、损伤模式及失效模式等适当增加检验项目、内容和检测比例。当以下情况之一时,应编制专用检验方案 1、第三类压力容器的定期检验 2、设计文件、检验标准、规范(规定)中对定期检验有特殊或附加要求,且本所压力容器 3、定期检验工艺未涉及或规定不明确时; 4、上次检验报告对本次检验提出特殊要求时; 5、特种设备安全监察机构有要求时; 6、使用单位有要求时; 7、检验部门或检验人员认为需要时。 关于压力管道GC1逐条做方案,GC2、GC3按类完成检验方案。 检验方案应考虑设备的实际情况,如高度、保温层等等 不应做什么 该做检验方案而不做检验方案,直接进行检验 节点7、审核 合格标准 检验责任师二个工作日内(大修项目5个工作日内)完成原始记录、检验方案的审核 应做什么 检验责任师应审核记录报告的现场作业满足方案、作业指导书的要求、必要时有审核记录 不应做什么 直接签字审核 节点8、批准 合格标准 技术负责人二个工作日内(大修项目5个工作日内)完成原始记录、检验方案的批准工作

Windows服务开发实例

C#Windows服务程序开发实例介绍 C#Windows服务程序开发实例程序的目的和用途: 很多开机启动程序仅仅加在启动项里面,只有登陆后才真正启动。windows服务在开机未进行用户登录前就启动了。正是利用这一点,解决一些服务器自动重启后特定软件也自动启动的问题。 C#Windows服务程序开发1. 新建一个服务项目 visual C#----windows----windows服务; C#Windows服务程序开发2. 添加一个dataset(.xsd),用于存储启动目标的路径,日志路径等。 在dataset可视化编辑中,添加一个datatable,包含两列 StartAppPath 和LogFilePath。分别用于存储目标的路径、日志路径。 我认为利用dataset.xsd存储配置参数的优势在于可以忽略xml解析的具体过程直接使用xml文件。 在dataset中提供了ReadXml方法用于读取xml文件并将其转换成内存中的一张datatable表,数据很容易取出来!同样,WriteXml方法用于存储为xml格式的文件,也仅仅需要一句话而已。 C#Windows服务程序开发3. program.cs文件作为程序入口,代码如下: https://www.360docs.net/doc/df9374590.html,ing ; https://www.360docs.net/doc/df9374590.html,ing System.ServiceProcess; https://www.360docs.net/doc/df9374590.html,ing System.Text; https://www.360docs.net/doc/df9374590.html,space WindowsServices_AutoStart 5.{ 6.static class Program 7.{ 8./// ﹤summary﹥ 9./// 应用程序的主入口点。 10./// ﹤/summary﹥ 11.static void Main() 12.{ 13.ServiceBase[] ServicesToRun;

Oracle11g监听程序当前无法识别连接描述符中请求的服务

解决方法一: 一:打开cmd,输入sqlplus system/***** (注****表示密码) 能连接Oracle数据库;但输入sqlplus system/******@orcl11g 点回车则显示监听程序当前无法识别连接描述中请求的服务; 二:使用SQL/PLUS工具连接也是显示一样的结果监听程序当前无法识别连接描述中请求的服务; 三:解决方法: i): 打开这个文件D:\oracle_11g\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora; ii):找到这样段语句 [plain]view plaincopy (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = D:\oracle_11g\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONL Y:D:\oracle_11g\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) 然后在这后面添加这样语句: [plain]view plaincopy (SID_DESC = (GLOBAL_DBNAME = orcl11g) (ORACLE_HOME = D:\oracle_11g\product\11.2.0\dbhome_1) (SID_NAME = orcl11g) ) 最后显示如下: iii)自己按照IP或者数据库实例名修改后保存,再重启数据库监听服务;运行sqlplus

system/******@orcl11g 连接成功; 解决方法二: 若以上办法不能解决问题,则需要分别修改listener.ora与tnsnames.ora两个文件,将监听地址HOST改成计算机名(计算机-属性-高级系统设置-计算机名),listener.ora有一处地方需修改,tnsnames.ora有两处地方需修改,修改完成后最后重启数据库服务(包括监听服务与数据库服务);

Windows可以停止的服务进程

Windows可以停止的服务进程 2009.8.8 今天实验室多出来一台电脑,刚好在我的桌上,我就脸皮厚下默认确实是给俺分配的了,再也不用每天来回背着笔记本了。但可能由因此公用的电脑,运行的速度可想而知了,桌面上一堆的文件夹,启动项也是电脑上装的软件开机时都会自动启动一遍,任务治理器也是有专门多惊奇的进程。 Windows有专门多不重要的服务进程,这些进程能够停止关闭的,有的进程可能100年也用不到。在运行里直截了当输入services.msc命令能够打开服务选项,右击相关服务进程,属性勾选“已禁用”,即可终止。超级兔子或优化大师也有服务查看停止功能。 能够禁用的系统服务进程(zz) Alerter 微软:通知选取的使用者及运算机系统治理警示。假如停止那个服务,使用系统治理警示的程序将可不能收到通知。假如停用那个服务,所有依存于它的服务将无法启动。 补充:一样家用运算机全然不需要传送或接收运算机系统治理来的警示(Administrative Alerts),除非你的运算机用在局域网络上 依存:Workstation 建议:可禁止 Application Layer Gateway Service 微软:提供因特网联机共享和因特网联机防火墙的第三方通讯协议插件的支持 补充:假如你不使用因特网联机共享(ICS) 提供多台运算机的因特网存取和因特网联机防火墙(ICF) 软件你能够关掉 依存:Internt Connection Firewall (ICF) / Internet Connection Sharing (ICS) 建议:已停用 Application Management (应用程序治理) 微软:提供指派、发行、以及移除的软件安装服务。 补充:如上说的软件安装变更的服务 建议:手动 Automatic 更新 微软:启用重要Windows 更新的下载及安装。假如停用此服务,能够手动的从Windows 更新网站上更新操作系统。 补充:承诺Windows 于背景自动联机之下,到Microsoft Servers 自动检查和下载更新修补程序 建议:已停用 ClipBook (剪贴簿) 微软:启用剪贴簿检视器以储存信息并与远程运算机共享。假如那个服务被停止,剪贴簿检视器将无法与远程运算机共享信息。假如那个服务被停用,任何明确依存于它的服务将无

相关文档
最新文档