ATHENA's profile闲人勿入BlogListsGuestbookMore ![]() | Help |
淘宝上经典的评价清脂减肥胶囊400mg*60粒 解释:
夏天适用时尚提包 解释:
解释:
解释:
解释:
解释:
解释:
解释:
解释:
14:205
物品名称: 韩国时尚最新款式性感MM上衣 解释:难道你老公不喜欢吗?
物品名称:内蒙特产 内蒙古风干牛肉干 斤/35元 解释:不做人要厚道!
解释:按你妈妈的要求发了熟一点的果果,收到后只能放3,5天的,放冰箱时间能长一点.(记住下次要你妈妈做评价。)
解释:晕死,那是我送你的白巧克力啊, 口香糖包在下面报纸里面呀,不会扔垃圾桶了吧?快去找找
解释:没什么是什么!!什么是没什么!!没什么给中评做什么!!什么什么人!!狂晕!!!
物品名称:欧诗漫—30g珍珠水嫩保湿眼霜 解释:冤枉啊,拍下后,款都没有付,我都没发货,谈什么退货?
解释:你呀,要爽大街上拉男人去,鄙视你!!
物品名称:带核话梅500克 解释:大概时间长干了吧,一样的,也好吃的。
物品名称:*耳饰*小鸟耳钉 解释:怎么可以这样啊,哎,你的电脑可以升极拉:( 非常非常郁闷
物品名称:水晶球 解释:冤枉!那是我LG的烟灰缸。
中评 解释:
中评 虽然还是失败了~~但是`还是谢谢你~~ [详情] --2004.08.29 20:45 解释:
解释: 我什么时候和你换好评了。真是的!缺德!!
差评 : 汇款之前:热心+耐心+诚心,哄得我很开心;汇款之后:心+狠心+绝心,骗得我好伤心。购买的YY跟收到的YY完全不一样(款式和颜色)。换货不肯,退货不行,退款没门。几十元的信用都没有,这样的卖家,遇上一个就足够了。网上购物,还得长个心眼。不知道卖家会编造一个怎样的理由,自圆其说。[详情] --2004.09.10 22:04 解释:
解释:您买的我店里一样也没有呀?我猜您一定是个很有钱的人,一下子买了这么多东西……
解释:
好评 态度不好,东西还行, [详情] --2004.12.03 13:31 解释:
中评:我没买 解释: 唉!
情侣小闹钟 延时保险套 牛肉干(辣) 会员6.8/月秒充可查 中兴T88手机 米太香 M/B07新款 129元 就买 只为信誉 世纪梦,平装 172元 ,4月整 细雨湿衣看不见 闲花落地听无声盛夏,夜,深夜。 景山山颠。 山上有人,两个人,一男一女。 这两人就是当今武林名声最响的两位杀手,男的名秋细雨,女的叫叶闲花,江湖人称“细雨闲花”。 诗人刘长卿曾用“细雨湿衣看不见,闲花落地听无声”来描述这两个可怕的杀手。细雨湿衣,湿衣的是鲜血;闲花落地,落地的是人头。这两人杀人来无影去无踪,如果他们想杀你,当你还没看到他们人影没听到他们声音的时候,你就已经死了。 秋细雨三天前接到一份帖子,指名要杀叶闲花。事成之后,不但有三百万两冥币,更可以让他在“红楼梦中人”选秀节目中担任曹雪芹的角色! 但是杀死叶闲花比杀死比尔还要困难得多。 江湖中没有一个人清楚叶闲花的武功来历,性格脾气,但是每个人都知道叶闲花的故事。 叶闲花有一双迷人的大眼睛,据说她曾一动不动地瞪死过赵薇和高圆圆,而那一年她才十七岁。 叶闲花声音有如黄莺般幽婉醉人,传说听过她说话后林志玲身体酥麻了整整一年,你说要不要命? 叶闲花轻功独步武林,踏雪无痕,落地无声,号称超过当年青翼蝠王韦一笑。有人见她上星期在高速公路上偷了刘翔奥运会入场证,刘翔追出一万公里最后被活活累倒。 一般人听到叶闲花的故事早就吓得去买尿不湿了,但是秋细雨没有去买。 秋细雨不是一般人。 他知道,杀人不但要靠技术,还要拼人品! 秋细雨很镇定,他正用一把指甲刀修整着手指甲,他的手指修长有力。 他要等待,等待对方先沉不住气。高手相争,不允许一丝一毫的失误,先沉不住气的人就会露出破绽。 致命的破绽! 因此秋细雨一言不发,只是静静地玩弄着指甲刀。 没想到叶闲花更是好整以暇,自己悠然自得地涂口红,喷香水。 秋细雨只好先发制人,道:“你知道我找你出来是为什么。” 叶闲花温柔道:“在我们动手之前,不能先谈谈么?” 秋细雨道:“我是来杀人的,不是来聊天的。” 叶闲花道:“你有把握杀我?” 秋细雨道:“我从不做没有把握的事情。” 叶闲花道:“我要提醒你一件事。” 秋细雨道:“你说。” 叶闲花道:“百晓生作杀手谱,小女子是杀手榜排名第一,阁下区区第二,你真能杀得了我么?” 秋细雨道:“我也要提醒你一件事。” 叶闲花道:“你说。” 秋细雨道:“论杀手实力,我本在你之前,只是那次排名百晓生采用了短信投票系统,中国‘花痴’人数过于庞大才让你得了第一。” 叶闲花的脸色一变,道:“我更要提醒你,我的粉丝团叫‘花粉’,不叫‘花痴’!” 秋细雨道:“我最后要提醒你,你的那些‘花粉’全都是花痴。还有,我们已经跑题了。” 叶闲花道:“我们这样拼命厮杀,你难道不怕麻烦么?” 秋细雨道:“你以后再也不用怕麻烦了,天下只有一种人永远不怕麻烦,死人!” 叶闲花道:“这么说你非逼我出手不可?” 秋细雨没有回答,他已不用回答。 秋细雨道:“亮兵器!” 叶闲花道:“我用刀。” 秋细雨道:“你用刀?刀在何处?” 叶闲花道:“我就是刀!” 叶闲花露出甜甜的笑容,忽然间褪下了自己的衣服,全身上下只剩下蕾丝比基尼和黑色丝袜。 叶闲花的脸美得让人窒息,再配上这样的身材,这样的服饰,充满了一种原始的诱惑力。 她的眼睛会说话,她的媚笑会说话,她的手,她的胸膛,她的腿……她身上每分每寸都会说话。 她知道,只要是个不瞎的男人,现在肯定会被她迷得神魂颠倒。 秋细雨是个男人,而且是个不瞎的男人。 可他现他知道,美丽的女人是一把刀,当你沉醉的时候,刀就会切进你的胸口。 秋细雨沉吟道:“我只想问你一件事。” 叶闲花娇笑着:“请讲。” 秋细雨道:“大夏天的,穿这么少你丫不怕蚊子叮啊?” 叶闲花沉默了半晌,幽幽地道:“你一定以为刚才我在喷香水,是不是?我告诉你,我喷的是六神花露水!” 叶闲花又道:“不过这不是普通的六神,是我特别提炼的药水,无色无味无毒,不过却会慢慢扩散在空气中,闻到它的人会四肢麻痹不能动弹。” 秋细雨一惊,忽然觉得身体已经麻木不听使唤,不由得一身冷汗。 叶闲花又道:“你以为我和你扯淡是因为我害怕,以为我脱掉衣服是想色诱你,其实这都是为了拖延时间让药水能扩散到你周围。” 秋细雨面上不动声色,道:“难道你自己不怕药水的厉害?” 叶闲花得意地道:“一开始我涂的口红就是解药,所以我仍然可以自由行动。” 叶闲花逼视着秋细雨,问道:“现在你还认为你能杀了我么?” 秋细雨道:“我能。” 叶闲花道:“你不能动而我能动,你却能杀了我,这不是很好笑么?” 秋细雨道:“是很好笑,但是你一定会被我杀死。” 叶闲花道:“为什么我会被你杀死?” 秋细雨忽然反问道:“飞刀能不能杀人?” 叶闲花道:“好像能。” 秋细雨道:“我有没有手?” 叶闲花道:“的确有。” 秋细雨道:“我手上有没有刀?” 叶闲花道:“你手上好像只有指甲刀。” 秋细雨道:“足够了。”叶闲花道:“足够了?” 秋细雨道:“我有手有刀,就能置人死地。” 叶闲花道:“指甲刀也能杀人?实在可笑!” 秋细雨道:“以前江湖中有七十三个人觉得我这把指甲刀很可笑。” 叶闲花道:“现在呢?” 秋细雨道:“现在人都已死了,死在这把刀下。” 叶闲花道:“你的手还能动?” 秋细雨道:“你要不要试试?” 叶闲花脸上的笑容渐渐凝固,忽然间,她已出手! 一招“冒牌九阴白骨爪”直逼秋细雨天灵盖,这一招她已练过七年四个月零二十九天,她完全有把握相信没有任何人可以抵挡得了这一招。 可这一次她错了。 刀光一闪,“盗版小李飞刀”已插入她的咽喉。 她到死也不相信,一把指甲刀可以要了她的命! 闲花终于落地! 三个时辰后,药水的药效渐渐淡去,秋细雨终于可以动弹了。 望着叶闲花的尸体,秋细雨道:“虽然你已经死了,但是我还要告诉你两件事。第一,我一直用甲刀修整着手指甲是为了调整手和刀之间的同步率,说白了就是找手感。第二,我杀你的真正目的不是为了钱或者名利。” 一边说,秋细雨一边从叶闲花衣服的口袋里搜出了刘翔的奥运会入场证。 秋细雨坚定地说:“我爱北京,我要看奥运!” 从此,再也没有人见过秋细雨。 08高校bbs最新笑话1.新学期点名,老师:华小明。
底下:yeah! 老师:华小明! 底下:yeah! 老师咆哮道:我日了!这谁呀,为什么不答到?!! 这时,一同学委屈地站起来说:老师,那个字念烨……(日月光华) 2.第一次玩CS,16打16模式下冒死捡把枪,却发现没有准星,十分郁闷地扔了,后来
才知道,原来那叫——狙!(兵马俑) 3.寝室四人同时得了乙肝,遂到校医院检查,大夫说:“乙肝传播的途径只有三种:
血液、母婴、性!”(水木社区) 4.宿舍一哥们喜欢晚上搂着键盘睡觉,学校领导知道后,第二天将他开除了,请问这
是为什么呢?(睿智,天大求实) 5.“三下乡”活动,村长非拉着我同学胳膊让他帮忙把村头墙上的标语翻译成英文,
同学实在受不了折磨,于是大笔一挥写下:树新风=tree new bee!(水木社区) 6.偶睡觉的时候有摸BF小JJ的习惯(嘻嘻),昨天和BF去妹妹家串门,晚上没走,于
是和妹妹同床而眠。 夜里,偶手又不老实,伸向那熟悉的“地方”一顿划拉,什么也没有,然后一个激灵 就醒了~ 心想:完了,这下在妹妹面前可糗大发了!(水木社区) 就在我狂囧的时候,睡眼惺惺的妹妹翻了个身嘟囔道:“姐夫,别闹,姐还在咱家呢 ……” 7.寒假过完,坐了30多个小时的火车回来,困!晚上MM说:“看看究竟是你的睡意厉
害还是我的睡衣厉害!”(日月光华) 8.学校春游,我们班被分配在河下游生火做饭。一贪吃女到河边洗菜,她就发现河面
上不断漂来瓜子瓤,于是嘴馋的她就捞起来吃……吃了几十粒,她突然发现一坨屎从上游 漂下来——上面粘满了瓜子!!!(水木社区) 9.班里有个女生,色狼一个,QQ昵称叫“拒绝”。有一次,我好奇地问她一句:“你
为啥叫这个名字啊?” 她回过来一个羞涩的表情说:“难道你不觉得加上偏旁比较含蓄吗?*^_^*” 10.某男晚上经常到学校操场练习跑步。一天,他发现有个女孩也是如此,而且他还发
现一个规律,就是这个女孩第一个礼拜每天都跑一圈,第二个礼拜每天都跑两圈,第三个 礼拜每天都跑三圈…… 就在第三个礼拜的某天晚上,他终于鼓起勇气和那个女孩搭讪道:“同学,我观察你 很久了。你每个星期跑的圈数都增加一圈,下周是第四个星期,是不是每天都该跑四圈了 ?” 女孩听后写了张纸条塞给他,然后跑开了,只见纸条上写着——下个礼拜不跑了,你 个小傻瓜!~(隐讳,兵马俑) 11.我们导师带了一个日本研究生,是个女孩,和老公长期两地分居。
七月份毕业,终于要回国了,她兴奋地对导师说:“我买了七号的机票,我要在中国 的情人节那天赶回家!” 导师回道:“你弄错了,阴历的七月七才是情人节!” “啊?~~~那阳历的七月七呢?”(水木社区) 导师憋了半天,狠了狠心说:“七七事变!” 12.老师问:有没有知道史上得金牌数最多的人是谁?
底下一同学冷冷道:岳飞,12块……(北邮人) 13.一个寒冷的冬天夜晚,一MM买了一个冰激凌回宿舍吃,结果第二天她重感冒了,过
了几天她感冒好了。 又是一个寒冷的冬天夜晚,该MM又买了一个冰激凌去GG宿舍吃,结果第二天她和他都 感冒了,过了几天她和他感冒都好了。 还是一个寒冷的冬天夜晚,该MM又买了一个冰激凌去GG宿舍吃,结果第二天她和他们 都没感冒……(日月光华) 14.昨天和一女同学在食堂边吃边聊,我吃完一碗米饭后又要了一碗。
这时她搭讪道:“我BF和你一样能吃,但就是没你那么胖,饭量和体重不成正比啊! ” “哦,那饭量和什么成正比?性能力?” 她严肃地思考了一下,点了点头说:“嗯,没准~” “呵呵,那改天你饿他两顿试试?” 她又严肃地思考了下,然后苦笑道:“干嘛要苦了自己呢……”(兵马俑) 15.学校组织象棋班活动,有两mm在一旁认真地下着,马日象田,有模有样。这时教练
过来看了一眼说:“你们下的都不对,老将被吃了就输了,不能再走了,你看你俩还在走 ……”(水木社区) 16.晚上找小姐,“姑娘多大了?”
“十七。(转载请注明天*涯社区开心乐园)” “太小啦~” “大着呢!” “嗯?怎么说?” “你没听电视现在常说‘十七大’嘛!”(小百合) 17.楼主:上大学我跳过课、挂过科、甩过人、被甩过、打过架、记过过、破过处……
哎,能干的我都干过了。 沙发:你死过吗?(天涯雀巢大学校园) 18.高三有一次在宿舍里斗地主,突然被教导主任查寝发现,遂被带回办公室严加审问
! “给我个理由,我可以考虑不给你们记过!”(天大求实) “主任,是我们不对,我们没能把精力放在学习上,而是想通过扑克这种妖术来推测 今年的高考运势如何……” 19.女友问:为什么女人会有月经?
答:因为男人也要休息!(五色土) 20.我同学在上海交大念书,周末他到外国语学院帮同学咨询报考该校研究生有关事宜
。 在校园里正走着,遇一女生,问:“同学,请问你是XX系的吗?我有个同学想考你们 系的研……” 还没说完,那女生就不耐烦地打断道:“对不起,我已经有男朋友了!”然后扬长而 去!(日月光华) 我同学看着那女生远去的背影,嘴里念叨着:“真奇怪,这有什么好炫耀的?我也有 男朋友啊~” 21.给MM发短信:吃饭喽~来,饭前亲一下能增加食欲*^_^*
MM:滚,一脚踢飞! 5min后,MM:不说话,生气了? GG:爷在飞!(水木社区) 22.第一次要到外地出差,临走前老婆威胁我说:“如果你到南方敢乱来,回来我就让 你看看什么叫做‘流水线’!!”(水木社区) 23.一mm在自己的博客上感伤道:“唉,没有情人的情人节就是我的清明节……”(日
月光华) 24.后半夜起来到客厅看莎娃比赛,看完后心满意足地回屋,不料却发现女友正坐在床
边很是伤心地哭,于是忙问怎么了,只听她嘤嘤道:“你宁可半夜偷偷起来看A片也不愿和 我亲热……”(隐讳,水木社区)
25.和MM闲聊时谈到狗,我说要是狗不停地叫而且还摇尾巴,不用怕,那是在撒欢呢;
要是狗尾巴竖着不动,喉咙闷响,就要小心了! MM“哦”了一声,然后坏坏笑着说:“原来你们男人和狗一样啊~” 我一时迷茫,这时MM解释道:“那东西晃的时候没关系,要是竖起来了就要小心了! !”(两全其美) 26.我认识的一女孩和她BF分手了。两个人从初中到现在十年了,她男朋友在上海,我
们在湖北,并且两个人都是初恋。事情是这样的,中午那男孩儿突然发短信来说要跟她分 手,于是那女孩就开始哭。哭了一下午,我实在看不下去了,“哭有什么用?要死咱也要 死个明白!”说罢,抢过她手机就要给她男友挂电话。那女孩哭成那样的一张脸,猛地从 枕头里抬起来——可别忘了在前面加1-7-9-5-1啊,555……(水木社区) 27.未名湖冰面上,一男生搭讪道:“同学你好,我是清华的,能不能教教我学滑冰?
” 女孩上上下下地打量了他一番,然后冲不远处的一个小家伙喊道:“儿子,你过来教 教他!” 清华GG的脸腾地一下子就红了……(水木社区) 28.女友偷偷地问:“为什么你要把手放在裤兜里?听说你们男生都这样‘DIY’的。
” “去死!”女友走后,男生自言自语道:怎么可能嘛?噢~居然真的可以……哦…哦 …哦……(水木社区) 29.同学聚会,男生A掏出一张他与某MM的大头贴给众人看——MM是长的雄壮,大家看
了都比较没想法的那种。 男生B心情沉重地拍了拍A的肩膀说:“兄弟,回头是岸(转载请注明天*涯社区开*心 乐园)那~” A疑惑地自言自语道:“为什么所有人看这张大头贴都认为是我的女友呢?” 原来不是他MM啊,大家呈虚惊一场状,B赶忙赔罪,“难怪喔,我就知道老A眼光没那 么差!” 只见A仇视地瞅着大家说道:“她…她就是我暗恋的那个女生!!” (小百合) 30.寝室一姐姐找了个声音甜美、说起话来像个大姑娘的男友。
一日她关机,男友找不到她,于是给移动的人工台留言:“请呼XXX。” “您贵姓?” “姓祁。” (饮水思源) “祁小姐您好,请问您留言内容?” 男友一听:怎么我变成“祁小姐”了?遂忙解释道:“我不是女的,是男的!” 这时只听人工台小姐一句更甜美的声音:“谢谢您的使用,祁小姐再见~” 男友^&*$@^#@$&…… 少时,姐姐去找他吃饭,路上大叫今天收到一特傻叉的手机留言——一位姓祁的小姐 上来就说“我不是女的是男的”! 31.自习室里,身旁那对狗男女已经狂吻一个多小时了。
忍无可忍,无需再忍,我吼道:“拜托你们不要在教室里啃好吗!” 狗男:“吼什么吼!有本事你也在复旦找个女的来啃啊!!” 于是我一把拽过他怀里的MM狂啃起来……(日月光华) 32.刚考完英语,恰好看到自己的本日星座运程——切勿凭感觉行事。大惊!完了,挂
了~~~(日月光华) 33.一同学在上海工作,上周来北京玩,他说坐飞机过来的,结果从兜里掏眼镜布时掉
出一张火车票来……(水木社区) 34.今天在办公室,我发现我和一个来实习的女学生是老乡,于是热情地上前跟她打招
呼:“啊呀,老乡好!”办公室里一片大笑……(日月光华) 35.表姐成功应聘为某大集团的老总秘书。上班第一天,老总太太对她训话:“当秘书
最重要的就是本份,不要像你前任那样做出超出自己权限范围的事!”表姐胆战心惊地应 下,不免好奇,遂问:“那我前任是谁?”老总太太很不自然地答道: “就是我……”( 两全其美) 36.一哥们穿反裤子,劝他换过来,不肯,说里面只穿了个小裤衩。几经劝说,并警告
他不要给班级丢人,终于答应。来到一个角落,七八个男生把他围起来,当他刚把裤子脱 下,大伙一哄而散!只有我厚道,没有跑,而是把手中的早点(半张饼)朝附近的一群女 生扔去,结果饼砸到一个女生的后脑勺……(两全其美) 37.导师正讲课呢,突然电话响了,他掏出来看了一下对我们说:“一般人的电话我是
不接的,更何况是在上课,但这个人的电话对我来说很重要,我不能不接,请大家原谅一 下。”然后,“喂,你好,我是xxx……哦,你打错了!!”(碧海青天) 38.初中那会儿,偶第一次来月经,因为事先不懂得也没有准备,结果沾了一凳子血,
幸好那凳子是深红色的。下课了,我趁大家都出去活动,偷偷地跟后排凳子换了一下…… 三年后,偶和班里一男生一同考上某重点高中,注册报道的时候,男生环顾新校园感慨道 :“我可终于熬出来了,你看咱初中学校环境多差啊,就说那凳子质量吧,都破成啥样了 ,妈的总掉漆!” (一塌糊涂) 39.说早上被抓的人共分三种:(饮水思源)
一是把早饭带到教室里吃的人(转载请注明天*涯社区开心乐园); 二是在食堂里找了半天座吃完早饭结果却迟到的人; 三是没来得及吃早饭又不想把东西带到教室里吃结果没吃早饭上课晕倒被当做睡觉的 人…… 40.我要三两米饭,结果刚好把碗底铺满,我向师傅提出质疑,师傅说:“这是你的错
觉!” 我要青椒炒肉丝,在碗里找了半天也没见到肉丝,我向师傅提出质疑,师傅说:“这 是你的错觉!” 我在饭菜里发现一只小强,我向师傅提出质疑,师傅说:“这都是你的错觉!” …… 买完饭菜,师傅叫我刷卡,我说刷了,师傅说没有,我说:“这也是你的错觉!!” (珞珈山水) 41.今年清明长假,几个老同学聚会,一兄弟说:“奥运年不太平啊,现在北京的安保
程度非常高!就说我们学校在中南海附近,上个礼拜在操场踢球,结果我不小心把球踢过 了墙,更没想到的是球还没落地就被狙暴了……” (北邮人) 42.某gg应丑女要求设计一自慰器,gg很上心,采用了优质不锈钢,用高级陶瓷刀加工
,基本合理。外观设计仿真度也很高,gg检查了几遍,感觉很满意。其实,有一个地方出 错了,他把∮标称M了……(饮水思源) 43.谷歌总裁造访某校,提问期间,学生们好奇问他有没有看过艳照。他说:“看了啊
,而且我还发现每个人都哭着喊着留信箱求照片。至于吗?直接打开google搜索‘cgx.ra r’,随便找个链接就能下载下来,全套的都有,不知道你们这些学生都在网上瞎忙活些啥 !” (小百合) 44.现在去超市买东西绝对不能货比三家——我家附近有三个大超市,平时买东西总是
比较比较后才买,结果这次失算了:看到第二家的时候发现比第一家贵,第三家的比第二 家的还贵,于是赶紧跑回第一家买,孰料居然涨价了,比第三家的还贵!(水木社区) 45.下午和班里几个女孩一起去逛街,刚到李维斯(levis),就听见班花像发现新大 陆般地向大家喊道:”呀!快来看,快来看,原来陈冠希穿上衣服就是这个样子的呀~” (天地人大) 46.小王买了一台lenovo的笔记本,可用了没还到一个礼拜就开不了机了,小王没拿去
修却直接把这台笔记本砸碎并扔到垃圾箱里,请问这又是为什么呢?(鼓浪听涛) 47.楼下小黑板上写着:若发现门口堆垃圾,视情况扣一到三分,每五个积分须拿一个
苹果来后勤处兑换,以清零积分……(珞珈山水) 48.A:50多平的两室一厅,隔壁房间住了两对美国少男少女,每晚都要被吵死,简直
不能忍了,大家快救救我~~~ B:幸福吧你,我对屋住四个女的和一个日本爷们!(水木社区) 49.寝室夜谈,上铺一哥们:“哎,你们说古今中外哪个女人最会喊痛?”
兄弟几个一听来了兴趣,纷纷问是谁。 上铺那哥们:“真笨!答案是武则天——因为一代女皇武则天啊!~”(隐讳,鼓浪听 涛) 50.下课了,gg跑来上网。(天^涯社区图开*心乐园图形防伪贴) gg:我来了~~~ mm:葵花点穴手! gg:……(饮水思源) 最残忍的审讯方法队长问警员:犯人招了么?警员说:没有,犯人的嘴硬得很!队长说:给犯人看《环珠格格》没?警员说:看了,连《流星花园》都看了,犯人也没招!队长说:给犯人看美女作家的文章了吗?警员说:看了,犯人吐了,也没招。队长恼了:给犯人看小资写的东西。警员:也给犯人看了,犯人晕倒了3次,还是挺住了。队长大怒:把新版的《射雕》和《笑傲》一起给犯人看,左右各摆一个电视机。警员:大哥,这太狠了吧!队长:没办法,硬汉就得用猛药!过了一天,队长又问:怎么样,招了没?警员说:犯人大小便失禁,硬是没招!队长咆哮着说:放中国足球。警员:大哥,会出人命的,要不换一个?队长:不是犯人死就是我亡!过了一天,队长又问:怎么样,招了没?警员说:犯人咬舌自尽了……,临死前说了8个字:珍爱生命,远离国足! 成人笑话?1、变态楼主:真想结识个外国女友,自己国家的已经不稀罕了,但我就会说粤语,唉,学历不够,遥远啊~ 暴强回复:你认为把0.5的铅芯塞到1.0的自动铅笔里能写出字来吗? 2、变态楼主:男人就像1元硬币,正面是1,反面是菊花。 暴强回复:女人就像是古代钱币,正面是洞,反面也是洞。 3、变态楼主:李宇春和芙蓉姐姐同时掉水里,你手里有一块砖,你砸谁? 暴强回复:谁救砸谁。 4、变态楼主:大家有什么不敢点的网站告诉我吧,我来点。 暴强回复:www.一点就草楼主他妈.com 5、变态楼主:如果再次碰到你的前男(女)友,你最想跟他(她)说的一句话是什么? 暴强回复:我现在时间长了~~真的。 6、变态楼主:太阳出来了,我的蝙蝠翅膀和蹄子消失了,后面长出的白色的羽毛。 暴强回复:然后你变成了一张洁白的卫生巾。 7、变态楼主:和女友打闹,我随手在地上拿起一个我们刚从超市买来的黄瓜,想扔过去,女友大声说我变态,唉,不知道何解? 暴强回复:你不懂了伐,女人一般都欢喜说反话。说你变态其实在反着夸你你太有才了,快用黄瓜XXX我吧,你喂她不饱还想用黄瓜来顶她,她一时气愤所以就话你变态了,其实她高兴得不得了。啊哈哈达~ 8、论坛楼主:为什么生下的孩子要跟父亲一个姓? 论坛沙发:因为取款机里吐出的钱归插卡人所有。 9、论坛楼主:女友总说自己胸小,我觉得还可以啊,请论坛GG们帮忙鉴定一下~ 论坛沙发:后背上长俩青春痘! 10、****楼主:通过海南矿泉水喝死人事件,可以看到中国的食品安全堪忧,矿泉水也 能喝死人?不是有QS标志吗? 暴强回复:弱弱的问一下,QS是不是去死的意思? 11、****楼主:今天见男网友对方一直暗示想上床,想问:难道现在网友见面就是为了上床? 暴强回复:网友见面不上床?你开什么玩笑,大家都这么忙。 12、****楼主:我是处男,我有点害怕,跪求鉴别virgin的方法,因为《物种起源》上说:女人曾经ML过的男人的基因会影响到以后与其他男人的后代;你相信吗?找不到virgin宁愿打光棍。 暴强回复:你就为这么个破事去打扰达尔文爷爷? (编按:一定要学好科学文化知识) 13、说说中国的30分钟新闻联播。 暴强回复:有什么说的:前十分钟,领导们很忙。中十分钟,全国人民都很幸 福。后十分钟,世界上其它国家人民都生活在水深火热之中。 14、变态楼主:都40多了还有许多事不明白该问谁? 暴强回复:外事问谷歌,内事问百度,房事问天涯 15、****楼主:大家说说各自公司的情况,汇总一下,看看,经济形势! 暴强回复:我做鸭的,现在富婆都不出来了,都为了省钱改用小黄瓜了… 16、楼主:利用东西方信息不对称,很多国外地摊货到中国都变成了奢侈品,那中国有啥垃圾牌子在国外冒充高档货? 回复:章子怡。 17、楼主:刚才看到一句话,“女人对男人的感情是从ML后开始”,请问这里的“ML”是什么意思? 回复:女人对男人的感情是马路开始的! 回复:上面都错了,应该是女人对男人的感情是从中号和大号开始的! (编按:一定要学好英文) 18、楼主:我把我家的狗给揍了!地震它也不告诉我,平时叫得那么欢,刚才地震时竟像没事似的在窝里睡觉! 回复:唉,毕竟不是亲生的…… 19、变态楼主:80末女孩小丽(化名),在网上炫耀“战绩”,据她说,每和一个男人发生关系小丽会把安全套保留下来,直到现在可以串成一条围裙。 暴强回复:会不会是外星生物派来地球的集精器? 20、变态楼主:在庙里工作如何?如何进入? 暴强回复:送你一句话:舍不得菊花套不着方丈! 只有十句话第一句
如果我们之间有1000步的距离 你只要跨出第1步 我就会朝你的方向走其余的999步 第二句 通常愿意留下来跟你争吵的人 才是真正爱你的人 第三句 付出真心 才会得到真心 却也可能伤得彻底 保持距离 就能保护自己 却也注定永远寂寞 第四句 有时候 不是对方不在乎你 而是你把对方看得太重 第五句 朋友就是把你看透了 还能喜欢你的人 第六句 就算是believe 中间也藏了一个lie 第七句 真正的好朋友 并不是在一起就有聊不完的话题 而是在一起 就算不说话 也不会感到尴尬 第八句 没有一百分的另一半 只有五十分的两个人 第九句 为你的难过而快乐的 是敌人 为你的快乐而快乐的 是朋友 为你的难过而难过的 就是那些 该放进心里的人 第十句 冷漠 有时候并不是无情 只是一种避免被伤害的工具 又回来了我这人不是一般的懒啊,几次说要好好管理这个,结果……
最近很偶然(其实也不算偶然 应该是突然)地得知了以前一件事的真相,心里那个滋味啊,真是酸甜苦辣爱恨情仇啥都有。这几天几乎都睡不了,只有累得眼睛都睁不开的时候才睡觉,N多的往事,无限的感慨……哎 人老了。
狂看关于生活的语录和笑话之类的,其他啥都没干,想想还是自己整理下好,就回这里了。
给Analytics增加针对百度/3721的搜索来源统计和AWStats一样:Google完全没有考虑中国的搜索引擎市场中更主要的2个搜索引擎来源:Baidu/3721等搜索引擎的来源,如果要统计,方法也很简单:hack一下urchin.js 1 下载urchin.js到本地:修改其中的搜索来源定义
2 本地部署urchin.js即可:将urchin.js和adsense的代码合并
百度的搜索关键词参数另外还有word= 等,增加了一行定义 国外的统计系统: WebAlizer/ AWStats 等都缺乏对中国搜索引擎的统计。但是一般都提供了自定义的配置或者可以通过修改代码实现定义的扩展。 判断是否安装某个控件,插件不是每个都可以,不知道为什么有的不行,比如RealPlayer的ActiveX就不行,有待研究。
<script>
function isInsalled(oID){ with(event.srcElement){//给事件发生的对象添加clientCaps默认行为 addBehavior(’#default#clientcaps’) //根据控件的ID检测是否已经安装,是的话继续检测控件版本,否则提示"未安装" isComponentInstalled(oID,"componentid")?alert(’已安装,版本:’+getComponentVersion(oID,"componentid")):alert("未安装") }} </script> <button onclick="isInsalled(’{D27CDB6E-AE6D-11cf-96B8-444553540000}’)">Micromedia Flash Player</button> <button onclick="isInsalled(’{22d6f312-b0f6-11d0-94ab-0080c74c7e95}’)">Window Media Player</button> 主要是依靠IE的强大的默认行为clientCaps。在单击按钮时调用isInsalled函数,用addBehavior方法给该按钮添加clientCaps行为,然后利用clientCaps行为的isComponentInstalled方法判断指定控件是否已安装,如果已安装,继续用getComponentVersion方法获取已安装的控件版本号。 addBehavior 给元素附加一个行为。 isComponentInstalled 检索指定组件(插件、控件)是否可用。 getComponentVersion 获取指定组件的版本号。 Windows Media Rights Manager(DRM)资料这个SDK要MONEY的……
临时记录,完整地址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmrm10/htm/irmgetlicenseobject.asp
RMGetLicense Object
RMGetLicense
clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062
GetAsyncCallStatus
Retrieves the status of the last call to the GetLicenseFromURLAsync method.
GetDRMSecurityVersion Returns the individualization version of the consumer's player.
GetDRMVersion Returns the DRM version of the consumer's player application.
GetLicenseFromURL Sends a license request and retrieves a license.
GetLicenseFromURLAsync Creates a separate thread to send a license request and retrieve a license.
GetSystemInfo Retrieves the Windows Media Rights Manager system information from the consumer's computer.
StoreLicense Stores a license on the consumer's computer.
MediaPlayer9 ActiveX 详解{6BF52A52-394A-11d3-B153-00C04F79FAA6}
Windows Media Player控件
需要Windows Media Player 9或以上版本 ##0 IWMPEvents = Notuseful ##1 IWMPEvents.OpenStateChange = Sent when the control changes OpenState ##1 IWMPEvents.PlayStateChange = Sent when the control changes PlayState ##1 IWMPEvents.AudioLanguageChange = Sent when the current audio language has changed ##1 IWMPEvents.StatusChange = Sent when the status string changes ##1 IWMPEvents.ScriptCommand = Sent when a synchronized command or URL is received ##1 IWMPEvents.NewStream = Sent when a new stream is started in a channel ##1 IWMPEvents.Disconnect = Sent when the control is disconnected from the server ##1 IWMPEvents.Buffering = Sent when the control begins or ends buffering ##1 IWMPEvents.Error = Sent when the control has an error condition ##1 IWMPEvents.Warning = Sent when the control encounters a problem ##1 IWMPEvents.EndOfStream = Sent when the end of file is reached ##1 IWMPEvents.PositionChange = Indicates that the current position of the movie has changed ##1 IWMPEvents.MarkerHit = Sent when a marker is reached ##1 IWMPEvents.DurationUnitChange = Indicates that the unit used to express duration and position has changed ##1 IWMPEvents.CdromMediaChange = Indicates that the CD ROM media has changed ##1 IWMPEvents.PlaylistChange = Sent when a playlist changes ##1 IWMPEvents.CurrentPlaylistChange = Sent when the current playlist changes ##1 IWMPEvents.CurrentPlaylistItemAvailable = Sent when a current playlist item becomes available ##1 IWMPEvents.MediaChange = Sent when a media object changes ##1 IWMPEvents.CurrentMediaItemAvailable = Sent when a current media item becomes available ##1 IWMPEvents.CurrentItemChange = Sent when the item selection on the current playlist changes ##1 IWMPEvents.MediaCollectionChange = Sent when the media collection needs to be requeried ##1 IWMPEvents.MediaCollectionAttributeStringAdded = Sent when an attribute string is added in the media collection ##1 IWMPEvents.MediaCollectionAttributeStringRemoved = Sent when an attribute string is removed from the media collection ##1 IWMPEvents.MediaCollectionAttributeStringChanged = Sent when an attribute string is changed in the media collection ##1 IWMPEvents.PlaylistCollectionChange = Sent when playlist collection needs to be requeried ##1 IWMPEvents.PlaylistCollectionPlaylistAdded = Sent when a playlist is added to the playlist collection ##1 IWMPEvents.PlaylistCollectionPlaylistRemoved = Sent when a playlist is removed from the playlist collection ##1 IWMPEvents.PlaylistCollectionPlaylistSetAsDeleted = Sent when a playlist has been set or reset as deleted ##1 IWMPEvents.ModeChange = Playlist playback mode has changed ##1 IWMPEvents.MediaError = Sent when the media object has an error condition ##1 IWMPEvents.OpenPlaylistSwitch = Current playlist switch with no open state change ##1 IWMPEvents.DomainChange = Send a current domain ##1 IWMPEvents.SwitchedToPlayerApplication = Sent when display switches to player application ##1 IWMPEvents.SwitchedToControl = Sent when display switches to control ##1 IWMPEvents.PlayerDockedStateChange = Sent when the player docks or undocks ##1 IWMPEvents.PlayerReconnect = Sent when the OCX reconnects to the player ##1 IWMPEvents.Click = Occurs when a user clicks the mouse ##1 IWMPEvents.DoubleClick = Occurs when a user double-clicks the mouse ##1 IWMPEvents.KeyDown = Occurs when a key is pressed ##1 IWMPEvents.KeyPress = Occurs when a key is pressed and released ##1 IWMPEvents.KeyUp = Occurs when a key is released ##1 IWMPEvents.MouseDown = Occurs when a mouse button is pressed ##1 IWMPEvents.MouseMove = Occurs when a mouse pointer is moved ##1 IWMPEvents.MouseUp = Occurs when a mouse button is released ##0 WMPPlaylistChangeEventType = Notuseful ##1 WMPPlaylistChangeEventType.wmplcUnknown = Unknown ##1 WMPPlaylistChangeEventType.wmplcClear = Clear ##1 WMPPlaylistChangeEventType.wmplcInfoChange = InfoChange ##1 WMPPlaylistChangeEventType.wmplcMove = Move ##1 WMPPlaylistChangeEventType.wmplcDelete = Delete ##1 WMPPlaylistChangeEventType.wmplcInsert = Insert ##1 WMPPlaylistChangeEventType.wmplcAppend = Append ##1 WMPPlaylistChangeEventType.wmplcPrivate = Private ##1 WMPPlaylistChangeEventType.wmplcNameChange = NameChange ##1 WMPPlaylistChangeEventType.wmplcMorph = Morph ##1 WMPPlaylistChangeEventType.wmplcSort = Sort ##1 WMPPlaylistChangeEventType.wmplcLast = Last ##1 WindowsMediaPlayer = WMP播放器 Windows媒体播放器控件 ##1 WindowsMediaPlayer.close = 关闭 关闭媒体播放器 ##1 WindowsMediaPlayer.URL = 地址 返回或设置要播放的媒体文件的文件名或者URL,例如"c:\1.mp3","http://www.cnn.com/video.asf" ##1 WindowsMediaPlayer.openState = 打开状态 返回播放器的打开状态 ##1 WindowsMediaPlayer.playState = 播放状态 返回播放器的播放状态,使用"播放状态"枚举常量 ##1 WindowsMediaPlayer.Getcontrols = 取控制 获取控制对象 ##1 WindowsMediaPlayer.Getsettings = 取设定 获取设定对象 ##1 WindowsMediaPlayer.GetcurrentMedia = 取当前媒体 获取当前媒体对象 ##0 WindowsMediaPlayer.GetmediaCollection = Notuseful 获取媒体集合对象 ##0 WindowsMediaPlayer.GetplaylistCollection = Notuseful 获取播放列表集合对象 ##1 WindowsMediaPlayer.versionInfo = 版本信息 返回Windows Media Player的版本信息 ##0 WindowsMediaPlayer.launchURL = Notuseful ##1 WindowsMediaPlayer.Getnetwork = 取网络 获取网络对象 ##1 WindowsMediaPlayer.GetcurrentPlaylist = 取当前播放列表 获取当前播放列表对象 ##1 WindowsMediaPlayer.GetcdromCollection = 取光驱集 获取光驱集合对象 ##0 WindowsMediaPlayer.GetclosedCaption = Notuseful Returns the closed caption handler ##1 WindowsMediaPlayer.isOnline = 在线 返回当前计算机是否连接到了Internet上 ##0 WindowsMediaPlayer.GetError = Notuseful 获取错误对象 ##1 WindowsMediaPlayer.status = 状态 以文本型方式返回当前播放器的状态 ##0 WindowsMediaPlayer.Getdvd = Notuseful 获取DVD对象 ##0 WindowsMediaPlayer.newPlaylist = Notuseful 创建一个新的播放列表 ##1 WindowsMediaPlayer.newPlaylist.bstrName = 播放列表名 新的播放列表的名称 ##1 WindowsMediaPlayer.newMedia = 创建媒体对象 创建一个新的媒体对象 ##1 WindowsMediaPlayer.newMedia.bstrURL = 媒体文件 媒体文件名,例如:"c:\1.mp3","http://www.cnn.com/capsaddam.wmv" ##1 WindowsMediaPlayer.enabled = 可用 返回或设置控件是否可用 ##1 WindowsMediaPlayer.fullScreen = 全屏模式 返回或设置控件是否使用全屏幕模式 ##1 WindowsMediaPlayer.enableContextMenu = 菜单可用 返回或设置在Windows Media Player控件界面中是否使用菜单 ##1 WindowsMediaPlayer.uiMode = 界面模式 返回或设置控件界面的模式,可以为以下文本型常量之一:"invisible"、#隐藏所有; "none"、#只显示视频或者音频效果;"mini"、#MINI模式;"full"、#完整模式;"custom"、#自定义效果 ##1 WindowsMediaPlayer.stretchToFit = 自适应尺寸 返回或设置视频大小是否适应控件大小 ##1 WindowsMediaPlayer.windowlessVideo = 无窗口模式 返回或设置控件播放视频是否在无窗口模式 ##1 WindowsMediaPlayer.isRemote = 远程模式 返回播放器是否在远程方式下运行 ##0 WindowsMediaPlayer.GetplayerApplication = Notuseful 获取播放程序对象 ##1 WindowsMediaPlayer.openPlayer = 打开播放器 使用指定的URL连接来打开Windows Media Player主程序 ##1 WindowsMediaPlayer.openPlayer.bstrURL = URL 例如:"c:\1.mp3","http://www.cnn.com/video.wmv" ##1 WindowsMediaPlayer.SetcurrentMedia = 置当前媒体 设置当前媒体对象 ##1 WindowsMediaPlayer.SetcurrentMedia.属性值 = 媒体对象 媒体对象 ##1 WindowsMediaPlayer.SetcurrentPlaylist = 置当前播放列表 设置当前播放列表 ##1 WindowsMediaPlayer.SetcurrentPlaylist.属性值 = 播放列表 播放列表对象 ##1 _WMPOCXEvents.OpenStateChange = 打开状态被改变 当前打开状态被改变的时候触发此事件 ##1 _WMPOCXEvents.OpenStateChange.NewState = 新的状态 使用"打开状态"枚举常量 ##1 _WMPOCXEvents.PlayStateChange = 播放状态被改变 当播放状态属性被改变的时候触发此事件 ##1 _WMPOCXEvents.PlayStateChange.NewState = 新的状态 请参见"播放状态"枚举常量 ##1 _WMPOCXEvents.AudioLanguageChange = 音频语言被改变 当音频语言被改变的时候触发此事件 ##1 _WMPOCXEvents.AudioLanguageChange.LangID = 语言标识 新的语言的标识(LCID) ##1 _WMPOCXEvents.StatusChange = 状态被改变 当前状态属性被改变的时候触发此事件 ##0 _WMPOCXEvents.ScriptCommand = Notuseful Sent when a synchronized command or URL is received ##0 _WMPOCXEvents.NewStream = Notuseful Sent when a new stream is started in a channel ##0 _WMPOCXEvents.Disconnect = Notuseful Sent when the control is disconnected from the server ##1 _WMPOCXEvents.Buffering = 正在缓冲 本时间在Windows Media Player控件缓冲或下载,并且在缓冲开始或结尾部分时触发。 ##1 _WMPOCXEvents.Buffering.Start = 是否在开头 如果为 真,正在缓冲开头,反之,为正在缓冲结尾 ##1 _WMPOCXEvents.Error = 错误发生 当发生错误的时候触发此事件 ##0 _WMPOCXEvents.Warning = Notuseful Sent when the control encounters a problem ##0 _WMPOCXEvents.EndOfStream = Notuseful Sent when the end of file is reached ##1 _WMPOCXEvents.PositionChange = 位置被改变 当播放位置被改变的时候触发此事件 ##1 _WMPOCXEvents.PositionChange.oldPosition = 旧的位置 ##1 _WMPOCXEvents.PositionChange.newPosition = 新的位置 ##0 _WMPOCXEvents.MarkerHit = Notuseful Sent when a marker is reached ##0 _WMPOCXEvents.DurationUnitChange = Notuseful Indicates that the unit used to express duration and position has changed ##1 _WMPOCXEvents.CdromMediaChange = 光驱媒体更改 本事件在CD/DVD光驱在弹出或插入时被触发 ##1 _WMPOCXEvents.CdromMediaChange.CdromNum = 光驱序号 光盘驱动器的序号 ##0 _WMPOCXEvents.PlaylistChange = Notuseful Sent when a playlist changes ##0 _WMPOCXEvents.CurrentPlaylistChange = Notuseful Sent when the current playlist changes ##0 _WMPOCXEvents.CurrentPlaylistItemAvailable = Notuseful Sent when a current playlist item becomes available ##0 _WMPOCXEvents.MediaChange = Notuseful Sent when a media object changes ##0 _WMPOCXEvents.CurrentMediaItemAvailable = Notuseful Sent when a current media item becomes available ##0 _WMPOCXEvents.CurrentItemChange = Notuseful 该事件在"WMP控制"对象的"当前项目"被改变的时候被触发 ##0 _WMPOCXEvents.MediaCollectionChange = Notuseful Sent when the media collection needs to be requeried ##0 _WMPOCXEvents.MediaCollectionAttributeStringAdded = Notuseful Sent when an attribute string is added in the media collection ##0 _WMPOCXEvents.MediaCollectionAttributeStringRemoved = Notuseful Sent when an attribute string is removed from the media collection ##0 _WMPOCXEvents.MediaCollectionAttributeStringChanged = Notuseful Sent when an attribute string is changed in the media collection ##0 _WMPOCXEvents.PlaylistCollectionChange = Notuseful Sent when playlist collection needs to be requeried ##0 _WMPOCXEvents.PlaylistCollectionPlaylistAdded = Notuseful Sent when a playlist is added to the playlist collection ##0 _WMPOCXEvents.PlaylistCollectionPlaylistRemoved = Notuseful Sent when a playlist is removed from the playlist collection ##0 _WMPOCXEvents.PlaylistCollectionPlaylistSetAsDeleted = Notuseful Sent when a playlist has been set or reset as deleted ##0 _WMPOCXEvents.ModeChange = Notuseful Playlist playback mode has changed ##1 _WMPOCXEvents.MediaError = 媒体发生错误 当媒体对象发生错误的时候触发此事件 ##1 _WMPOCXEvents.MediaError.pMediaObject = 媒体对象 发生错误的媒体对象 ##0 _WMPOCXEvents.OpenPlaylistSwitch = Notuseful Current playlist switch with no open state change ##0 _WMPOCXEvents.DomainChange = Notuseful Send a current domain ##0 _WMPOCXEvents.SwitchedToPlayerApplication = Notuseful 该事件在远程控件切换到完整的播放程序时被触发 ##0 _WMPOCXEvents.SwitchedToControl = Notuseful 该事件在远程控件切换回控件时被触发 ##0 _WMPOCXEvents.PlayerDockedStateChange = Notuseful Sent when the player docks or undocks ##1 _WMPOCXEvents.PlayerReconnect = 播放器重新连接 当控件重新连接到播放器的时候触发此事件 ##1 _WMPOCXEvents.Click = 被单击 当用户单击左键的时候触发此事件 ##1 _WMPOCXEvents.Click.nButton = 鼠标按钮 0、#左键;1、右键;2、中键; ##1 _WMPOCXEvents.Click.nShiftState = Shift键状态 0、Shift键被按下;1、Ctrl键被按下;2、Alt键被按下; ##1 _WMPOCXEvents.Click.fX = 横坐标 横坐标 ##1 _WMPOCXEvents.Click.fY = 纵坐标 纵坐标 ##1 _WMPOCXEvents.DoubleClick = 鼠标双击 当前鼠标双击的时候触发此事件 ##1 _WMPOCXEvents.DoubleClick.nButton = 鼠标按键 为以下常量之一:0、#左键; 1、#右键;2、#中键; ##1 _WMPOCXEvents.DoubleClick.nShiftState = Shift键状态 为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下 ##1 _WMPOCXEvents.DoubleClick.fX = 横坐标 横坐标 ##1 _WMPOCXEvents.DoubleClick.fY = 纵坐标 纵坐标 ##1 _WMPOCXEvents.KeyDown = 按下按键 当按下键盘上的某键的时候触发此事件 ##1 _WMPOCXEvents.KeyPress = 键输入 当键盘上的某键被按下并抬起一次触发此事件 ##1 _WMPOCXEvents.KeyPress.nKeyAscii = 键码 对应Ascii码 ##1 _WMPOCXEvents.KeyUp = 放开按键 当放开键盘上的某个按键的时候触发此事件 ##1 _WMPOCXEvents.KeyUp.nKeyCode = 键码 对应Ascii码 ##1 _WMPOCXEvents.KeyUp.nShiftState = Shift键状态 为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下 ##1 _WMPOCXEvents.MouseDown = 鼠标按键被按下 当鼠标按键被按下的时候触发此事件 ##1 _WMPOCXEvents.MouseDown.nButton = 鼠标按键 为以下常量之一:0、#左键; 1、#右键;2、#中键; ##1 _WMPOCXEvents.MouseDown.nShiftState = Shift键状态 为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下 ##1 _WMPOCXEvents.MouseDown.fX = 横坐标 横坐标 ##1 _WMPOCXEvents.MouseDown.fY = 纵坐标 纵坐标 ##1 _WMPOCXEvents.MouseMove = 鼠标移动 当鼠标移动的时候触发此事件 ##1 _WMPOCXEvents.MouseMove.nButton = 鼠标按键 为以下常量之一:0、#左键; 1、#右键;2、#中键; ##1 _WMPOCXEvents.MouseMove.nShiftState = Shift键状态 为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下 ##1 _WMPOCXEvents.MouseMove.fX = 横坐标 横坐标 ##1 _WMPOCXEvents.MouseMove.fY = 纵坐标 纵坐标 ##1 _WMPOCXEvents.MouseUp = 鼠标按键被抬起 当鼠标按键被抬起的时候触发此时间 ##1 _WMPOCXEvents.MouseUp.nButton = 鼠标按键 为以下常量之一:0、#左键; 1、#右键;2、#中键; ##1 _WMPOCXEvents.MouseUp.nShiftState = Shift键状态 为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下 ##1 _WMPOCXEvents.MouseUp.fX = 横坐标 横坐标 ##1 _WMPOCXEvents.MouseUp.fY = 纵坐标 纵坐标 ##0 IWMPCore2 = Notuseful ##1 IWMPCore2.close = Closes the media ##1 IWMPCore2.URL = Returns or sets the URL ##1 IWMPCore2.openState = Returns the open state of the player ##1 IWMPCore2.playState = Returns the play state of the player ##1 IWMPCore2.Getcontrols = Returns the control handler ##1 IWMPCore2.Getsettings = Returns the settings handler ##1 IWMPCore2.GetcurrentMedia = Returns or sets the current media object ##1 IWMPCore2.GetmediaCollection = Returns the media collection handler ##1 IWMPCore2.GetplaylistCollection = Returns the playlist collection handler ##1 IWMPCore2.versionInfo = Returns the version information for the player ##1 IWMPCore2.Getnetwork = Returns the network information handler ##1 IWMPCore2.GetcurrentPlaylist = Returns/sets the current playlist ##1 IWMPCore2.GetcdromCollection = Get the CDROM drive collection ##1 IWMPCore2.GetclosedCaption = Returns the closed caption handler ##1 IWMPCore2.isOnline = Returns whether the machine is online. ##1 IWMPCore2.GetError = Returns the error object ##1 IWMPCore2.status = Returns status string ##1 IWMPCore2.Getdvd = Returns the DVD handler ##1 IWMPCore2.SetcurrentMedia = Returns or sets the current media object ##1 IWMPCore2.SetcurrentPlaylist = Returns/sets the current playlist ##0 IWMPCore = Notuseful 本对象是Windows Media Player控件的核心部分,使用它可以取得大量常用的Windows Media Player提供的对象 ##1 IWMPCore.close = 关闭WMP 关闭Windows Media Player ##1 IWMPCore.URL = 媒体位置 返回或设置媒体对象的位置,例如:"c:\1.mpg","c:\1.mp3" ##1 IWMPCore.openState = Returns the open state of the player ##1 IWMPCore.playState = Returns the play state of the player ##1 IWMPCore.Getcontrols = Returns the control handler ##1 IWMPCore.Getsettings = Returns the settings handler ##1 IWMPCore.GetcurrentMedia = Returns or sets the current media object ##1 IWMPCore.GetmediaCollection = Returns the media collection handler ##1 IWMPCore.GetplaylistCollection = Returns the playlist collection handler ##1 IWMPCore.versionInfo = 版本信息 返回当前Windows Media Player的版本信息 ##1 IWMPCore.Getnetwork = Returns the network information handler ##1 IWMPCore.GetcurrentPlaylist = Returns/sets the current playlist ##1 IWMPCore.GetcdromCollection = Get the CDROM drive collection ##1 IWMPCore.GetclosedCaption = Returns the closed caption handler ##1 IWMPCore.isOnline = Returns whether the machine is online. ##1 IWMPCore.GetError = Returns the error object ##1 IWMPCore.status = Returns status string ##1 IWMPCore.SetcurrentMedia = Returns or sets the current media object ##1 IWMPCore.SetcurrentPlaylist = Returns/sets the current playlist ##1 WMPOpenState = 打开状态 本对象枚举了Windows Media Player在打开媒体文件时,所有可能的状态 ##1 WMPOpenState.wmposUndefined = 不确定 不确定的状态 ##1 WMPOpenState.wmposPlaylistChanging = 播放列表被改变 新的播放列表已被加载 ##1 WMPOpenState.wmposPlaylistLocating = 正在定位播放列表 正在定位播放列表 ##1 WMPOpenState.wmposPlaylistConnecting = 正在连接播放列表 正在连接服务器上的播放列表 ##1 WMPOpenState.wmposPlaylistLoading = 正在加载播放列表 正在加载播放列表 ##1 WMPOpenState.wmposPlaylistOpening = 正在打开播放列表 正在打开播放列表 ##1 WMPOpenState.wmposPlaylistOpenNoMedia = 播放列表打开 播放列表处于打开状态 ##1 WMPOpenState.wmposPlaylistChanged = 播放列表被改变 播放列表被改变 ##1 WMPOpenState.wmposMediaChanging = 媒体被改变 新的媒体文件已被加载 ##1 WMPOpenState.wmposMediaLocating = 定位媒体 正在定位媒体文件 ##1 WMPOpenState.wmposMediaConnecting = 连接媒体 正在连接服务器上的媒体文件 ##1 WMPOpenState.wmposMediaLoading = 加载媒体 正在加载媒体 ##1 WMPOpenState.wmposMediaOpening = 正在打开媒体文件 正在打开媒体文件 ##1 WMPOpenState.wmposMediaOpen = 媒体被打开 媒体已被打开 ##1 WMPOpenState.wmposBeginCodecAcquisition = 开始获取编码器 开始获取编码器 ##1 WMPOpenState.wmposEndCodecAcquisition = 结束编码器获取 结束编码器获取 ##1 WMPOpenState.wmposBeginLicenseAcquisition = 开始许可证获取 开始许可证获取 ##1 WMPOpenState.wmposEndLicenseAcquisition = 结束许可证获取 结束许可证获取 ##1 WMPOpenState.wmposBeginIndividualization = 开始个性化设置 开始个性化设置 ##1 WMPOpenState.wmposEndIndividualization = 结束个性化设置 结束个性化设置 ##1 WMPOpenState.wmposMediaWaiting = 正在等待 正在等待媒体文件 ##1 WMPOpenState.wmposOpeningUnknownURL = 打开未知类型的URL 正在打开一个未知类型的URL ##1 WMPPlayState = 播放状态 本对象枚举了Windows Media Player在播放媒体文件时,所有可能的状态 ##1 WMPPlayState.wmppsUndefined = 未知状态 未知状态 ##1 WMPPlayState.wmppsStopped = 播放暂停 播放暂停 ##1 WMPPlayState.wmppsPaused = 播放暂停 播放暂停 ##1 WMPPlayState.wmppsPlaying = 正在播放 正在播放 ##1 WMPPlayState.wmppsScanForward = 向前搜索 向前搜索流媒体数据 ##1 WMPPlayState.wmppsScanReverse = 向后搜索 向后搜索流媒体数据 ##1 WMPPlayState.wmppsBuffering = 正在缓冲 媒体文件正在被缓冲 ##1 WMPPlayState.wmppsWaiting = 等待加载 等待加载流媒体 ##1 WMPPlayState.wmppsMediaEnded = 播放结束 播放结束 ##1 WMPPlayState.wmppsTransitioning = 准备新媒体 准备新的媒体文件 ##1 WMPPlayState.wmppsReady = 播放准备就绪 播放准备就绪 ##1 WMPPlayState.wmppsReconnecting = 尝试重新连接 尝试重新连接流媒体数据 ##1 WMPPlayState.wmppsLast = 上一次状态 状态没有改变 ##1 IWMPControls = WMP控制 本对象提供了控制媒体播放的各种方法,例如:播放、暂停...... ##0 IWMPControls.GetisAvailable = Notuseful Returns whether or not the specified media functionality is available ##1 IWMPControls.play = 播放 播放当前媒体项目 ##1 IWMPControls.stop = 停止 停止播放 ##1 IWMPControls.pause = 暂停 暂停当前正在播放的内容 ##1 IWMPControls.fastForward = 快进 快进 ##1 IWMPControls.fastReverse = 快退 快退 ##1 IWMPControls.currentPosition = 当前位置 返回或者设置从开始处到当前播放位置的长度,以秒为单位。 ##1 IWMPControls.currentPositionString = 当前位置文本 返回当前播放位置的文本表达。 ##1 IWMPControls.next = 下一个 将当前播放项目设为播放列表(PlayList)中的下一个项目 ##1 IWMPControls.previous = 前一个 与"下一个"命令作用正好相反 ##1 IWMPControls.GetcurrentItem = 取当前项目 获取当前媒体对象 ##0 IWMPControls.currentMarker = Notuseful 设置或返回当前标记号 ##1 IWMPControls.playItem = 播放项目 开始播放指定的媒体项目 ##1 IWMPControls.playItem.pIWMPMedia = 媒体项目 要播放的媒体项目("WMP媒体"对象) ##1 IWMPControls.SetcurrentItem = 置当前媒体 设置当前媒体对象 ##1 IWMPControls.SetcurrentItem.属性值 = 媒体对象 要设置的"WMP媒体"对象 ##1 IWMPMedia = WMP媒体 本对象提供返回或设置一个多媒体剪辑的属性 ##1 IWMPMedia.GetisIdentical = 判断相等 判断参数所提供的媒体对象和本媒体对象是否是同样的 ##1 IWMPMedia.GetisIdentical.pIWMPMedia = 媒体对象 要判断的媒体对象("WMP媒体"对象) ##1 IWMPMedia.sourceURL = 源连接 返回本媒体对象的原始URL连接 ##1 IWMPMedia.name = 媒体名称 返回媒体的名称 ##1 IWMPMedia.imageSourceWidth = 源图像宽度 返回图像的原始宽度,以象素为单位 ##1 IWMPMedia.imageSourceHeight = 源图像高度 返回图像的原始高度,以象素为单位 ##1 IWMPMedia.markerCount = 标记数量 返回文件中标记的数量 ##1 IWMPMedia.getMarkerTime = 取标记时间 通过序号获取标记时间 ##1 IWMPMedia.getMarkerTime.MarkerNum = 序号 标记序号 ##1 IWMPMedia.getMarkerName = 取标记名 通过标记序号获取标记名 ##1 IWMPMedia.getMarkerName.MarkerNum = 序号 标记序号 ##1 IWMPMedia.duration = 播放位置 以秒为单位返回或设置播放的位置 ##1 IWMPMedia.durationString = 播放位置文本 返回以文本方式表达的当前的播放位置,"HH:MM:SS"格式 ##1 IWMPMedia.attributeCount = 属性的数量 返回本媒体的属性的数量 ##1 IWMPMedia.getAttributeName = 取属性名 通过属性序号取得属性的名称,注意:属性序号必须在0 ~ 属性数量-1 的范围内 ##1 IWMPMedia.getItemInfo = 取项目信息 通过项目名获取项目信息 ##1 IWMPMedia.getItemInfo.bstrItemName = 项目名 项目名,可为下列文本型常量之一(更多项目名,请参见Windows Media Player 9 SDK 文档中的"Available Attributes"部分): "Author"、#本媒体剪辑的作者;"Bitrate"、#位比率(秒为单位);"Copyright"、#版权信息;"CurrenBitrate"、#当前位比率(秒为单位);"Description"、#媒体内容的描述;"Duration"、#持续时间(秒为单位);"FileSize"、#文件大小(Bytes为单位); "FileType"、#文件格式,例如wma,mp3;"SourceURL"、#原始地址;"Title"、#媒体内容的标题"; ##1 IWMPMedia.setItemInfo = 置项目信息 通过属性名设置项目信息 ##1 IWMPMedia.setItemInfo.bstrItemName = 项目名 项目的名称 ##1 IWMPMedia.setItemInfo.bstrVal = 值 要设置的值 ##1 IWMPMedia.getItemInfoByAtom = 按序取项目信息 按照序号获取项目信息 ##0 IWMPMedia.isMemberOf = Notuseful Is the media a member of the given playlist ##0 IWMPMedia.isReadOnlyItem = Notuseful Is the attribute read only ##1 IWMPPlaylist = WMP播放列表 本对象提供方法操作媒体剪辑列表 ##1 IWMPPlaylist.count = 项目数量 返回播放列表中项目的数量 ##1 IWMPPlaylist.name = 名称 返回播放列表名 ##1 IWMPPlaylist.attributeCount = 属性数量 返回播放列表中关联属性的数量 ##1 IWMPPlaylist.GetattributeName = 取属性名 通过序号获取属性名 ##1 IWMPPlaylist.GetattributeName.lIndex = 序号 属性的序号 ##1 IWMPPlaylist.GetItem = 取媒体 通过序号返回对应的媒体对象("WMP媒体"对象) ##1 IWMPPlaylist.GetItem.lIndex = 序号 项目序号 ##1 IWMPPlaylist.getItemInfo = 取项目信息 通过项目名取得项目信息 ##1 IWMPPlaylist.getItemInfo.bstrName = 项目名 项目名 ##1 IWMPPlaylist.setItemInfo = 置项目信息 设置播放列表的项目信息 ##1 IWMPPlaylist.setItemInfo.bstrName = 项目名 项目名 ##1 IWMPPlaylist.setItemInfo.bstrValue = 值 要设置的值 ##0 IWMPPlaylist.GetisIdentical = Notuseful Determines if the supplied object is the same as the this one ##1 IWMPPlaylist.clear = 清空列表 清空播放列表中的全部内容 ##1 IWMPPlaylist.insertItem = 插入项目 在播放列表中指定位置插入新的项目 ##1 IWMPPlaylist.insertItem.lIndex = 序号 插入的序号 ##1 IWMPPlaylist.insertItem.pIWMPMedia = 媒体对象 要插入的媒体对象("WMP媒体"对象) ##1 IWMPPlaylist.appendItem = 追加 向播放列表尾部追加项目 ##1 IWMPPlaylist.appendItem.pIWMPMedia = 媒体对象 要追加的媒体对象("WMP媒体"对象) ##1 IWMPPlaylist.removeItem = 移除 通过媒体对象移除播放列表中的指定项目 ##1 IWMPPlaylist.removeItem.pIWMPMedia = 媒体对象 要移除的媒体对象("WMP媒体"对象) ##1 IWMPPlaylist.moveItem = 移动 移动项目的位置 ##1 IWMPPlaylist.moveItem.lIndexOld = 旧序号 原始序号 ##1 IWMPPlaylist.moveItem.lIndexNew = 新序号 新的序号 ##1 IWMPSettings = WMP设定 本对象提供了可以改变Windows Media Player多个设定的方法 ##0 IWMPSettings.GetisAvailable = Notuseful Returns whether or not the specified media functionality is available ##1 IWMPSettings.autoStart = 自动播放 返回或设置媒体文件是否自动播放 ##0 IWMPSettings.baseURL = Nutuseful Returns the base URL used for relative path resolution ##0 IWMPSettings.defaultFrame = Notuseful Returns the frame location that changes when a URL flip occurs ##0 IWMPSettings.invokeURLs = Notuseful Returns whether URL events should spawn a browser. ##1 IWMPSettings.mute = 静音 返回或设置音频是否静音 ##1 IWMPSettings.playCount = 播放次数 返回或设置媒体对象播放的次数 ##0 IWMPSettings.rate = Notuseful Returns current playback rate ##1 IWMPSettings.balance = 立体声平衡 返回或设置音频左右声道的平衡,0为均衡,范围为:-100 ~ 100 ##1 IWMPSettings.volume = 音量 返回或设置音量,音量的范围为0 ~ 100 ##0 IWMPSettings.getMode = Notuseful Returns the mode of the playlist ##0 IWMPSettings.setMode = Notuseful Sets the mode of the playlist ##1 IWMPSettings.enableErrorDialogs = 显示错误 返回或设置是否自动显示错误对话框 ##0 IWMPMediaCollection = Notuseful ##1 IWMPMediaCollection.add = Creates a new media object ##1 IWMPMediaCollection.getAll = Returns a collection of all the items ##1 IWMPMediaCollection.getByName = Returns a collection of items with the given name ##1 IWMPMediaCollection.getByGenre = Returns a collection of items with the given genre ##1 IWMPMediaCollection.getByAuthor = Returns a collection of items by a given author ##1 IWMPMediaCollection.getByAlbum = Returns a collection of items from the given album ##1 IWMPMediaCollection.getByAttribute = Returns a collection of items with the given attribute ##1 IWMPMediaCollection.remove = Removes an item from the media collection ##1 IWMPMediaCollection.getAttributeStringCollection = Returns the string collection associated with an attribute ##1 IWMPMediaCollection.getMediaAtom = Gets an atom associated with an item name which can be requested from an IWMPMedia out of this collection via getItemInfoByAtom ##1 IWMPMediaCollection.setDeleted = Sets the deleted flag on a media object ##1 IWMPMediaCollection.isDeleted = Gets the deleted flag on a media object ##0 IWMPStringCollection = Notuseful ##1 IWMPStringCollection.count = Returns the number of items in the string collection ##1 IWMPStringCollection.Item = Returns the string at the given index ##0 IWMPPlaylistCollection = Notuseful ##1 IWMPPlaylistCollection.newPlaylist = Creates a new playlist object ##1 IWMPPlaylistCollection.getAll = Returns a playlist array with all the playlists ##1 IWMPPlaylistCollection.getByName = Returns a playlist array with playlists matching the given name ##1 IWMPPlaylistCollection.remove = Removes an item from the playlist collection ##1 IWMPPlaylistCollection.setDeleted = Sets the deleted flag on a playlist object ##1 IWMPPlaylistCollection.isDeleted = Gets the deleted flag on a playlist object ##1 IWMPPlaylistCollection.importPlaylist = Imports a playlist object into the library ##0 IWMPPlaylistArray = Notuseful ##1 IWMPPlaylistArray.count = Returns the number of items in the playlist array ##1 IWMPPlaylistArray.Item = Returns the playlist object at the given index ##1 IWMPNetwork = WMP网络 本对象提供关联Windows Media Player和网络连接的方法 ##1 IWMPNetwork.bandWidth = 带宽 返回地址属性所指向的流媒体的带宽 ##1 IWMPNetwork.recoveredPackets = 被覆盖数据包数 返回被覆盖的数据包数 ##0 IWMPNetwork.sourceProtocol = Notuseful Returns the source protocol used to receive data. ##1 IWMPNetwork.receivedPackets = 已接收数据包 返回已接收的数据包数 ##1 IWMPNetwork.lostPackets = 丢包数 返回丢包的数量 ##1 IWMPNetwork.receptionQuality = 接收质量 返回最近30秒中的接收质量 ##1 IWMPNetwork.bufferingCount = 缓冲数量 返回缓冲的数量 ##1 IWMPNetwork.bufferingProgress = 缓冲进度 返回缓冲已完成的百分比 ##1 IWMPNetwork.bufferingTime = 缓冲时间 以毫秒为单位返回或设置缓冲的时间,范围为:0 ~ 60秒,默认为5秒 ##1 IWMPNetwork.frameRate = 实际帧数 当前视频每百秒的帧数 ##0 IWMPNetwork.maxBitRate = Notuseful Maximum possible video bit rate ##1 IWMPNetwork.bitRate = 位比率 返回当前音频或视频流的位比率 ##0 IWMPNetwork.getProxySettings = Notuseful Returns the proxy settings for the specified protocol ##0 IWMPNetwork.setProxySettings = Notuseful Sets the proxy settings for the specified protocol ##0 IWMPNetwork.getProxyName = Notuseful Returns the proxy name for the specified protocol ##0 IWMPNetwork.setProxyName = Notuseful Sets the proxy name for the specified protocol ##0 IWMPNetwork.getProxyPort = Notuseful Returns the proxy port for the specified protocol ##0 IWMPNetwork.setProxyPort = Notuseful Sets the proxy port for the specified protocol ##0 IWMPNetwork.getProxyExceptionList = Notuseful Returns the proxy exception list for the specified protocol ##0 IWMPNetwork.setProxyExceptionList = Notuseful Sets the proxy exception list for the specified protocol ##0 IWMPNetwork.getProxyBypassForLocal = Notuseful Returns whether or not to bypass the proxy for local addresses ##0 IWMPNetwork.setProxyBypassForLocal = Notuseful Sets whether or not to by pass the proxy for local addresses ##1 IWMPNetwork.maxBandwidth = 最大带宽 返回设置允许的最大带宽 ##1 IWMPNetwork.downloadProgress = 下载进度 以百分比返回下载进度 ##1 IWMPNetwork.encodedFrameRate = 帧数 返回由本媒体文件创建者所提供的每秒的帧数 ##1 IWMPNetwork.framesSkipped = 跳过帧数 返回当回放时跳过的帧数 ##1 IWMPCdromCollection = WMP光驱集 本对象提供访问CD/DVD光驱集合的方法 ##1 IWMPCdromCollection.count = 数量 返回的CD/DVD光驱的数量 ##1 IWMPCdromCollection.Item = 取项目 使用光驱序号获取"WMP光驱"对象 ##1 IWMPCdromCollection.Item.lIndex = 序号 光驱的序号,0表示1,该参数必须在"数量"属性 - 1的范围内 ##1 IWMPCdromCollection.getByDriveSpecifier = 取光驱 使用具体的光盘标识符取得"WMP光驱"对象 ##1 IWMPCdromCollection.getByDriveSpecifier.bstrDriveSpecifier = 盘符 光盘的标识符,例如"f:",必须有";"号 ##1 IWMPCdrom = WMP光驱 本对象提供方法访问/操作CD/DVD光驱 ##1 IWMPCdrom.driveSpecifier = 标识符 返回光驱的标识符,例如"f:" ##1 IWMPCdrom.GetPlaylist = 取播放列表 获取光驱上的播放列表,为"WMP播放列表"对象 ##1 IWMPCdrom.eject = 弹出光驱 弹出/关闭光驱,如果当前光驱为打开状态则关闭,反之则打开 ##0 IWMPClosedCaption = Notuseful ##1 IWMPClosedCaption.SAMIStyle = Returns the previously set SAMI style ##1 IWMPClosedCaption.SAMILang = Returns the previously set SAMI language ##1 IWMPClosedCaption.SAMIFileName = Returns the previously set SAMI file name ##1 IWMPClosedCaption.captioningId = Returns the previously set Captioning ID ##0 IWMPError = Notuseful ##1 IWMPError.clearErrorQueue = Clears the error queue ##1 IWMPError.errorCount = Returns the number of error items ##1 IWMPError.GetItem = Returns an error item object ##1 IWMPError.webHelp = Launches WebHelp ##0 IWMPErrorItem = Notuseful ##1 IWMPErrorItem.errorCode = Returns the error code ##1 IWMPErrorItem.errorDescription = Returns a description of the error ##1 IWMPErrorItem.GeterrorContext = Returns context information for the error ##1 IWMPErrorItem.remedy = Returns remedy code for the error ##1 IWMPErrorItem.customUrl = Returns a custom url for this error (if avail) ##0 IWMPDVD = So_poor_to_give_up_this_object ##1 IWMPDVD.GetisAvailable = Returns whether or not the specified DVD functionality is available ##1 IWMPDVD.domain = Returns the current DVD domain ##1 IWMPDVD.topMenu = Displays the top menu of the DVD ##1 IWMPDVD.titleMenu = Displays the title menu of the current DVD title ##1 IWMPDVD.back = Navigates back one menu ##1 IWMPDVD.resume = Removes the menu from the screen and returns to playing the DVD ##0 IWMPPlayerApplication = Notuseful ##1 IWMPPlayerApplication.switchToPlayerApplication = Switches the display to player application ##1 IWMPPlayerApplication.switchToControl = Switches the display to control ##1 IWMPPlayerApplication.playerDocked = Returns a boolean value specifying whether or not the player is docked ##1 IWMPPlayerApplication.hasDisplay = Returns a boolean value specifying whether or not the control has display ##0 IWMPPlayer3 = Notuseful ##1 IWMPPlayer3.close = Closes the media ##1 IWMPPlayer3.URL = Returns or sets the URL ##1 IWMPPlayer3.openState = Returns the open state of the player ##1 IWMPPlayer3.playState = Returns the play state of the player ##1 IWMPPlayer3.Getcontrols = Returns the control handler ##1 IWMPPlayer3.Getsettings = Returns the settings handler ##1 IWMPPlayer3.GetcurrentMedia = Returns or sets the current media object ##1 IWMPPlayer3.GetmediaCollection = Returns the media collection handler ##1 IWMPPlayer3.GetplaylistCollection = Returns the playlist collection handler ##1 IWMPPlayer3.versionInfo = Returns the version information for the player ##1 IWMPPlayer3.Getnetwork = Returns the network information handler ##1 IWMPPlayer3.GetcurrentPlaylist = Returns/sets the current playlist ##1 IWMPPlayer3.GetcdromCollection = Get the CDROM drive collection ##1 IWMPPlayer3.GetclosedCaption = Returns the closed caption handler ##1 IWMPPlayer3.isOnline = Returns whether the machine is online. ##1 IWMPPlayer3.GetError = Returns the error object ##1 IWMPPlayer3.status = Returns status string ##1 IWMPPlayer3.Getdvd = Returns the DVD handler ##1 IWMPPlayer3.enabled = Returns a boolen value specifying whether or not the control is enabled ##1 IWMPPlayer3.fullScreen = Returns a boolean value specifying whether or not the control is in full screen mode ##1 IWMPPlayer3.enableContextMenu = Returns a boolean value specifying whether or not the context menu is enabled on the control ##1 IWMPPlayer3.uiMode = Specifies the ui mode to select ##1 IWMPPlayer3.stretchToFit = Returns a boolen value specifying whether or not video is stretched ##1 IWMPPlayer3.windowlessVideo = Returns a boolen value specifying whether or not video is windowless ##1 IWMPPlayer3.SetcurrentMedia = Returns or sets the current media object ##1 IWMPPlayer3.SetcurrentPlaylist = Returns/sets the current playlist ##0 IWMPPlayer2 = Notuseful ##1 IWMPPlayer2.close = Closes the media ##1 IWMPPlayer2.URL = Returns or sets the URL ##1 IWMPPlayer2.openState = Returns the open state of the player ##1 IWMPPlayer2.playState = Returns the play state of the player ##1 IWMPPlayer2.Getcontrols = Returns the control handler ##1 IWMPPlayer2.Getsettings = Returns the settings handler ##1 IWMPPlayer2.GetcurrentMedia = Returns or sets the current media object ##1 IWMPPlayer2.GetmediaCollection = Returns the media collection handler ##1 IWMPPlayer2.GetplaylistCollection = Returns the playlist collection handler ##1 IWMPPlayer2.versionInfo = Returns the version information for the player ##1 IWMPPlayer2.Getnetwork = Returns the network information handler ##1 IWMPPlayer2.GetcurrentPlaylist = Returns/sets the current playlist ##1 IWMPPlayer2.GetcdromCollection = Get the CDROM drive collection ##1 IWMPPlayer2.GetclosedCaption = Returns the closed caption handler ##1 IWMPPlayer2.isOnline = Returns whether the machine is online. ##1 IWMPPlayer2.GetError = Returns the error object ##1 IWMPPlayer2.status = Returns status string ##1 IWMPPlayer2.enabled = Returns a boolen value specifying whether or not the control is enabled ##1 IWMPPlayer2.fullScreen = Returns a boolean value specifying whether or not the control is in full screen mode ##1 IWMPPlayer2.enableContextMenu = Returns a boolean value specifying whether or not the context menu is enabled on the control ##1 IWMPPlayer2.uiMode = Specifies the ui mode to select ##1 IWMPPlayer2.stretchToFit = Returns a boolen value specifying whether or not video is stretched ##1 IWMPPlayer2.windowlessVideo = Returns a boolen value specifying whether or not video is windowless ##1 IWMPPlayer2.SetcurrentMedia = Returns or sets the current media object ##1 IWMPPlayer2.SetcurrentPlaylist = Returns/sets the current playlist ##0 IWMPPlayer = Notuseful 本对象提供对Windows Media Player用户界面的基本控制。本对象是对WMP核心的一个补充 ##1 IWMPPlayer.close = Closes the media ##1 IWMPPlayer.URL = Returns or sets the URL ##1 IWMPPlayer.openState = Returns the open state of the player ##1 IWMPPlayer.playState = Returns the play state of the player ##1 IWMPPlayer.Getcontrols = Returns the control handler ##1 IWMPPlayer.Getsettings = Returns the settings handler ##1 IWMPPlayer.GetcurrentMedia = Returns or sets the current media object ##1 IWMPPlayer.GetmediaCollection = Returns the media collection handler ##1 IWMPPlayer.GetplaylistCollection = Returns the playlist collection handler ##1 IWMPPlayer.versionInfo = Returns the version information for the player ##1 IWMPPlayer.Getnetwork = Returns the network information handler ##1 IWMPPlayer.GetcurrentPlaylist = Returns/sets the current playlist ##1 IWMPPlayer.GetcdromCollection = Get the CDROM drive collection ##1 IWMPPlayer.GetclosedCaption = Returns the closed caption handler ##1 IWMPPlayer.isOnline = Returns whether the machine is online. ##1 IWMPPlayer.GetError = Returns the error object ##1 IWMPPlayer.status = Returns status string ##1 IWMPPlayer.enabled = Returns a boolen value specifying whether or not the control is enabled ##1 IWMPPlayer.fullScreen = Returns a boolean value specifying whether or not the control is in full screen mode ##1 IWMPPlayer.enableContextMenu = Returns a boolean value specifying whether or not the context menu is enabled on the control ##1 IWMPPlayer.uiMode = Specifies the ui mode to select ##1 IWMPPlayer.SetcurrentMedia = Returns or sets the current media object ##1 IWMPPlayer.SetcurrentPlaylist = Returns/sets the current playlist ##0 IWMPErrorItem2 = Notuseful ##1 IWMPErrorItem2.errorCode = Returns the error code ##1 IWMPErrorItem2.errorDescription = Returns a description of the error ##1 IWMPErrorItem2.GeterrorContext = Returns context information for the error ##1 IWMPErrorItem2.remedy = Returns remedy code for the error ##1 IWMPErrorItem2.customUrl = Returns a custom url for this error (if avail) ##1 IWMPErrorItem2.condition = Returns condition for the error ##0 IWMPControls2 = Notuseful 本对象继承自"WMP控制"对象,只有"step"方法是自有的,因此关于本对象方法与属性的用法您可以参阅"WMP控制"对象。 ##1 IWMPControls2.GetisAvailable = Returns whether or not the specified media functionality is available ##1 IWMPControls2.play = Begins playing media ##1 IWMPControls2.stop = Stops play of media ##1 IWMPControls2.pause = Pauses play of media ##1 IWMPControls2.fastForward = Fast play of media in forward direction ##1 IWMPControls2.fastReverse = Fast play of media in reverse direction ##1 IWMPControls2.currentPosition = Returns the current position in media ##1 IWMPControls2.currentPositionString = Returns the current position in media as a string ##1 IWMPControls2.next = Sets the current item to the next item in the playlist ##1 IWMPControls2.previous = Sets the current item to the previous item in the playlist ##1 IWMPControls2.GetcurrentItem = Returns/Sets the play item ##1 IWMPControls2.currentMarker = Returns the current marker ##1 IWMPControls2.playItem = Sets the current item and plays it ##1 IWMPControls2.step = Advances the video one frame ##1 IWMPControls2.SetcurrentItem = Returns/Sets the play item ##0 IWMPMedia2 = Notuseful ##0 IWMPMedia2.GetisIdentical = Notuseful Determines if the supplied object is the same as the this one ##1 IWMPMedia2.sourceURL = 源连接 返回本媒体对象的原始URL连接 ##1 IWMPMedia2.name = 媒体名称 返回媒体的名称 ##1 IWMPMedia2.imageSourceWidth = 源图像宽度 返回图像的原始宽度 ##1 IWMPMedia2.imageSourceHeight = 源图像高度 返回图像的原始高度 ##1 IWMPMedia2.markerCount = 标记数量 返回文件中标记的数量 ##1 IWMPMedia2.getMarkerTime = 取标记时间 通过序号获取标记时间 ##1 IWMPMedia2.getMarkerTime.MarkerNum = 标记序号 通过标记序号获取标记时间 ##1 IWMPMedia2.getMarkerName = 取标记名 通过标记序号获取标记名 ##1 IWMPMedia2.getMarkerName.MarkerNum = 序号 标记序号 ##1 IWMPMedia2.duration = 播放位置 以秒为单位返回或设置播放的位置 ##1 IWMPMedia2.durationString = 播放位置文本 返回以文本方式表达的当前的播放位置,"HH:MM:SS"格式 ##1 IWMPMedia2.attributeCount = 属性数量 返回当前媒体属性的数量 ##1 IWMPMedia2.getAttributeName = 取属性名 通过属性序号取得属性的名称,注意:属性序号必须在0 ~ 属性数量-1 的范围内 ##1 IWMPMedia2.getItemInfo = 取项目信息 通过项目名获取项目信息 ##1 IWMPMedia2.getItemInfo.bstrItemName = 项目名 项目名称 ##1 IWMPMedia2.setItemInfo = 置项目信息 通过属性名设置项目信息 ##1 IWMPMedia2.setItemInfo.bstrItemName = 项目名 项目的名称 ##1 IWMPMedia2.setItemInfo.bstrVal = 值 要设置的值 ##1 IWMPMedia2.getItemInfoByAtom = 按序取项目信息 按照序号获取项目信息 ##1 IWMPMedia2.getItemInfoByAtom.lAtom = 序号 项目序号 ##0 IWMPMedia2.isMemberOf = Notuseful Is the media a member of the given playlist ##1 IWMPMedia2.isReadOnlyItem = Is the attribute read only ##0 IWMPMedia2.GetError = Notuseful Returns an error item pointer for a media specific error ##0 IWMPMedia3 = Notuseful ##1 IWMPMedia3.GetisIdentical = Determines if the supplied object is the same as the this one ##1 IWMPMedia3.sourceURL = Returns the media URL ##1 IWMPMedia3.name = Returns the name of the media ##1 IWMPMedia3.imageSourceWidth = Returns the original width of the source images ##1 IWMPMedia3.imageSourceHeight = Returns the original height of the source images ##1 IWMPMedia3.markerCount = Returns the number of markers in the file ##1 IWMPMedia3.getMarkerTime = Returns the time of a marker ##1 IWMPMedia3.getMarkerName = Returns the name of a marker ##1 IWMPMedia3.duration = Returns duration of current media ##1 IWMPMedia3.durationString = Returns duration of current media as a string ##1 IWMPMedia3.attributeCount = Returns the count of the attributes associated with this media ##1 IWMPMedia3.getAttributeName = Returns the name of the attribute whose index has been specified ##1 IWMPMedia3.getItemInfo = Returns the value of specified attribute for this media ##1 IWMPMedia3.setItemInfo = Sets the value of specified attribute for this media ##1 IWMPMedia3.getItemInfoByAtom = Gets an item info by atom ##1 IWMPMedia3.isMemberOf = Is the media a member of the given playlist ##1 IWMPMedia3.isReadOnlyItem = Is the attribute read only ##1 IWMPMedia3.GetError = Returns an error item pointer for a media specific error ##0 IWMPMetadataPicture = Notuseful ##0 IWMPMetadataText = Notuseful ##0 IWMPSettings2 = Notuseful ##1 IWMPSettings2.GetisAvailable = Returns whether or not the specified media functionality is available ##1 IWMPSettings2.autoStart = Returns whether media should automatically begin playing ##1 IWMPSettings2.baseURL = Returns the base URL used for relative path resolution ##1 IWMPSettings2.defaultFrame = Returns the frame location that changes when a URL flip occurs ##1 IWMPSettings2.invokeURLs = Returns whether URL events should spawn a browser. ##1 IWMPSettings2.mute = Returns whether audio should be muted. ##1 IWMPSettings2.playCount = Returns how many times media should play ##1 IWMPSettings2.rate = Returns current playback rate ##1 IWMPSettings2.balance = Returns current audio Balance ##1 IWMPSettings2.volume = Returns current audio volume ##1 IWMPSettings2.getMode = Returns the mode of the playlist ##1 IWMPSettings2.setMode = Sets the mode of the playlist ##1 IWMPSettings2.enableErrorDialogs = Returns whether error dialogs are shown by default when embedded ##1 IWMPSettings2.defaultAudioLanguage = Returns the LCID of default audio language ##1 IWMPControls3 = WMP控制3 本对象继承自"WMP控制"对象,只有以下方法是自有的: 因此关于本对象方法与属性的用法您可以参阅"WMP控制"对象。 ##0 IWMPControls3.GetisAvailable = Returns whether or not the specified media functionality is available ##0 IWMPControls3.play = Begins playing media ##0 IWMPControls3.stop = Stops play of media ##0 IWMPControls3.pause = Pauses play of media ##0 IWMPControls3.fastForward = Fast play of media in forward direction ##0 IWMPControls3.fastReverse = Fast play of media in reverse direction ##0 IWMPControls3.currentPosition = Returns the current position in media ##0 IWMPControls3.currentPositionString = Returns the current position in media as a string ##0 IWMPControls3.next = Sets the current item to the next item in the playlist ##0 IWMPControls3.previous = Sets the current item to the previous item in the playlist ##0 IWMPControls3.GetcurrentItem = Returns/Sets the play item ##0 IWMPControls3.currentMarker = Returns the current marker ##0 IWMPControls3.playItem = Sets the current item and plays it ##0 IWMPControls3.step = Advances the video one frame ##1 IWMPControls3.audioLanguageCount = 音频语言数量 返回音频所支持的语言的数量 ##1 IWMPControls3.getAudioLanguageID = 取语言标识 通过索引获取音频语言标别 ##1 IWMPControls3.getAudioLanguageID.lIndex = 语言索引 指定音频语言索引 ##1 IWMPControls3.getAudioLanguageDescription = 取音频语言描述 获取指定索引的音频语言的描述 ##1 IWMPControls3.getAudioLanguageDescription.lIndex = 语言索引 指定语言索引 ##1 IWMPControls3.currentAudioLanguage = 音频语言 返回或设置当前的音频语言 ##1 IWMPControls3.currentAudioLanguageIndex = 音频语言索引 获取或设置当前音频语言的索引 ##1 IWMPControls3.getLanguageName = 取语言名 使用标识符(LCID)获取音频语言名 ##1 IWMPControls3.getLanguageName.lLangID = 索引 索引,LCID ##1 IWMPControls3.currentPositionTimecode = 位置代码 返回或设置当前媒体播放的位置/时间,使用时间代码格式,此属性当前支持SMPTE时间代码 ,例如:"01:00:30:05" ##0 IWMPControls3.SetcurrentItem = Returns/Sets the play item ##0 IWMPClosedCaption2 = Notuseful ##1 IWMPClosedCa 生成xbm格式的验证码on error resume next dim i dim countdata countdata="1234567890" dim rou,chkcode,chklen chkcode="" chklen = 4 randomize for i=1 to 4 rou = int(rnd*10) chkcode = chkcode + cstr(rou) next dim strDigits strDigits = Array(_ "0","0x3c","0x66","0x66","0x66","0x66","0x66","0x66","0x66","0x66","0x3c",_ "1","0x30","0x38","0x30","0x30","0x30","0x30","0x30","0x30","0x30","0x30",_ "2","0x3c","0x66","0x60","0x60","0x30","0x18","0x0c","0x06","0x06","0x7e",_ "3","0x3c","0x66","0x60","0x60","0x38","0x60","0x60","0x60","0x66","0x3c",_ "4","0x30","0x30","0x38","0x38","0x34","0x34","0x32","0x7e","0x30","0x78",_ "5","0x7e","0x06","0x06","0x06","0x3e","0x60","0x60","0x60","0x66","0x3c",_ "6","0x38","0x0c","0x06","0x06","0x3e","0x66","0x66","0x66","0x66","0x3c",_ "7","0x7e","0x66","0x60","0x60","0x30","0x30","0x18","0x18","0x0c","0x0c",_ "8","0x3c","0x66","0x66","0x66","0x3c","0x66","0x66","0x66","0x66","0x3c",_ "9","0x3c","0x66","0x66","0x66","0x66","0x7c","0x60","0x60","0x30","0x1c") dim iCharWidth,iCharHeight,theBit,theNum,iRow,k,theOffset dim imageStr imageStr = "" iCharWidth = 8 iCharHeight= 10*1 Response.ContentType ="image/x-xbitmap" Response.Expires =0 Response.Write "#define counter_width "&iCharWidth*chklen&chr(13) & chr(10) Response.Write "#define counter_height "&iCharHeight&chr(13) & chr(10) Response.Write "static unsigned char counter_bits[]={" for iRow=0 to iCharHeight-1 for i=1 to chklen theBit=mid(chkcode,i,1) k=0 do while k<ubound(strDigits) if strDigits(k) = theBit then exit do k=k+iCharHeight+1 loop if k>=ubound(strDigits) then k=0 theOffset = k + 1 imageStr = imageStr + (strDigits(theOffset+iRow))&"," next next imageStr = left(imageStr,(len(imageStr)-1)) Response.Write imageStr Response.Write "};" session("chkCode") = chkcode VerifyCode gif验证码生成技术<% Class Fly38_VerifyCode Public GlobalColorTable(), LocalColorTable() Public TransparentColorIndex, UseTransparency Public GIF89a Public Comment Private FGroundColorIndex, BGroundColorIndex Private Image Private GlobalColorTableSize, GlobalColorTableFlag, LocalColorTableSize, LocalColorTableFlag Private Width_, Height_ Private LeftPosition, TopPosition Private Bits, ColorResolution, CodeSize Private PixelAspectRatio Private SortFlag, InterlaceFlag Private Seperator, GraphicControl, EndOfImage Private Reserved Private Font Private Letter(19) Private Sub Class_Initialize() Image = "" GIF89a = False ReDim GlobalColorTable(256) GlobalColorTableSize = 7 GlobalColorTableFlag = True GlobalColorTable(2) = RGB(255, 0, 0) GlobalColorTable(3) = RGB(0, 255, 0) GlobalColorTable(4) = RGB(0, 0, 255) GlobalColorTable(5) = RGB(255, 255, 0) GlobalColorTable(6) = RGB(0, 255, 255) GlobalColorTable(7) = RGB(255, 0, 255) ReDim LocalColorTable(0) LocalColorTableSize = 0 LocalColorTableFlag = False ColorResolution = 7 Bits = 7 CodeSize = 7 BGroundColorIndex = 0 FGroundColorIndex = 1 TransparentColorIndex = 0 UseTransparency = False LeftPosition = 0 TopPosition = 0 Width_ = 20 Height_ = 20 Clear PixelAspectRatio = 0 SortFlag = False InterlaceFlag = False Seperator = Asc(",") GraphicControl = Asc("!") EndOfImage = Asc(";") Comment = "" Reserved = 0 Set Font = Server.CreateObject("Scripting.Dictionary") Letter(0) = "00000000000000" Letter(1) = "00001111100000" Letter(2) = "00011111110000" Letter(3) = "00111000111000" Letter(4) = "00110000011100" Letter(5) = "01110000001100" Letter(6) = "01100000001110" Letter(7) = "01100000001110" Letter(8) = "11100000001110" Letter(9) = "11000000001110" Letter(10) = "11000000001110" Letter(11) = "11100000001110" Letter(12) = "11100000001100" Letter(13) = "11100000001100" Letter(14) = "01100000001100" Letter(15) = "01110000011100" Letter(15) = "00111000011000" Letter(16) = "00011111110000" Letter(17) = "00001111100000" Letter(18) = "00000000000000" Font.Add "0", Letter Letter(0) = "00000000000000" Letter(1) = "00000001110000" Letter(2) = "00000001110000" Letter(3) = "00000011100000" Letter(4) = "00000011000000" Letter(5) = "00000011000000" Letter(6) = "00000011000000" Letter(7) = "00000111000000" Letter(8) = "00000111000000" Letter(9) = "00000111000000" Letter(10) = "00000110000000" Letter(11) = "00000110000000" Letter(12) = "00000110000000" Letter(13) = "00000110000000" Letter(14) = "00000110000000" Letter(15) = "00000110000000" Letter(15) = "00000110000000" Letter(16) = "00000110000000" Letter(17) = "00000010000000" Letter(18) = "00000000000000" Font.Add "1", Letter Letter(0) = "00000000000000" Letter(1) = "00001111110000" Letter(2) = "00011111111000" Letter(3) = "00111000011100" Letter(4) = "01110000011100" Letter(5) = "01110000011000" Letter(6) = "01100000011000" Letter(7) = "00000000111000" Letter(8) = "00000001110000" Letter(9) = "00000001110000" Letter(10) = "00000011000000" Letter(11) = "00000111000000" Letter(12) = "00001110000000" Letter(13) = "00011000000000" Letter(14) = "00011000000000" Letter(15) = "00110000011100" Letter(16) = "01101111111100" Letter(17) = "01111111111110" Letter(18) = "01111100000000" Letter(19) = "00000000000000" Font.Add "2", Letter Letter(0) = "00000000000000" Letter(1) = "00001111111000" Letter(2) = "00111111111000" Letter(3) = "01110000111100" Letter(4) = "01100000011000" Letter(5) = "01000000111000" Letter(6) = "00000000111000" Letter(7) = "00000001110000" Letter(8) = "00000011000000" Letter(9) = "00000111110000" Letter(10) = "00000100111000" Letter(11) = "00000000011100" Letter(12) = "00000000011100" Letter(13) = "00000000011100" Letter(14) = "00000000011100" Letter(15) = "00000000011000" Letter(16) = "11100000111000" Letter(17) = "11111111110000" Letter(18) = "01111111100000" Letter(19) = "00000000000000" Font.Add "3", Letter Letter(0) = "00000000000000" Letter(1) = "00000000111000" Letter(2) = "00000001111000" Letter(3) = "00000011100000" Letter(4) = "00000111011100" Letter(5) = "00001110011100" Letter(6) = "00001100011000" Letter(7) = "00011000111000" Letter(8) = "00111000110000" Letter(9) = "01110000110000" Letter(10) = "01100000110000" Letter(11) = "01100000110000" Letter(12) = "11000111111110" Letter(13) = "11111111111100" Letter(14) = "11111111100000" Letter(15) = "11100001100000" Letter(16) = "00000001110000" Letter(17) = "00000000110000" Letter(18) = "00000000110000" Letter(19) = "00000000100000" Font.Add "4", Letter Letter(0) = "00000000000000" Letter(1) = "00001100000100" Letter(2) = "00011111111110" Letter(3) = "00011111111100" Letter(4) = "00011110000000" Letter(5) = "00011000000000" Letter(6) = "00111000000000" Letter(7) = "00111000000000" Letter(8) = "00111111110000" Letter(9) = "00111111111000" Letter(10) = "00000000011000" Letter(11) = "00000000011000" Letter(12) = "00000000011000" Letter(13) = "00000000011000" Letter(14) = "00000000011000" Letter(15) = "00000000011000" Letter(16) = "00000001111000" Letter(17) = "01111111110000" Letter(18) = "00111111000000" Letter(19) = "00000000100000" Font.Add "5", Letter Letter(0) = "00000000000000" Letter(1) = "00000011110000" Letter(2) = "00000111100000" Letter(3) = "00001110000000" Letter(4) = "00011100000000" Letter(5) = "00111000000000" Letter(6) = "00110000000000" Letter(7) = "00110000000000" Letter(8) = "01111111110000" Letter(9) = "01111111111000" Letter(10) = "01110000011100" Letter(11) = "01100000001100" Letter(12) = "01100000001100" Letter(13) = "01100000001100" Letter(14) = "01100000001100" Letter(15) = "01110000011100" Letter(16) = "00110000011100" Letter(17) = "00111111111000" Letter(18) = "00011111110000" Letter(19) = "00000000000000" Font.Add "6", Letter Letter(0) = "00000000000000" Letter(1) = "00100111111110" Letter(2) = "01111111111100" Letter(3) = "01111110011100" Letter(4) = "00000000011000" Letter(5) = "00000000111000" Letter(6) = "00000000110000" Letter(7) = "00000000110000" Letter(8) = "00000000110000" Letter(9) = "00000001110000" Letter(10) = "00000001100000" Letter(11) = "00000001100000" Letter(12) = "00000001100000" Letter(13) = "00000001100000" Letter(14) = "00000011100000" Letter(15) = "00000011100000" Letter(16) = "00000011100000" Letter(17) = "00000001000000" Letter(18) = "00000001000000" Letter(19) = "00000000000000" Font.Add "7", Letter Letter(0) = "00000000000000" Letter(1) = "00001111110000" Letter(2) = "00011111111000" Letter(3) = "00111000011000" Letter(4) = "00110000011000" Letter(5) = "01110000011100" Letter(6) = "01110000011000" Letter(7) = "00110000011000" Letter(8) = "00111101111000" Letter(9) = "00011111111000" Letter(10) = "00111000111100" Letter(11) = "01110000001100" Letter(12) = "01110000001100" Letter(13) = "01100000001110" Letter(14) = "01100000001100" Letter(15) = "01100000001100" Letter(16) = "01110000011100" Letter(17) = "00111111111100" Letter(18) = "00011111110000" Letter(19) = "00000000000000" Font.Add "8", Letter Letter(0) = "00000000000000" Letter(1) = "00011111110000" Letter(2) = "00111111111000" Letter(3) = "01110000111000" Letter(4) = "01110000011100" Letter(5) = "01100000001100" Letter(6) = "01100000001100" Letter(7) = "01100000001100" Letter(8) = "01100000001100" Letter(9) = "01110000011100" Letter(10) = "00111111111100" Letter(11) = "00011111111100" Letter(12) = "00000000011000" Letter(13) = "00000000011000" Letter(14) = "00000000111000" Letter(15) = "00000001110000" Letter(16) = "00000011100000" Letter(17) = "00000111000000" Letter(18) = "00011110000000" Letter(19) = "00000000000000" Font.Add "9", Letter End Sub Private Sub Class_Terminate() Font.RemoveAll Set Font = Nothing End Sub Public Property Get Width() Width = Width_ End Property Public Property Get Height() Height = Height_ End Property Public Property Get Version() Version = "NetRube VerifyCode Class 1.0 Build 20041225" End Property Public Property Let BGroundColor(ByVal Color) GlobalColorTable(0) = MakeColor(Color) BGroundColorIndex = 0 End Property Public Property Let FGroundColor(ByVal Color) GlobalColorTable(1) = MakeColor(Color) FGroundColorIndex = 1 End Property Public Property Get Pixel(ByVal PX, ByVal PY) If (PX > 0 And PX <= Width_) And (PY > 0 And PY <= Height_) Then Pixel = AscB(MidB(Image, (Width_ * (PY - 1)) + PX, 1)) Else Pixel = 0 End If End Property Public Property Let Pixel(ByVal PX, ByVal PY, PValue) Dim Offset PX = Int(PX) PY = Int(PY) PValue = Int(PValue) Offset = Width_ * (PY - 1) If (PX > 0 And PX <= Width_) And (PY > 0 And PY <= Height_) Then Image = LeftB(Image, Offset + (PX - 1)) & ChrB(PValue) & RightB(Image, LenB(Image) - (Offset + PX)) End If End Property Public Sub Clear() Image = String(Width_ * (Height_ + 1) / 2, ChrB(BGroundColorIndex) & ChrB(BGroundColorIndex)) End Sub Public Sub Resize(ByVal NewWidth, ByVal NewHeight, RPreserve) Dim OldImage, OldWidth, OldHeight Dim CopyWidth, CopyHeight Dim X, Y If RPreserve Then OldImage = Image OldWidth = Width_ OldHeight = Height_ End If Width_ = NewWidth Height_ = NewHeight Clear If RPreserve Then If NewWidth > OldWidth Then CopyWidth = OldWidth Else CopyWidth = NewWidth If NewHeight > OldHeight Then CopyHeight = OldHeight Else CopyHeight = NewHeight Width_ = NewWidth Height_ = NewHeight For Y = 1 To CopyHeight For X = 1 To CopyWidth Pixel(X, Y) = AscB(MidB(OldImage, (OldWidth * (Y - 1)) + X, 1)) Next Next End If End Sub Private Function ShiftLeft(SLValue, SLBits) ShiftLeft = SLValue * (2 ^ SLBits) End Function Private Function ShiftRight(SRValue, SRBits) ShiftRight = Int(SRValue / (2 ^ SRBits)) End Function Private Function Low(LValue) Low = LValue And &HFF End Function Private Function High(HValue) High = ShiftRight(HValue, 8) End Function Private Function Blue(BValue) Blue = Low(ShiftRight(BValue, 16)) End Function Private Function Green(GValue) Green = Low(ShiftRight(GValue, 8)) End Function Private Function Red(RValue) Red = Low(RValue) End Function Private Function MakeColor(MCValue) MakeColor = CLng("&H" & Right(MCValue, 2) & Mid(MCValue, 4, 2) & Mid(MCValue, 2, 2)) End Function Private Function GetWord(GWValue) GetWord = ShiftLeft(AscB(RightB(GWValue, 1)), 8) Or AscB(LeftB(GWValue, 1)) End Function Private Function MakeWord(MWValue) MakeWord = ChrB(Low(MWValue)) & ChrB(High(MWValue)) End Function Private Function MakeByte(MBValue) MakeByte = ChrB(Low(MBValue)) End Function Private Function UncompressedData() Dim ClearCode, ChunkMax, EndOfStream Dim UDData, UD, U UncompressedData = "" ClearCode = 2 ^ Bits ChunkMax = 2 ^ Bits - 2 EndOfStream = ClearCode + 1 UDData = "" For U = 1 To LenB(Image) Step ChunkMax UDData = UDData & MidB(Image, U, ChunkMax) & ChrB(ClearCode) Next For U = 1 To LenB(UDData) Step &HFF UD = MidB(UDData, U, &HFF) UncompressedData = UncompressedData & MakeByte(LenB(UD)) & UD Next UncompressedData = UncompressedData & MakeByte(&H00) UncompressedData = UncompressedData & MakeByte(EndOfStream) End Function Private Function GetGColorTable() Dim GGCT GetGColorTable = "" For GGCT = 0 To UBound(GlobalColorTable) - 1 GetGColorTable = GetGColorTable & MakeByte(Red(GlobalColorTable(GGCT))) GetGColorTable = GetGColorTable & MakeByte(Green(GlobalColorTable(GGCT))) GetGColorTable = GetGColorTable & MakeByte(Blue(GlobalColorTable(GGCT))) Next End Function Private Function GetLColorTable() Dim GLCT GetLColorTable = "" For GLCT = 0 To UBound(LocalColorTable) - 1 GetLColorTable = GetLColorTable & MakeByte(Red(LocalColorTable(GLCT))) GetLColorTable = GetLColorTable & MakeByte(Green(LocalColorTable(GLCT))) GetLColorTable = GetLColorTable & MakeByte(Blue(LocalColorTable(GLCT))) Next End Function Private Function GlobalDescriptor() GlobalDescriptor = 0 If GlobalColorTableFlag Then GlobalDescriptor = GlobalDescriptor Or ShiftLeft(1, 7) GlobalDescriptor = GlobalDescriptor Or ShiftLeft(ColorResolution, 7) If SortFlag Then GlobalDescriptor = GlobalDescriptor Or ShiftLeft(1, 3) GlobalDescriptor = GlobalDescriptor Or GlobalColorTableSize End Function Private Function LocalDescriptor() LocalDescriptor = 0 If LocalColorTableFlag Then LocalDescriptor = LocalDescriptor Or ShiftLeft(1, 7) If InterlaceFlag Then LocalDescriptor = LocalDescriptor Or ShiftLeft(1, 6) If SortFlag Then LocalDescriptor = LocallDescriptor Or ShiftLeft(1, 5) LocalDescriptor = LocalDescriptor Or ShiftLeft(Reserved, 3) LocalDescriptor = LocalDescriptor Or LocalColorTableSize End Function Private Property Get ImageData() Dim Text, I ImageData = GIFHeader ImageData = ImageData & MakeWord(Width_) ImageData = ImageData & MakeWord(Height_) ImageData = ImageData & MakeByte(GlobalDescriptor) ImageData = ImageData & MakeByte(BGroundColorIndex) ImageData = ImageData & MakeByte(PixelAspectRatio) ImageData = ImageData & GetGColorTable If GIF89a Then If UseTransparency Then ImageData = ImageData & MakeByte(GraphicControl) ImageData = ImageData & MakeByte(&HF9) ImageData = ImageData & MakeByte(&H04) ImageData = ImageData & MakeByte(&H01) ImageData = ImageData & MakeByte(&H00) ImageData = ImageData & MakeByte(TransparentColorIndex) ImageData = ImageData & MakeByte(&H00) End If If Comment <> "" Then ImageData = ImageData & MakeByte(GraphicControl) ImageData = ImageData & MakeByte(&HFE) Text = Left(Comment, &HFF) ImageData = ImageData & MakeByte(Len(Text)) For I = 1 To Len(Text) ImageData = ImageData & MakeByte(Asc(Mid(Text, I, 1))) Next ImageData = ImageData & MakeByte(&H00) End If End If ImageData = ImageData & MakeByte(Seperator) ImageData = ImageData & MakeWord(LeftPosition) ImageData = ImageData & MakeWord(TopPosition) ImageData = ImageData & MakeWord(Width_) ImageData = ImageData & MakeWord(Height_) ImageData = ImageData & MakeByte(LocalDescriptor) ImageData = ImageData & MakeByte(CodeSize) ImageData = ImageData & UncompressedData ImageData = ImageData & MakeByte(&H00) ImageData = ImageData & MakeByte(EndOfImage) End Property Public Sub ImgWrite() Response.ContentType = "image/gif" Response.BinaryWrite ImageData End Sub Private Function GIFHeader() GIFHeader = "" GIFHeader = GIFHeader & ChrB(Asc("G")) GIFHeader = GIFHeader & ChrB(Asc("I")) GIFHeader = GIFHeader & ChrB(Asc("F")) GIFHeader = GIFHeader & ChrB(Asc("8")) If GIF89a Then GIFHeader = GIFHeader & ChrB(Asc("9")) Else GIFHeader = GIFHeader & ChrB(Asc("7")) End If GIFHeader = GIFHeader & ChrB(Asc("a")) End Function Public Sub VerifyCode(Text, VCColor) Dim I1, I2, I3 Dim VCX, VCY, VCIndex Resize 14 * Len(Text) + 10, UBound(Letter) + 10, False Randomize VCX = Int(Rnd * 10) VCY = Int(Rnd * (Height_ - UBound(Letter))) For I1 = 0 To UBound(Letter) - 1 For I2 = 1 To Len(Text) For I3 = 1 To Len(Font(Mid(Text, I2, 1))(I1)) VCIndex = CLng(Mid(Font(Mid(Text, I2, 1))(I1), I3, 1)) If VCIndex <> 0 Then If VCColor Then Randomize VCIndex = Int(Rnd * 7) End If Pixel(VCX + ((I2 - 1) * Len(Letter(0))) + I3, VCY + I1) = VCIndex End If Next Next Next End Sub Public Sub Noises(Amount, NColor) Dim NI, NIndex For NI = 1 To Amount NIndex = 1 If NColor Then Randomize NIndex = Int(Rnd * 7) End If Pixel(Int(Rnd * Width_), Int(Rnd * Height_)) = NIndex Next End Sub End Class %> 用法 <% Dim GBL_CookieName GBL_CookieName = "gbl_codename" '指定一个想对本站的cookie Call ShowCode(GBL_CookieName & Request("CodeName")) 'request("CodeName")指定一个相对验证码的cookie '验证码 Sub ShowCode(ShowCodeName) Set img = New fly38_VerifyCode Randomize Dim code code = Int(Rnd * 9000 + 1000) Session(ShowCodeName) = code img.BGroundColor = "#FFFFFF" ' 图片背景颜色 img.FGroundColor = "#FF0000" ' 前景(文本)颜色 Call img.VerifyCode(code, False) ' 处理验证码,第二个参数为是否显示彩色文本 Call img.Noises(100, True) ' 添加杂点,第一个参数为杂点数量,第二个参数为是否显示彩色杂点 img.ImgWrite ' 输出图片 End Sub %> 无组件生成GIF验证码<% Class Com_GifCode_Class Private Graph(), Margin(3) Private Sub Class_Initialize() Public Function Create() Const cCharSet = "123456789" Dim i, x, y Dim vValidCode : vValidCode = "" ReDim Graph(Width-1, Height-1) For i = 0 To Count - 1 Create = vValidCode End Function Sub SetDot(pX, pY) Public Sub SetDraw(pIndex, pNumber) ' 字符数据 Dim vExtent : vExtent = Width / Count Dim vStartX, vEndX, vStartY, vEndY Dim vAngle, vLength vWidth = Int(Margin(1) - Margin(0)) vHeight = Int(Margin(3) - Margin(2)) ' 起始坐标 vStartY = Int((DotData(pIndex)(1)-1) * vHeight / 100) Dim i, j If DotData(pIndex)(2*i-2) <> 0 And DotData(pIndex)(2*i) <> 0 Then ' 终点坐标 vEndY = (DotData(pIndex)(2*i+1)-1) * vHeight / 100 ' 横向差距 ' 倾斜角度 ' 两坐标距离 ' 随机转动角度 vDX = Int(Cos(vAngle) * vLength) vDY = Int(Sin(vAngle) * vLength) If Abs(vDX) > Abs(vDY) Then vDeltaT = Abs(vDX) Else vDeltaT = Abs(vDY) For j = 1 To vDeltaT vStartX = vStartX + vDX vStartY = vStartY + vDY Public Sub Output() Response.Expires = -9999 ' 文件类型 Response.BinaryWrite ChrB(128) & ChrB(0) & ChrB(0) Response.BinaryWrite ChrB(0) & ChrB(85) & ChrB(255) ' 图象标识符 Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) Response.BinaryWrite ChrB(0) & ChrB(7) & ChrB(255) Dim x, y, i : i = 0 Dim mCode 正在使用的ASP验证码vColorData设定颜色
<%
Call Com_CreatValidCode() Sub Com_CreatValidCode() ' 禁止缓存 Response.Expires = -9999 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-ctrol","no-cache" Response.ContentType = "Image/BMP" Randomize Dim i, ii, iii Const cOdds = 10 Const cAmount = 36 ' 文字数量 Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ' 颜色的数据(字符,背景) Dim vColorData(2) a=Rnd * 200 b=Rnd * 200 c=Rnd * 200 vColorData(0) = ChrB(a) & ChrB(b) & ChrB(c) ' 'vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0) ' 蓝0,绿0,红0(黑色)0的位置颜色 vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) ' 蓝250,绿236,红211(白色) 1的位置颜色 ' 随机产生字符 Dim vCode(4), vCodes For i = 0 To 3 vCode(i) = Int(Rnd * cAmount) vCodes = vCodes & Mid(cCode, vCode(i) + 1, 1) Next session("code") = vCodes '记录入Session ' 字符的数据 Dim vNumberData(36) vNumberData(0) = "1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111" vNumberData(1) = "1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111" vNumberData(2) = "1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011" vNumberData(3) = "1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111" vNumberData(4) = "1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011" vNumberData(5) = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111" vNumberData(6) = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111" vNumberData(7) = "1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111" vNumberData(8) = "1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111" vNumberData(9) = "1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111" vNumberData(10) = "1111011111111101111111101011111110101111111010111111101011111100000111110111011111011101111000100011" vNumberData(11) = "1000000111110111101111011110111101110111110000111111011101111101111011110111101111011110111000000111" vNumberData(12) = "1110000011110111101110111110111011111111101111111110111111111011111111101111101111011101111110001111" vNumberData(13) = "1000001111110111011111011110111101111011110111101111011110111101111011110111101111011101111000001111" vNumberData(14) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011110111000000111" vNumberData(15) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011111111000111111" vNumberData(16) = "1110000111110111011110111101111011111111101111111110111111111011100011101111011111011101111110001111" vNumberData(17) = "1000100011110111011111011101111101110111110000011111011101111101110111110111011111011101111000100011" vNumberData(18) = "1100000111111101111111110111111111011111111101111111110111111111011111111101111111110111111100000111" vNumberData(19) = "1110000011111110111111111011111111101111111110111111111011111111101111111110111110111011111000011111" vNumberData(20) = "1000100011110111011111011011111101011111110001111111010111111101101111110110111111011101111000100011" vNumberData(21) = "1000111111110111111111011111111101111111110111111111011111111101111111110111111111011110111000000011" vNumberData(22) = "1000100011110010011111001001111100100111110101011111010101111101010111110101011111010101111001010011" vNumberData(23) = "1000100011110011011111001101111101010111110101011111010101111101100111110110011111011001111000110111" vNumberData(24) = "1110001111110111011110111110111011111011101111101110111110111011111011101111101111011101111110001111" vNumberData(25) = "1000000111110111101111011110111101111011110000011111011111111101111111110111111111011111111000111111" vNumberData(26) = "1110001111110111011110111110111011111011101111101110111110111011111011101001101111011001111110001011" vNumberData(27) = "1000001111110111011111011101111101110111110000111111010111111101101111110110111111011101111000110011" vNumberData(28) = "1110000011110111101111011110111101111111111001111111111001111111111011110111101111011110111100000111" vNumberData(29) = "1000000011101101101111110111111111011111111101111111110111111111011111111101111111110111111110001111" vNumberData(30) = "1000100011110111011111011101111101110111110111011111011101111101110111110111011111011101111110001111" vNumberData(31) = "1000100011110111011111011101111101110111111010111111101011111110101111111010111111110111111111011111" vNumberData(32) = "1001010011110101011111010101111101010111110101011111001001111110101111111010111111101011111110101111" vNumberData(33) = "1000100011110111011111101011111110101111111101111111110111111110101111111010111111011101111000100011" vNumberData(34) = "1000100011110111011111011101111110101111111010111111110111111111011111111101111111110111111110001111" vNumberData(35) = "1100000011110111011111111101111111101111111110111111110111111111011111111011111111101110111100000011"' 输出图像文件头 Response.BinaryWrite ChrB(66) & ChrB(77) & ChrB(230) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_ ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_ ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_ ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0) ' 输出图像信息头
Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(176) & ChrB(4) &_ ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) &_ ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_ ChrB(0) & ChrB(0) For i = 9 To 0 Step -1 ' 历经所有行
For ii = 0 To 3 ' 历经所有字 For iii = 1 To 10 ' 历经所有像素 ' 逐行、逐字、逐像素地输出图像数据 If Rnd * 99 + 1 < cOdds Then ' 随机生成杂点 Response.BinaryWrite vColorData(0) Else Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 10 + iii, 1)) End If Next Next Next End Sub
%> ASP 生成 彩色 可变长 数字 验证码程序本验证码生成程序特点如下: 一、彩色; 二、BMP 图像色深为 16 位,生成的图片体积更小;(4位长的验证码只有几百字节) 三、长度可自定义;(1位至25位可固定设置,也可以自己改成动态) 四、背景杂色深度可自定义; 具体请看代码 注:代码中并没有针对动网的 设置验证码 Session 的地方。想用的朋友自己根据需要改一下,位置就在代码中出现 Session("Num") 的那一行,改成自己需要的名称就可以了。 下面是代码部分: Option Explicit Dim Text_Data(9),Text_Len,Int_Temp(),I,j,k,Int_Temp2 ''***** 参数配置区 ***** Text_Len = 4 ''验证码长度(支持1-25位) ''********************** ReDim Int_Temp( Text_Len - 1 ) Text_Data(0) = "00000000000001111000001100110000110111000011011100001100110000111011000011101100001100110000011110000000000000" ''下面随机生成各位验证码 ''下面输出文件头部分 Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0) ''下面输出图片数据 Function Get_BackColor() Function Get_ForeColor() 图片数据写入SQL这个不怎么了解,只能照抄了,很久没做这方面的东西都忘了。不知道能不能直接EXECUTE,有时间再看看。
'取得客户端送出的数据字节大小 frmsize=Request.TotalBytes '以二进制方式读取数据
frmData=Request.BinaryRead(frmsize) '去掉实际数据前、后的边界字符串行
bnCrLf=ChrB(13)&ChrB(10) divider=leftB(frmdata,CLng(InstrB(frmdata,bnCrLf))-1) dataStart=InstrB(frmData,bnCrLf&bncrlf)+4 dataEnd=InstrB(datastart+1,frmData,divider)-dataStart '读出图象数据
myData=Midb(frmdata,dataStart,dataEnd) '将图象数据存入数据库
strSQL="SELECT * FROM tblImages"
set rs=Server.CreateObject("ADODB.Recordset") rs.open strSQL,conn,1,3 rs.addnew rs("picData").AppendChunk myData rs.Update counts=rs.recordCount+1 rs.close conn.close
strSQL="SELECT picData FROM tblImages WHERE id=" & sID Set rs=Server.CreateObject("ADODB.Recordset") rs.Open strSQL,conn,1,1 Response.ContentType="image/*" dataSize=rs(0).actualSize Response.BinaryWrite rs(0).getChunk(dataSize) rs.Close conn.Close 二进制编码转换函数据说第一个比第二个快30倍,我看应该没有,不过第二个实在很烂。
第一个:
Function bytes2BSTR(binstr)
Dim BytesStream,StringReturn Set BytesStream = CreateObject("ADODB.Stream") With BytesStream .Type = 2 .Open .WriteText binstr .Position = 0 .Charset = "GB2312" .Position = 2 StringReturn = .ReadText .close End With Set BytesStream = Nothing bytes2BSTR = StringReturn End Function 第二个:
Function bytes2BSTR(vIn) dim strReturn dim i1,ThisCharCode,NextCharCode strReturn = "" For i1 = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn,i1,1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn,i1+1,1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i1 = i1 + 1 End If Next bytes2BSTR = strReturn End Function URL解码函数server.URLEncode的逆操作函数,好象只能转英文和数字。
Function URLDecode(enStr) dim deStr dim c,i,v deStr="" for i=1 to len(enStr) c=Mid(enStr,i,1) if c="%" then v=eval("&h"+Mid(enStr,i+1,2)) if v<128 then deStr=deStr&chr(v) i=i+2 else if isvalidhex(mid(enstr,i,3)) then if isvalidhex(mid(enstr,i+3,3)) then v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2)) deStr=deStr&chr(v) i=i+5 else v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1))))) deStr=deStr&chr(v) i=i+3 end if else destr=destr&c end if end if else if c="+" then deStr=deStr&" " else deStr=deStr&c end if end if next URLDecode=deStr end function function isvalidhex(str) isvalidhex=true str=ucase(str) if len(str)<>3 then isvalidhex=false:exit function if left(str,1)<>"%" then isvalidhex=false:exit function c=mid(str,2,1) if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function c=mid(str,3,1) if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function end function 判断包含双字节字符的字符串长度函数这个好用,比LEN好多了
'判断包含双字节字符的字符串长度
Function getStrLen(str) dim x,y,i x = len(str) y = 0 for i = 1 to x if asc(mid(str,i,1))<0 or asc(mid(str,i,1))>255 then y = y + 2 '双字节 else y = y + 1'ascii码字符 end if next getStrLen = y End Function '从指定(包含双字节字符的)字符串中第一个字符起的指定长度的字符串 '指定的长度为单字节长度,即字节数 Function leftString(str,length) dim x,y,i,s s=str x = len(str) y = 0 if x >= 1 then for i = 1 to x if asc(mid(str,i,1)) < 0 or asc(mid(str,i,1)) >255 then y = y + 2 else y = y + 1 end if if y >= length then s = left(str,i) '字符串字节数 exit for end if next end if leftString = s End Function |
|
|