论坛: 编程破解 标题: 仿win变幻线屏保的 for dos 程序 复制本贴地址    
作者: newbie [newbie]    论坛用户   登录
我学c不久,这是帮一个学校编的dos下屏保的东东,密码部分我没放上来

环境
----
borland c++ 3.1 for dos

前提部分
--------
BC路径\bgi> objbgi egavga
BC路径\lib> tlib graphics+..\egavga.obj

BC环境下加入链接 graphicslib

代码:

#include <dos.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <graphics.h>

void help(void);
void lscr(void);

void main(int argc, char *argv[])
{
 if(argc == 2 && (!strcmp(argv[1], "/h") || !strcmp(argv[1], "/?"))) { help(); exit(1); }
 lscr();
}

void help(void)
{
 printf("\nWriten by newbie at 2002-11-26\n");
}

void lscr(void)
{
 int gdriver = DETECT, gmode, d1 = 0, d2 = 50, c1, c2, i, j, ranoff = 4;
 int x[5], y[5], ox[5][5], oy[5][5], xoff[5], yoff[5], xmax, ymax;
 int xx[5], yy[5], oxx[5][5], oyy[5][5], xxoff[5], yyoff[5];

 registerbgidriver(EGAVGA_driver);
 initgraph(&gdriver, &gmode, "");

 xmax = getmaxx();
 ymax = getmaxy();

 for(i = 0; i < 5; i++) {
for(j = 0; j < 5; j++) {
ox[i][j] = 0; oy[i][j] = 0;
oxx[i][j] = 0; oyy[i][j] = 0;
}
 }

 randomize();

 for(i = 0; i < 5; i++) {
x[i] = ox[0][i] = random(xmax); y[i] = oy[0][i] = random(ymax);
xoff[i] = 4 + random(ranoff); yoff[i] = 3 + random(ranoff);
xx[i] = oxx[0][i] = random(xmax); yy[i] = oyy[0][i] = random(ymax);
xxoff[i] = 4 + random(ranoff); yyoff[i] = 3 + random(ranoff);
 }

 c1 = 1 + random(15);
 c2 = 1 + random(15);
 while(!kbhit()) {
for(i = 0; i < 5; i++) {
if(x[i] <= 0) { xoff[i] = 3 + random(ranoff); }
if(y[i] <= 0) { yoff[i] = 3 + random(ranoff); }
if(x[i] >= xmax) { xoff[i] = 3 + random(ranoff); xoff[i] = -xoff[i]; }
if(y[i] >= ymax) { yoff[i] = 3 + random(ranoff); yoff[i] = -yoff[i]; }
if(xx[i] <= 0) { xxoff[i] = 3 + random(ranoff); }
if(yy[i] <= 0) { yyoff[i] = 3 + random(ranoff); }
if(xx[i] >= xmax) { xxoff[i] = 3 + random(ranoff); xxoff[i] = -xxoff[i]; }
if(yy[i] >= ymax) { yyoff[i] = 3 + random(ranoff); yyoff[i] = -yyoff[i]; }
}

for(i = 0; i < 5; i++) {
x[i] = x[i] + xoff[i];
y[i] = y[i] + yoff[i];
xx[i] = xx[i] + xxoff[i];
yy[i] = yy[i] + yyoff[i];
}

if(d1 > 100) {
d1 = 0;
c1 = 1 + random(15);
while(c1 == c2) c1 = 1 + random(15);
}
if(d2 > 100) {
d2 = 0;
c2 = 1 + random(15);
while(c1 == c2) c2 = 1 + random(15);

}

setcolor(c1);
line(x[0], y[0], x[1], y[1]);
line(x[1], y[1], x[2], y[2]);
line(x[2], y[2], x[3], y[3]);
line(x[3], y[3], x[4], y[4]);
line(x[4], y[4], x[0], y[0]);

setcolor(c2);
line(xx[0], yy[0], xx[1], yy[1]);
line(xx[1], yy[1], xx[2], yy[2]);
line(xx[2], yy[2], xx[3], yy[3]);
line(xx[3], yy[3], xx[4], yy[4]);
line(xx[4], yy[4], xx[0], yy[0]);

setcolor(0);
line(ox[0][4], oy[0][4], ox[1][4], oy[1][4]);
line(ox[1][4], oy[1][4], ox[2][4], oy[2][4]);
line(ox[2][4], oy[2][4], ox[3][4], oy[3][4]);
line(ox[3][4], oy[3][4], ox[4][4], oy[4][4]);
line(ox[4][4], oy[4][4], ox[0][4], oy[0][4]);

line(oxx[0][4], oyy[0][4], oxx[1][4], oyy[1][4]);
line(oxx[1][4], oyy[1][4], oxx[2][4], oyy[2][4]);
line(oxx[2][4], oyy[2][4], oxx[3][4], oyy[3][4]);
line(oxx[3][4], oyy[3][4], oxx[4][4], oyy[4][4]);
line(oxx[4][4], oyy[4][4], oxx[0][4], oyy[0][4]);

for(i = 0; i < 5; i++)
for(j = 4; j > 0; j--) {
ox[i][j] = ox[i][j - 1]; oy[i][j] = oy[i][j - 1];
oxx[i][j] = oxx[i][j - 1]; oyy[i][j] = oyy[i][j - 1];
}

for(i = 0; i < 5; i++) {
ox[i][0] = x[i]; oy[i][0] = y[i];
oxx[i][0] = xx[i]; oyy[i][0] = yy[i];
}

d1++; d2++;
      delay(50);
 }
 closegraph();
}



以上代码均测试通过

[此贴被 newbie(newbie) 在 12月2日23时15分 编辑过]

地主 发表时间: 12/2 23:6

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号