荣植华的专栏

问渠那得清如许,为有源头活水来

2008年10月25日

置顶 转载 完美屏蔽 Ctrl+Alt+Del 键

完美屏蔽 Ctrl+Alt+Del 键一、前言

  在Windows 9x/Me系统中,屏蔽Ctrl+Alt+Del和各种任务开关键的方法是通过下面的方法实现的:

BOOL bOldState;
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &bOldState, 0); 但在NT平台下,此方法不再适用,即使使用钩子技术也无法拦截到这个组合热键(原因稍后解释)。在网上,可以看到众多高手的解决方案,再此我做个简单的总结,同时提出完美的解决方案,并提供所需的 SellCode 数据供 VC,Delphi等程序员使用,最后考虑到VB在实现这些方面的不便还给出VB完整的源码,相信这是很不错的例子,可以让VB程序员了解更多的技巧。

二、不够完美的解决方案

  原理:代理系统相关的DLL,对相关的函数作特殊处理
  不足之处:使用不方便!并且效果不佳(屏幕会闪)
      下面将具体讨论这种方案:
阅读全文>

发表于 @ 2008年10月25日 14:03:00|评论(loading...)|举报|收藏

2008年12月11日

转载 阻止删除文件(文件占坑)的delphi代码

  代码:function EnabledDebugPrivilege(const bEnabled: Boolean): Boolean;
var
hToken: THandle;
tp: TOKEN_PRIVILEGES;
a: DWORD;
const
SE_DEBUG_NAME = 'SeDebugPrivilege';
begin
Result := False;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken)) then
begin
tp.PrivilegeCount := 1;
LookupPrivilegeValue(nil, SE_DEBUG_NAME, tp.Privileges[0].Luid);
if bEnabled then
tp.Privileges[0].Attributes := SE_PRIVILEGE_EN阅读全文>

发表于 @ 2008年12月11日 08:50:00|评论(loading...)|举报|收藏

转载 加壳原理与简单实现加壳(delphi源代码)

{*****************************************************************
AddShell()源自于前一段时间有写的addsection()新增区段代码,
在增加区段代码的基础上,追加了
1.修改启动入口点位置
2.增加一段壳头xor $50的代码function AttachStart-function AttachEnd
这一段代码是先填充,再被修改成合适原EXE的壳头
3.修改原启动代码入口点所在区段的段属性可写并进行xor $50运算加密


不支持addshell()处理已经过addshell的exe
*****************************************************************}

unit Unit1;

interface

uses
  Windows, Messages, SysUtils阅读全文>

发表于 @ 2008年12月11日 08:48:00|评论(loading...)|举报|收藏

2008年10月24日

原创 如何过XP的防火墙而不被拦截

procedure TForm1.Button1Click(Sender: TObject);
var
   FwMgr,Profile,FwApp: variant;
begin
   FwMgr := CreateOLEObject('HNetCfg.FwMgr');
   Profile := FwMgr.LocalPolicy.CurrentProfile;
   FwApp := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
   FwApp.Name :='我的测试'; //显示名字
   FwApp.ProcessImageFileName := Application.ExeName; //要通过的程序
   FwApp.Enabled   := true;
   Profile.AuthorizedApplications.Add(FwApp);
end;

这样,你的软件就能通过X阅读全文>

发表于 @ 2008年10月24日 13:18:00|评论(loading...)|举报|收藏

2008年10月09日

原创 windows2008下如何删除程序自身


procedure DeleteMe;
var
  BatchFile: TextFile;
  BatchFileName: string;
  ProcessInfo: TProcessInformation;
  StartUpInfo: TStartupInfo;
begin
  BatchFileName := ExtractFilePath(ParamStr(0)) + ' _deleteme.bat' ;
  AssignFile(BatchFile, BatchFileName);
  Rewrite(BatchFile);
  Writeln(BatchFile, ' : try' );
  Writeln(BatchFile, ' del "' +ParamStr(0) + ' "' );
  Writeln(BatchFile,
    ' i阅读全文>

发表于 @ 2008年10月09日 10:42:00|评论(loading...)|举报|收藏

原创 写程序启动项时如何过卡巴与360安全卫士等软件的方法



procedure SetPrivilege;
const
  ADJUST_PRIV = TOKEN_QUERY or TOKEN_ADJUST_PRIVILEGES;
  SHTDWN_PRIV = 'SeBackupPrivilege';
      //SeBackupPrivilege 备份文件和目录。
      //允许用户绕过文件和目录的权限来做备份。只有当应用程序尝试访问NTFS备份API时才检查这个特
      //权。默认情况下,这个特权分配给Administrators和Backup Operators。
  PRIV_SIZE = sizeOf(TTokenPrivileges);
var
  TokenPriv, Dummy: TTokenPrivileges;
  Token: THa阅读全文>

发表于 @ 2008年10月09日 10:35:00|评论(loading...)|举报|收藏

2008年06月05日

原创 Delphi中进行延时的4种方法

Delphi中进行延时的4种方法阅读全文>

发表于 @ 2008年06月05日 08:53:00|评论(loading...)|举报|收藏

2008年06月04日

原创 CodeGear RAD 2007 SP4 最新下载及破解

CodeGear RAD 2007 SP4 最新 下载 破解 Delphi 2007 Update 4阅读全文>

发表于 @ 2008年06月04日 20:38:00|评论(loading...)|举报|收藏

2008年04月26日

转载  IT圈里的程序员们(3)

IT圈里的程序员们(3)阅读全文>

发表于 @ 2008年04月26日 23:54:00|评论(loading...)|举报|收藏

转载 IT圈里的程序员们(2)

IT圈里的程序员们(1)阅读全文>

发表于 @ 2008年04月26日 23:52:00|评论(loading...)|举报|收藏

Csdn Blog version 3.1a
Copyright © Rzh