修正了函数 Getmac()取mac地址后两位的错误

/***/
/
nodisk1.3.1 / /
/注:修正了函数 Getmac()取mac地址后两位的错误 /
/
修正了读取"用户名 vs MAC地址库文件"的tab控制符的错误 /
/
修正Copyer()函数在目标文件只读的情况下,不能打开文件的错误 /
/
添加Poweroff( )关机函数 /
/
添加dos下读取和复制长文件名的函数 Longname( )待测中… /
/
shareware by hncmec in haikou 2002-09-07 /
/
tell me bug!!! email:xhncmec@hotmail.com /
/
/

nodisk.h //头文件说明如下:

extern char* Getmac(void); //获取MAC地址,目前只针对rtl8139网卡
extern char* GetID(char *mac,char *filename); //从"用户名对照MAC地址的库文件"中获取"用户名"。
extern void Copyer(char *source,char *dest); //专门拷贝只读\隐藏属性的文件,如system.dat和user.dat
extern void Replace(char *olds,char *news,char *filename);//相当于Qpatch.exe 文件一样,有替换功能
extern int Setmdir(char *pathname); //跟微软的setmdir.exe 的功能一样具有注册表路径重定向功能。
extern void Setboot(char varBoot); //相当于Qsetbd.exe 的功能,不用多说
extern void release(char filename); //用来释放捆绑的.reg 文件,捆绑注册表文件用 binreg.exe
extern void RebootSystem(void); //重启机算机
extern void Poweroff(void); //dos下关机,执行条件:1、有ATX电源;2、主板bios支持高级电源管理APM1.2。

/***** 一个简单的实例如下: **************************************/

#include “stdio.h”
#include “nodisk.h”

void main()
{
char str1[32];
char mac[32];

strcpy(mac,getmac());
strcpy(str1,GetID(mac,“netnames.db”));
printf(“%s\n”,str1);
release(“lanpc.reg”); //用来释放被捆绑的*.reg,假定为lanpc.reg,配合replace()函数把*.reg的内容替换之后,运行Regedit .reg 之后,再把.reg 删掉 :slight_smile:
Replace(“{%chn%}”,“user20”,“lanpc.reg”);
Setmdir(“d:\user20”);
Copyer(“c:\windows\system.dat”,“d:\user20\system.dat”);
setboot(‘S’); //注意 ‘S’ 为大写字母。
}

补充如下:
一、各函数的参数按具体情况而定,比如说,各函数的实参可以通过环境变量来获取,或是放在一个setup.ini文件中读取参数均可,实现动态获取变量等。

/注册表文件捆绑器/ BINREG.exe v1.0
/* size:18,034bytes */

使用方法:
binreg mypro.exe myreg.reg —>将注册表文件myreg.reg 添加至 mypro.exe 中
binreg mypro.exe /d —>将注册表文件从mypro.exe 中删掉,恢复