|
|
3#

楼主 |
发表于 2005-5-6 18:47:08
|
只看该作者
gotomsdos你需要的软件在此
较简单的处理,就公布出来给喜欢C的朋友看看。
#include "stdio.h"
char buffer[256];
int vspf(char *fmt, ...)
{
va_list argptr;
int cnt;
va_start(argptr, fmt);
cnt = vsprintf(buffer, fmt, argptr);
va_end(argptr);
return(cnt);
}
keyboard(int choice,char key[])
{
int keybufbott;
int offset,i;
offset=peek(0x40,0x1c);
for(i=0;key!=';';;i++)
{
if(choice==0)
{pokeb(0x40,offset,0x00);
pokeb(0x40,offset,key);}
if(choice!=0)
{pokeb(0x40,offset,key);
pokeb(0x40,offset+1,0x00);}
offset=offset+2;
if(offset==0x3e)offset=0x1e;
}
pokeb(0x40,offset,0x0d);
pokeb(0x40,offset+1,0x00);
offset=offset+2;
pokeb(0x40,0x1c,offset);
}
void main(int argc,char *argv[])
{
FILE *fp;
unsigned char buf[1];
int offset;
if(argc<4){
printf("error: Not Enough command line.\n");
printf("see example: setvar Skyroads.cfg 6 var \n");
exit(1);}
if(argc>4){
printf("error: Too many paterners!\n");exit(1);}
if ( (fp=fopen(argv[1], "rb")) == NULL)
{ printf("File not found!");exit(1);}
if (atoi(argv[2])!=0) offset=atoi(argv[2]);
else
{ printf("param offset must number!");exit(1); }
fseek(fp, offset, SEEK_SET);
fread(buf, 1,1,fp);
if (feof(fp)>0)
{printf("param offset too big!");exit(1);}
vspf("%s%s%s%u", "set ",argv[3],"=",buf[0]);
close( fp );
keyboard(1,buffer);
} |
|