改变win2k默认登录名(附原码)

类别:VC语言 点击:0 评论:0 推荐:

你是用win2k吗?每次重新启动以后,默认的登录的名就是你上一次用的。可是如果你上一次用的Administrator,每次还要改回普通用户(为了防毒和安全)好麻烦;或者你不想让其他人知道你登录过这台电脑(嘿嘿我窃取了你的QQ聊天记录……),怎么修改默认的登录用户呢?

这个小程序就是干这个的了。把它的图标拉到开始菜单的启动组里,修改快捷方式,在命令行后加上你要更改的默认登录名即可

比如:
c:\winnt\chglogon.exe flywhc

然后你用Administrator登录,然后再重新启动或者注销试试看?

附送原代码及工程文件。编译后体积 16K。但显然,如果用汇编可以做到更小。

我对减小编译后体积很感兴趣,如果有人能把这个VC做的程序编译后的体积再减小1K以上(不用任何第三方软件压缩),给我发EMAIL,我在VC版给你200分。

================= chglogon.dsp ============================

# Microsoft Developer Studio Project File - Name="chglogon" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **

# TARGTYPE "Win32 (x86) Application" 0x0101

CFG=chglogon - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "chglogon.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "chglogon.mak" CFG="chglogon - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "chglogon - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE

# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /W4 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x804 /d "NDEBUG"
# ADD RSC /l 0x804 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 advapi32.lib kernel32.lib /nologo /entry:"WinMain" /subsystem:windows /machine:I386 /nodefaultlib
# Begin Target

# Name "chglogon - Win32 Release"
# Begin Group "Source Files"

# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File

SOURCE=.\chglogon.cpp
# End Source File
# End Group
# Begin Group "Header Files"

# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"

# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

============== End =====================

============== chglogon.cpp ===============

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 hInstance=hInstance;
 hPrevInstance=hPrevInstance;
 nCmdShow=nCmdShow;
 lpCmdLine=GetCommandLine();
 HKEY hKey;
 char szBuf[255]={0},*p=lpCmdLine;
 p++;
 if(*p=='\"'){
  while(*p!='\"' && *p!=0){
   p++;
  }
 }else{
  while(*p!=' ' && *p!=0){
   p++;
  }
 }
 p++;
 int i=0;
 while(*p){
  szBuf[i++]=*p;
  p++;
  if(*p==' ') break;
 }
 *p=0;
 ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",0,KEY_SET_VALUE,&hKey);
 ::RegSetValueEx(hKey,"DefaultUserName",0,REG_SZ,(CONST BYTE *)szBuf,i);
 ::RegSetValueEx(hKey,"AltDefaultUserName",0,REG_SZ,(CONST BYTE *)szBuf,i);
 ::RegCloseKey(hKey);
 return 0;
}
=============== End =======================

 

本文地址:http://com.8s8s.com/it/it3398.htm