2009年5月30日星期六
DOS编程之截取INT09
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 指向中断向量表中09中断向量
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VECTORS SEGMENT AT 0h
ORG 09h*4
INT9_Off dw ?
INT9_Seg dw ?
EXTRN _Int09_Route : NEAR16
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 替换原来的INT09,把向量保存在wOrgINT9_Seg:wOrgINT9_Off中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
public _ReplaceInt9
_ReplaceInt9 proc near
push es
IF EXE_FILE EQ 1
; save original vector
mov ax,3509h
int 21h ; get int09h vector
mov cs:wOrgINT9_Off, bx
mov cs:wOrgINT9_Seg, es
; set new vector
push ds
push cs
pop ds
mov dx, offset INT9_Service
mov ax,2509h
int 21h ; set new int13h vector
pop ds ; restore DS
ELSE
xor ax, ax
mov es, ax
mov ax, es:INT9_Off
mov cs:wOrgINT9_Off, ax
mov ax, es:INT9_Seg
mov cs:wOrgINT9_Seg, ax
; set new vector
xor ax, ax
mov es, ax
mov ax, offset INT09_Service
mov es:INT9_Off, ax
mov ax, cs
mov es:INT9_Seg, ax
ENDIF
pop es
ret
_ReplaceInt9 endp
;-----------------------------------------------------------------------------
; INT9_Service is the entry of INT09
;-----------------------------------------------------------------------------
PUBLIC INT9_Service
INT9_Service:
pusha
in al, 60h
cmp al, 80h
jnb @f ; 检测键盘是按下还是放开
mov _KeyPressed, 1
@@:
popa
jmp dword ptr cs:wOrgINT9_Off
2009年5月16日星期六
批萨和色拉
批萨是午餐,两个人各点一个大约6寸大小的批萨,超薄,和一杯饮料。(饮料是给你一个杯子自己去取的,种类和份量随意,去过宜家的应该都知道是怎么回事)
晚餐是老板请客,去了一家以卖色拉为主的店,进门拿好餐盘和餐具后沿着柜台自己选择喜欢的色拉原料,大部分是蔬菜,有通心粉,盒装的大虾,萝卜,豌豆等,还有各种颜色的色拉酱。走到柜台的尽头选择饮料或者水,然后付钱进入用餐区。(注:是自助餐,只有饮料和大虾是另外收费的)
除了蔬菜色拉外,这里还提供自助的批萨、冰激凌(三种口味)、汤(有清汤和浓汤),购买了蓝色饮料杯的可以自己添加饮料。
据说是蛮贵的,但是我看到柜台上挂着的大招牌上写着 $9.99,如果是这个价格的话一点也不贵,我每天去吃的午餐也都差不多这个价。
对了,因为午餐的批萨比较小,所以餐后我又去in-n-out去买了一个汉堡。
来算一下帐,批萨+饮料 $9.00,汉堡$2.xx
2009年5月10日星期日
2009年5月9日星期六
耐克专卖店
这里的耐克鞋没有传言中的那么便宜。
便宜的鞋子看上去就不太好,鞋底硬或者款式不好,稍微能看得上眼的都是69,79美元,很多鞋子是超过100美元的。这些是正品,靠墙放了很多开了盖子的打折品(在这里买了东西是可以退的,估计这些就是被退货的鞋子),好看一点的鞋子29美元起,差一点的19美元起。可供选择的范围不大,因为是唯一的,所以要挑选大小、款式、价格全部合适的才行。
2009年5月3日星期日
To buy laptop online
没想到这里买东西还是比较复杂的,所以一个星期过去了还没有买到,甚至连订单都没有下。
首先,去官方网站看合适的型号,然后按照向导一步一步修改配置,比如可以换CPU,加内存、硬盘等等,每换一样东西就可以看到最终的价格,所以是比较方便的,不过税另外算,一般都是要到付钱的时候才看得到该缴的税金是多少。
其次,要了解一下coupons,简单来说是各个网站推出的打折信息。要了解的更深刻一些可以去这个网站看看,http://www.dealsea.com/,打开后在左上角的搜索栏里填写一个计算机的型号然后回车,就会搜到有关的coupons。coupons是有有效期的,所以我还没等到我满意的coupons。
最后,也是最简单的,如果要买Lenovo的电脑,可以通过他的合作网站,输入一个密码进入便可以得到更优惠的价格。
http://shoplenovo.i2.com/SEUILibrary/controller/Lenovo:EnterStdAffinity?affinity=cpp&ConfigContext=StdAffinityPortal&cid=USEPPEM0737&
密码是 familyandfriends
我看中的T400的coupons前天刚过期,不知道要等多久才有新的。
2009年4月21日星期二
mpg,avi,wmv格式网页播放代码
这个网页播放代码支持wmv,avi,mpg,mpeg等影像文件的播放!重要使用了midea的内核!所以你的服务器要
有安装哦!否则就无法播放了!虽然现在p2p很流行,不过这种传统的代码在很多地方还是有用的!
代码经过测试了!
<object classid="clsid:05589FA1-C356-11CE-BF01-00AA0055595A" id="ActiveMovie1" width="500" height="400">
<param name="Appearance" value="0" />
<param name="AutoStart" value="-1" />
<param name="AllowChangeDisplayMode" value="-1" />
<param name="AllowHideDisplay" value="0" />
<param name="AllowHideControls" value="-1" />
<param name="AutoRewind" value="-1" />
<param name="Balance" value="0" />
<param name="CurrentPosition" value="0" />
<param name="DisplayBackColor" value="0" />
<param name="DisplayForeColor" value="16777215" />
<param name="DisplayMode" value="0" />
<param name="Enabled" value="-1" />
<param name="EnableContextMenu" value="-1" />
<param name="EnablePositionControls" value="-1" />
<param name="EnableSelectionControls" value="0" />
<param name="EnableTracker" value="-1" />
<param name="Filename" value="36j.wmv" valuetype="ref" />
<param name="FullScreenMode" value="0" />
<param name="MovieWindowSize" value="0" />
<param name="PlayCount" value="1" />
<param name="Rate" value="1" />
<param name="SelectionStart" value="-1" />
<param name="SelectionEnd" value="-1" />
<param name="ShowControls" value="-1" />
<param name="ShowDisplay" value="0" />
<param name="ShowPositionControls" value="0" />
<param name="ShowTracker" value="-1" />
<param name="Volume" value="-480" />
</object>
需要改动的是代码中的红色代码部分。
wmv格式
代码片断如下:
<object id="NSPlay" width=200 height=180 classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject" align="right" hspace="5">
<param name="AutoRewind" value=1>
<param name="FileName" value="******.wmv">
<param name="ShowControls" value="1">
<param name="ShowPositionControls" value="0">
<param name="ShowAudioControls" value="1">
<param name="ShowTracker" value="0">
<param name="ShowDisplay" value="0">
<param name="ShowStatusBar" value="0">
<param name="ShowGotoBar" value="0">
<param name="ShowCaptioning" value="0">
<param name="AutoStart" value=1>
<param name="Volume" value="-2500">
<param name="AnimationAtStart" value="0">
<param name="TransparentAtStart" value="0">
<param name="AllowChangeDisplaySize" value="0">
<param name="AllowScan" value="0">
<param name="EnableContextMenu" value="0">
<param name="ClickToPlay" value="0">
</object>
网页播放wmv格式视频文件代码详解
<object id="player" height="400" width="500" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" viewastext="VIEWASTEXT">
<param name="AutoStart" value="-1" />
<!--是否自动播放-->
<param name="Balance" value="0" />
<!--调整左右声道平衡,同上面旧播放器代码-->
<param name="enabled" value="-1" />
<!--播放器是否可人为控制-->
<!--是否启用上下文菜单-->
<param name="url" value="../Movie/30.wmv" />
<!--播放的文件地址-->
<param name="PlayCount" value="1" />
<!--播放次数控制,为整数-->
<param name="rate" value="1" />
<!--播放速率控制,1为正常,允许小数,1.0-2.0-->
<param name="currentPosition" value="0" />
<!--控件设置:当前位置-->
<param name="currentMarker" value="0" />
<!--控件设置:当前标记-->
<param name="defaultFrame" value="" />
<!--显示默认框架-->
<param name="invokeURLs" value="0" />
<!--脚本命令设置:是否调用URL-->
<param name="baseURL" value="" />
<!--脚本命令设置:被调用的URL-->
<param name="stretchToFit" value="0" />
<!--是否按比例伸展-->
<param name="volume" value="50" />
<!--默认声音大小0%-100%,50则为50%-->
<param name="mute" value="0" />
<!--是否静音-->
<param name="uiMode" value="mini" />
<!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示-->
<param name="windowlessVideo" value="0" />
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
<param name="fullScreen" value="0" />
<!--开始播放是否自动全屏-->
<param name="enableErrorDialogs" value="-1" />
<!--是否启用错误提示报告-->
<param name="SAMIStyle" value="value" />
<!--SAMI样式-->
<param name="SAMILang" value="value" />
<!--SAMI语言-->
<param name="SAMIFilename" value="value" />
<!--字幕ID-->
</object>
2009年4月20日星期一
匿名网络I2P
转载如下:
http://it.solidot.org/article.pl?sid=09/04/20/0135235
隐形网络项目(Invisible Internet Project,简称I2P)发布了0.7.2版,修正了多个bug和潜在的问题。与SimpleTimer类相关的线程问题不会再发生,NTCP传输不会再出现空指针异常等。 运行I2P需要JRE运行环境(Java 1.5或更高),它使用多种加密层,通过其它多台计算机选择通信路线,在一组路由器之间创造一个临时和单向的通道,为用户提供匿名和安全通信,能隐藏发送 者和接收者的信息,支持邮件,浏览,文件共享和聊天服务。0.7.2版改进了运行性能和安全性能,采用了新的试验性界面——启动程序之后,用户将通过 router console,对带宽等进行配置。
下载:Windows版,Linux版