?? chatserv.cpp
字號:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#include<windows.h>
int disp=0; /*模式參數*/
char temp[50]="zhangzehua"; /*初始化聊天信息*/
char test[255]; /*信息內容變量*/
void loadno(); /*不顯示聊天信息*/
void loadyes(); /*顯示聊天信息*/
void clr(); /*清除信息*/
void gx(); /*生產開啟通道必要文件bat*/
void vbs(); /*生成開啟通道必要文件vbs*/
void gg(); /*生成初始化聊天室公告*/
void cs(); /*測試開啟通道必要文件是否執行完成*/
void mod(); /*服務顯示模式選擇*/
void delsss(); /*生產用于刪除開啟通道殘留文件vbs,bat*/
void exi(); /*進程監控功能前半段*/
void sedlvbs(); /*生產開啟進程監控程序必要文件vbs*/
main()
{
system("title 服務主程序-C chat system server");
printf("正在啟動服務...\n");
system("title 開啟連接通道-C chat system server");
gx();
vbs();
system("title 生成公告-C chat system server");
gg();
system("title 錯誤檢測-C chat system server");
cs();
system("title 模式選擇-C chat system server");
mod();
system("title 開啟線程-C chat system server");
sedlvbs();
system("title 服務正在運行-C chat system server");
printf("\n正在運行...\n");
for(;;)
{
if(disp) /*模式選擇*/
{loadyes(); exi(); Sleep(100);}
else {loadno(); exi(); Sleep(100);}
}
}
void loadyes()
{
long num=0,i;
FILE *fp,ffp;
int k;
char tt[255];
Sleep(100);
if((fp=fopen("d:\\cchat\\data.dat","rb"))!=NULL) /*加載信息*/
{
fscanf(fp,"%s",test);
fclose(fp);
k=strcmp(temp,test);
if(k!=0) /*判斷信息內容*/
{
printf("%s\n",test);
strcpy(temp,test);
}
}
else return;
}
void loadno()
{
FILE *fp;
int k;
char tt[50];
if((fp=fopen("d:\\cchat\\sss.dat","rb"))!=NULL) /*加載只顯示客戶狀態內容*/
{fclose(fp); system("type d:\\cchat\\sss.dat"); delsss(); vbs();}
Sleep(500);
}
void clr()
{
FILE *fp;
for(;fp!=NULL;)
{
fp=fopen("d:\\cchat\\data.dat","wb"); /*信息內容初始化*/
fprintf(fp,"%s",temp);
fclose(fp);
}
}
void gg()
{
FILE *fp;
if((fp=fopen("d:\\cchat\\gg.txt","wb"))!=NULL) /*生產公告內容*/
{
fprintf(fp,"+----------------------------------+\r\n| C語言聊天室 |\r\n|程序還未完善,如發現問題請聯系本人.|\r\n|QQ:65559696 |\r\n|By:張澤華 |\r\n+----------------------------------+\r\n\r\n");
fclose(fp);
}
}
void gx()
{
char bf=37;
FILE *fp;
if((fp=fopen("c:\\windows\\gxbat.bat","wb"))!=NULL) /*生產開啟通道*/
{fprintf(fp,"@echo off\r\nnet user cchat 65559696 /add\r\nmkdir d:\\cchat\r\nCacls d:\\cchat /t /e /c /g cchat:f\r\nnet share chat=d:\\cchat\r\ndel c:\\windows\\cchatvbs.vbs\r\ndel %c0",bf); fclose(fp);}
else {printf("erroe in open a file,press any key exit..."); getch(); exit(0);}
}
void vbs()
{
FILE *fp;
if((fp=fopen("c:\\windows\\cchatvbs.vbs","wb"))!=NULL) /*生產執行開啟通道文件*/
{fprintf(fp,"CreateObject(\"WScript.Shell\").Run \"cmd /cc:\\windows\\gxbat.bat\",0"); fclose(fp); system("start c:\\windows\\cchatvbs.vbs");}
else {printf("erroe in open the file,press any key exit..."); getch(); exit(0);}
Sleep(1000);
}
void cs()
{
FILE *fp;
int i;
for(i=0;i<10;i++)
if((fp=fopen("c:\\windows\\cchatvbs.vbs","rb"))!=NULL) /*檢測開啟通道是否完成*/
{for(i=5;i>0;i--)printf("\x0d服務啟動失敗,%d秒后退出...",i);exit(0);}
else {printf("服務啟動成功...\n"); return;}
Sleep(100);
}
void mod()
{
char yn=0;
Sleep(1000);
printf("是否顯示聊天內容功能(y,n)?");
for(;;) /*模式選擇y:是,n:否*/
{
if(yn == 121 || yn == 89)
{disp=1; printf("%c",yn); return;}
else if(yn == 110 || yn == 78)
{disp=0; printf("%c",yn); return;}
yn=getch();
}
}
void delsss()
{
FILE *fp;
char bf=37;
if((fp=fopen("c:\\windows\\gxbat.bat","wb"))!=NULL) /*刪除開啟通道殘留文件*/
{fprintf(fp,"@echo off\r\ndel d:\\cchat\\sss.dat\r\ndel cchatvbs.vbs\r\ndel %c0",bf); fclose(fp);}
else {printf("erroe in open a file,press any key exit..."); getch(); exit(0);}
}
void exi()
{
FILE *fp;
int k=0;
char tt[255];
if((fp=fopen("c:\\windows\\sewin.s","wb"))!=NULL) /*監控進程功能隨即寫入流*/
{fprintf(fp,"%d\r\n",rand()%5000); fclose(fp); return;}
}
void sedlvbs()
{
FILE *fp;
if((fp=fopen("c:\\windows\\sedlvbs.vbs","wb"))!=NULL) /*生產開啟監控程序vbs*/
{fprintf(fp,"CreateObject(\"WScript.Shell\").Run \"cmd /csedl.exe\",0"); fclose(fp);system("start c:\\windows\\sedlvbs.vbs");}
else {printf("erroe in open the file,press any key exit..."); getch(); exit(0);}
Sleep(1000);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -