一个服务状态监控程序,用C/C++ 或者C#实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个服务状态监控程序,用C/C++ 或者C#实现相关的知识,希望对你有一定的参考价值。

简要说明:实现类似windows自带的管理工具的功能,能够查看本机中服务以及服务的状态
重要功能:
1)服务列表获取
2)服务状态获取
希望哪位能够给出相应的编写思路或者代码,谢谢

参考技术A 维护电脑当然要杀毒软件了,你可以用卡巴+360----卡巴杀毒第一,360维护系统漏洞不错。也可以瑞星+360+天网防火墙---瑞星可以开机杀毒,如果是中毒不能开机就可用了(这功能江民也有),我用的就是这套。还有什么诺顿呀这些,都有点出名,你看吧!当然不能装两个杀毒软件,会冲突的。一冲突多半就死机了。个人觉得金山毒霸不好!
另外就是装一些清理工具,优化大师,超级兔子什么的,给你个批处理文件,清理缓存文件比较快:
@echo off
echo 清除系统垃圾过程中,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清除系统垃圾完成!按任意键继续……感谢您的使用!!
echo. & pause
保存在记事本中,改为*.bat就可以了。
另外学编程的话,你可以先从C学起,VB就怕不用了,这样往下C++,C#,就要容易多了。
你说你会Dos,可不可以教我点,我是不会呀!

C函数指针状态机实现

C函数指针状态机实现

有限状态机(finite state machine)简称FSM,表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用。FSM是一种逻辑单元内部的一种高效编程方法,在服务器编程中,服务器可以根据不同状态或者消息类型进行相应的处理逻辑,使得程序逻辑清晰易懂。

#include <stdio.h>

//函数指针实现FSM
enum year_state

    SPRING = 1,
    SUMMER,
    AUTUMN,
    WINTER
;

enum year_event

    EVENT1 = 1,
    EVENT2,
    EVENT3,
    EVENT4
;

typedef struct FsmTable_s

    int event; // 事件
    int CurState; // 当前状态
    void (*eventActFun)(); //函数指针
    int nextState; // 下一个状态
 FsmTable_t;

void spring_thing()

    printf("this is spring\n");

void summer_thing()

    printf("this is summer\n");

void autumn_thing()

    printf("this is autumn\n");

void winter_thing()

    printf("this is winter\n");


FsmTable_t year_table[] = 

    //到来的事件,当前的状态,将要要执行的函数,下一个状态
     EVENT1,  SPRING,    summer_thing,  SUMMER ,
     EVENT2,  SUMMER,    autumn_thing,  AUTUMN ,
     EVENT3,  AUTUMN,    winter_thing,  WINTER ,
     EVENT4,  WINTER,    spring_thing,  SPRING ,
    //add your codes here
;

typedef struct FSM_s

    int curState;//当前状态
    FsmTable_t * pFsmTable;//状态表
    int size;//表的项数
 FSM_t;

/*状态机注册,给它一个状态表*/
void FSM_Regist(FSM_t *pFSM, FsmTable_t *pFsmTable)

    pFSM->pFsmTable = pFsmTable;


/*状态迁移*/
void FSM_StateTransfer(FSM_t* pFsm, int state)

    pFsm->curState = state;


/*事件处理*/
void FSM_EventHandle(FSM_t* pFsm, int event)

    FsmTable_t* pActTable = pFsm->pFsmTable;
    void (*eventActFun)() = NULL;  //函数指针初始化为空
    int NextState;
    int CurState = pFsm->curState;
    int g_max_num = pFsm->size;
    int flag = 0; //标识是否满足条件
    int i;

    for (i = 0; i < g_max_num; i++)
    
        if (event == pActTable[i].event && CurState == pActTable[i].CurState)
        
            flag = 1;
            eventActFun = pActTable[i].eventActFun;
            NextState = pActTable[i].nextState;
            break;
        
    

    if (flag)
    
        if (eventActFun)
        
            eventActFun();
        
        FSM_StateTransfer(pFsm, NextState);
    
    else
    
        printf("There is no match\n");
    


int main()

    FSM_t year_fsm;
    FSM_Regist(&year_fsm, year_table);
    year_fsm.curState = SPRING;
    year_fsm.size = sizeof(year_table)/sizeof(FsmTable_t);

    printf("\n-------1--init spring------\n");
    printf("state:%d\n",year_fsm.curState);

    printf("\n-------2--spring->summer------\n");
    FSM_EventHandle(&year_fsm,EVENT1);
    printf("state:%d\n",year_fsm.curState);

    printf("\n-------3--summer->autumn------\n");
    FSM_EventHandle(&year_fsm,EVENT2);
    printf("state:%d\n",year_fsm.curState);

    printf("\n-------4--autumn->winter------\n");
    FSM_EventHandle(&year_fsm,EVENT3);
    printf("state:%d\n",year_fsm.curState);

    printf("\n-------5--winter->spring------\n");
    FSM_EventHandle(&year_fsm,EVENT4);
    printf("state:%d\n",year_fsm.curState);

    printf("\n-------6--receive EVENT2 not EVENT1------\n");
    FSM_EventHandle(&year_fsm,EVENT2);
    printf("state:%d\n",year_fsm.curState);

 

以上是关于一个服务状态监控程序,用C/C++ 或者C#实现的主要内容,如果未能解决你的问题,请参考以下文章

怎么用JAVA能获取系统当前鼠标指针样式(图案),如果能怎么获取?如果不能用C/C++获取也可以

C#进度条怎么用 / C#progressBar的用法

用C/C++写一个小程序读取串口接收到的数据

C/C++中 如何只允许运行一个程序实例?多列一些方法。

linux自动启动程序用ctrl+c无法终止

用c/c++作为游戏代码编程的游戏引擎