昨天突然想到我已有一个U盘,为什么不做一个Windows登陆时的usb Check呢?
1。 在SDK Sample中有一个GinaStub的例子
在WlxDisplaySASNotice 添加如下内容:
VOID
WINAPI
WlxDisplaySASNotice (PVOID pWlxContext)
{
//======================= C O D E S N I P =========================
// Add These Below
int count = 0;
while(!CheckUsbKey())
{
MessageBox(NULL, "Please Insert USB KEY", "Tips", MB_OK);
if(count == 10) break;
count++;
}
//====================================================================
pfWlxDisplaySASNotice(pWlxContext);
}
//=============================
// CheckUsbKey is here!!!
//=============================
BOOL CheckUsbKey()
{
char filename[MAX_PATH+1];
char drivename[3] = "A:";
DWORD fix = 0x0001;
FILE *file;
char list[30];
int numread;
int i;
DWORD drivermap = GetLogicalDrives();
for( i = 2; i<26; i++)
{
if(drivermap & fix<<i)
{
drivename[0] = 'A' + i;
if(DRIVE_REMOVABLE == GetDriveType(drivename))
{
_snprintf(filename, MAX_PATH+1, "%s//license.dat", drivename);
file = fopen(filename, "r");
numread = fread( list, sizeof( char ), 8, file );
list[8] = '/0';
if(numread == 8 && strcmp(list,"12345678") == 0) // your key
{
fclose(file);
return TRUE;
}
fclose(file);
}
}
}
return FALSE;
}
2。 新建一个内容如下注册表文件
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon]
"GinaDLL"="GinaStub.dll"
3。 在U盘的根目录中新建一个license.dat, 内容为12345678
4。 将GinaStub.dll拷贝到System32目录下, 导入注册表文件, 重启即可。
1。 在SDK Sample中有一个GinaStub的例子
在WlxDisplaySASNotice 添加如下内容:
VOID
WINAPI
WlxDisplaySASNotice (PVOID pWlxContext)
{
//======================= C O D E S N I P =========================
// Add These Below
int count = 0;
while(!CheckUsbKey())
{
MessageBox(NULL, "Please Insert USB KEY", "Tips", MB_OK);
if(count == 10) break;
count++;
}
//====================================================================
pfWlxDisplaySASNotice(pWlxContext);
}
//=============================
// CheckUsbKey is here!!!
//=============================
BOOL CheckUsbKey()
{
char filename[MAX_PATH+1];
char drivename[3] = "A:";
DWORD fix = 0x0001;
FILE *file;
char list[30];
int numread;
int i;
DWORD drivermap = GetLogicalDrives();
for( i = 2; i<26; i++)
{
if(drivermap & fix<<i)
{
drivename[0] = 'A' + i;
if(DRIVE_REMOVABLE == GetDriveType(drivename))
{
_snprintf(filename, MAX_PATH+1, "%s//license.dat", drivename);
file = fopen(filename, "r");
numread = fread( list, sizeof( char ), 8, file );
list[8] = '/0';
if(numread == 8 && strcmp(list,"12345678") == 0) // your key
{
fclose(file);
return TRUE;
}
fclose(file);
}
}
}
return FALSE;
}
2。 新建一个内容如下注册表文件
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon]
"GinaDLL"="GinaStub.dll"
3。 在U盘的根目录中新建一个license.dat, 内容为12345678
4。 将GinaStub.dll拷贝到System32目录下, 导入注册表文件, 重启即可。