WebBrowser执行脚本

1、控制WebBrowser实际上就是控制IE,最简单的方法就是执行javascript或vbscript,省去了接口的转换。
如何执行脚本?以前我一直用mshtml中IHTMLWindow2接口的execScript()方法,在Delphi中需要uses MSHTML单元:

usesMSHTML;

procedureTForm1.Button1Click(Sender: TObject);
begin
   (WebBrowser1.Document   as  IHTMLDocument2).parentWindow.execScript('alert("hello");','javascript')
end;


2、用WebBrowser的Navigate()方法更简单:

procedureTForm1.Button1Click(Sender: TObject);
begin
   WebBrowser1.Navigate('javascript:alert("hello");')
end;

省去了添加引用的麻烦。

Posted in 软件开发 at January 15, 2010. by 傻猫 .    Views: 3607    1 Comment

从数据库随机取一条数据的SQL

MSSQL查询语句:

select   top   1   *   from  user   order   by   newid()

MYSQL查询语句:

SELECT *  FROM  user   ORDER BY rand( )   LIMIT 1

Posted in 数据库 at January 15, 2010. by 傻猫 .    Views: 2957    2 Comments

曹操出土后答记者问

曹操出土后答记者问:你死在洛阳,为何选在安阳建墓穴?
曹:首都房价太贵,二线城市便宜。

问:陪你沉睡千年的女人到底是谁?
曹:嘘,她是貂蝉,字海藻。

问:最后可否谈谈你对这个新时代的看法?
曹:孤已用名字回复。

文章来源:http://www.zfnn.com/post/612.html

Posted in 休闲娱乐 at January 12, 2010. by 傻猫 .    Views: 3787    No Comments

从Baidu.com域名被修改看百度公司域名步署

2010年1月12日,星期二,对于很多中国人来说,只是一个很普通的日子。然而,对于全球的百度搜索用户来讲,却是一个很伤心的日子:这一天,他们心中 的信息库,Baidu.com域名访问不了,据网友介绍:“最早发现的是一个澳大利亚的哥们,早晨6点多在群里发消息,说在他那访问不了百度了。”一直到笔者写此文的北京时间早上11时12分,百度网站的域名Baidu.com仍然访问不了,一直到12时多才恢复正常。有网友用IP地址访问则证实是成功的。显然,这又是一次域名被挟持事件。

[域名信息寻踪迹]

       笔者从网上调取了域名Baidu.com的数据库(Whois)记录:

       WHOIS results for baidu.com

  Registrant:
      Domain Discreet
      ATTN: baidu.com
      Rua Dr. Brito Camara, n 20, 1
      Funchal, Madeira 9000-039
      PT
      Phone: 1-902-7495331
      Email: 036f37850a14115101201f9483195f63@domaindiscreet.com


   Registrar Name....: Register.com(注册商)
   Registrar Whois...: whois.register.com
   Registrar Homepage:  www.register.com

   Domain Name: baidu.com
      Created on..............: 1999-10-11
      Expires on..............: 2014-10-11

   Administrative Contact:
      Domain Discreet
      ATTN: baidu.com
      Rua Dr. Brito Camara, n 20, 1
      Funchal, Madeira 9000-039
      PT
      Phone: 1-902-7495331
      Email: 036f376a0a14115100199c0316d64ebb@domaindiscreet.com


   Technical  Contact:
      Domain Discreet
      ATTN: baidu.com
      Rua Dr. Brito Camara, n 20, 1
      Funchal, Madeira 9000-039
      PT
      Phone: 1-902-7495331
      Email: 036f37860a14115101c8a6d69ced14a8@domaindiscreet.com


   DNS Servers:
      yns1.yahoo.com
      yns2.yahoo.com


     The previous information has been obtained either directly from the registrant or a registrar of the domain name other than Network Solutions. Network Solutions, therefore, does not guarantee its accuracy or completeness. 
  
     Show underlying registry data for this record    
 

     Current Registrar: REGISTER.COM, INC.  (注册商)
    IP Address: 220.181.6.175 (ARIN & RIPE IP search) 
    IP Location: CN(CHINA)-BEIJING-BEIJING 
    Record Type: Domain Name 
    Server Type: Other 1 
    Lock Status: clientTransferProhibited 
    WebSite Status: Active 
    DMOZ  1 listings 
    Y! Directory:  see listings 
    Secure: Yes 
    Ecommerce: No 
    Traffic Ranking: 4 
    Data as of: 22-Apr-2008 

      发现几个有趣问题:

       1、管理邮箱(Email): 036f37850a14115101201f9483195f63@domaindiscreet.com 这是注册商REGISTER.COM, INC.所有的domaindiscreet.com 域名为后缀,即此域名全权交给注册商管理。

       2、它并没有到了域名删除期,域名状态(Lock Status)是client Transfer Prohibited不许过户、但是域名解析服务器 (DNS Servers)却用Yahoo公司的二台服务器:
      yns1.yahoo.com
      yns2.yahoo.com
      有网友提供早上访问域名Baidu.com时被跳转到yahoo.com网页,而且留下声称是伊朗黑客的字眼。

      3、上述域名Baidu.com的数据库(Whois)记录数据最后一次更新时间是2年前的了(Data as of): 22-Apr-2008 ,然而事实上却是今天才被改变、却没有留下任何数据更新记录,显然属于非正常更新。

       笔者进一步访问也是属于百度(上海)公司所有的Baidu.net域名Whois状态记录是正常的,域名 baidu.cn,域名 baidu.com.cn 也是正常的,但是访问却都没有成功,似乎暗示百度公司并没有对这三个重要域名做解析(?)。

       [历史都是相似的]

       《中国网友报》(www.chinanetzen.com.cn)笫392期 2008年8月4日笫一版有本人拙文:《太岁头上也敢动土:ICANN被黑敲响网络域名安全警钟》讲的就是黑客攻击了国际互联网域名与地址管理机构ICANN的官方网站几个备用域名,将其域名改变了原来指向,并在更改后指向的网页上留下了嚣张的字眼。这在很多人看来实在是件很讽刺的事情。一直提供网络域名安全指引的ICANN这回居然自身难保。这次黑客攻击事件是怎样发生的?背后到底有着怎样的隐情?对国内域名安全领域又有哪些启示?带着这些疑问,笔者独家专访了ICANN的技术总监约翰·克雷恩(John Crain)的故事(http://www.dnsnews.cn/1/2010-01-12/858.htm)。

       “黑客从来都没有进入到我们的网站,他们只是修改了icann.com等域名系统指向而已。”7月5日凌晨,ICANN技术总监约翰·克雷恩在接受本报记者采访时表示,这是一起由于ICANN注册商的注册系统受到攻击所致的域名劫持事件。黑客的手法很特别。他们从register.com这家注册商的端口入侵数据库,然后修改了与icann相关一些域名的导向。目前,这家注册商已经向ICANN提供了一份有关这次攻击的全面绝密的安全报告。

      同时,约翰·克雷恩也指出,这些受到错误引导的域名仅仅是ICANN和IANA主网站的镜像指向而已,ICANN和IANA两个机构的网站主域名www.icann.orgwww.iana.org并未受到影响。一发现DNS(域名系统)重新被指向现象,ICANN在20分钟之内便将其恢复正常,全球互联网恢复正常访问最长不超过48小时。

       笔者有趣地发现:2008年7月发生的ICANN域名事件同2010年1月12日这次百度惟一启用域名都是黑客从register.com这家注册商的端口入侵数据库,然后修改了相关一些域名的导向导致访问错误。换句话说:这家注册商 register.com 的后台数据库漏洞一直未补好,二年多来一点也没有长进!

       [百度域名事件几点启示]

      1、百度域名步署不完善

       主要是仅仅启用一个baidu.com域名,对于baidu.cn 主域名的冷藏不用,导致用户遇到这种状态也无法使用。这一点应该学习谷歌公司,连g.cn也启用了。

      2、百度公司迷信.com尝恶果

       首先是不了解.cn域名在中国根服务器步署远比.com的根服务器步署牢固N倍,钱华林教授在几年前接受本人采访时己经讲过:即使中国出口电揽全部断了,中国互联网只要1小时内也能自成体系运行。

       其次是据在CNNIC域名审核组工作了10年的笔者太太、王秀玉工程师介绍,象百度的baidu.cn 主域名状态,CNNIC的技术后台是根本不允许更改的,必须由百度公司提供证明文件,人工修改。这是所有列入保护清单.cn域名网站的一道保障。

       最后是百度公司把域名交给register.com这家注册商,想让对方马上做技术支持在时差上存在问题,况且百度公司还不知道register.com这家注册商后台技术漏洞一直成为全球黑客攻击入口。

       3、域名安全步署任重道远

       域名安全问题是包括ICANN在内全域名注册管理机构日益关注的问题。以ICANN为例,它在2010年的预算中就投入了约占总预算10.3%(金额近300万美元)加强根服务器系统安全改造。

       而从国际上电子商务网站的域名安全步署上,国外大多数门户网站还采用域名服务器代理机制,确保在更加有安全保障环境下运行。

       总的一句小结是:网络安全是道高一尺、魔高一丈。只有认真做好域名安全步署准备,才能避免造成损失。

Posted in 杂七杂八 at January 12, 2010. by 傻猫 .    Views: 2225    2 Comments

伊朗回应百度被黑:"伊朗网军"不代表官方立场

中国最大的搜索网站百度今早7点半左右突然无法登陆。主页页面出现黑色,并有伊朗国旗和伊朗网军(iran cyber army)字样,西方媒体猜测这是伊朗网军对百度的攻击。而一些中国专家对此说法相对谨慎。1月12日早上7点半左右,有网友反映,百度搜索网站突然不能打开。主页出现“网页无法显示”或者“没有可以显示的页面”等字样。直到中午时 分,包括北京、沈阳等在内的广大网友一直无法登陆该网站。不过北京的部分网友反映,目前还可以登录。虽然百度声称在11点20分左右恢复,不过截至12日 下午2点左右,还有网友称登录断断续续,显示服务器状态依然不太稳定。 

  百度没有对此发布官方消息,但网友普遍认为域名DNS遭到劫持。

  与此同时,网上出现了一幅百度主页被黑的截图。在此页面上有一段话“此站点已经被伊朗网军攻击”。但截图的来源不明。此图被人民网英文频道等转载发稿。

  伊朗网军是一个相对神秘的组织。美国媒体称,它是个人或者组织的联合,是伊朗政府进行网络战的工具。去年12月微博网站twitter被黑就与 伊朗网军有关。美方猜测是因为在去年6月伊朗大选酿成的骚乱中,伊朗反内贾德的势力通过微博组织集会,发布消息,惹恼了伊朗政府和黑客。

  上海的网络工程师joop在西方媒体发文称,目前原因上不清楚,西方媒体猜测伊朗网军攻击中国网站的目的。有网站称,这可能与伊朗核问题有关。

  微博遇袭后,网页也出现黑屏、伊朗国旗和“本站点被伊朗网军攻击”的信息。还特别留下了网军的email地址:iRANiAN.CYBER.ARMY@GMAIL.COM。(张乐)

  专家:事情奇怪可能有人挑拨关系

  国际军事问题专家宋晓军直言,“这是对伊朗的造谣。”在宋晓军看来,在被黑的主页上弄出伊朗的国旗和标志对黑客来说,非常容易做到,不能就此认为就是伊朗网军干的。

  他认为最近西方对伊朗的污蔑比较严重,而中国和西方的关系良好则被西方一些人士看不惯,他们非常可能利用栽赃伊朗的方式,来破坏中国和伊朗的关系,达到他们分化伊朗外交的目的,从而在核问题上取得主动权。

  中国前驻伊朗大使华黎明也认为,这件事非常奇怪。“虽然中国和伊朗的关系因为核问题有一些变化,但也不至于出现这类事件。”华黎明称这件事的判断要慎重,还需要观察。他称有关所谓的黑客“伊朗网军”的具体背景也不甚明朗,因为“找不出伊朗攻击中国网络的动机”。

  和宋晓军一样,华黎明也不排除这起事件是某些人挑拨中伊关系的可能。(张乐)

  伊朗回应:网军不代表官方立场

  记者在第一时间联系到了伊朗使馆新闻参赞扎阿伊先生,他称,有关伊朗网军,伊朗政府也感到头疼。

  “我不懂中文,所以没有上过百度,因此对这一消息还不是很清楚。”扎阿伊先生说,不过他强调,就算此事是真,也不代表伊朗政府和官方的行为。伊 朗谴责类似的事件,伊朗官方一直把发展与中国的友好关系放在重要位置,两国在核问题和能源合作等问题上有着良好的沟通关系和畅通的交流渠道。

  根据他的说法,伊朗网军是民间组织,也经常“黑”伊朗政府的网站。“他们不具有官方属性和背景,就是对一些他们认为有问题的网站进行攻击。所以伊朗政府网站有时候被攻击,我们也感到头疼。”

扎阿伊先生也说,最近伊朗和西方关系紧张,此事也有可能是西方挑拨中伊关系的一个阴谋。

《新京报》
 

Posted in 杂七杂八 at January 12, 2010. by 傻猫 .    Views: 2081    No Comments

Delphi瞬间消除无用托盘图标(刷新托盘)

用TerminateProcess把一个进程结束后有个问题,就是如果该程序在托盘有图标的话,这个图标并不会在它被结束时也消失。当然你用鼠标从上面移过可以解决这个问题,但本人在用自己的刷新辅助软件“疯狂刷新”的时候,每5分钟结束一次,一天下来如果不动电脑,就会在托盘区生成NNN个死图标,即使你拚命去点,也要点半天才能全部消除。有没有办法一下子搞定它呢?答案是肯定的,在网上搜了很久……用Delphi编写几行代码搞定。


添加自定义类型,用作判断系统类型,
type
    TOSVersion = (osUnknown, os95, os98, osME, osNT3, osNT4, os2K, osXP, os2K3);

添加自定义函数过程

function GetOS: TOSVersion; //获得系统类型,用来取得托盘句柄
var
    OS: TOSVersionInfo;
begin
    ZeroMemory(@OS, SizeOf(OS));
    OS.dwOSVersionInfoSize := SizeOf(OS);
    GetVersionEx(OS);
    Result := osUnknown;
    if OS.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
        case OS.dwMajorVersion of
            3: Result := osNT3;
            4: Result := osNT4;
            5: begin
                    case OS.dwMinorVersion of
                        0: Result := os2K;
                        1: Result := osXP;
                        2: Result := os2K3;
                    end;
                end;
        end;
    end
    else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 0) then
        Result := os95
    else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 10) then
        Result := os98
    else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 90) then
        Result := osME
end;

function GetSysTrayWnd(): HWND; //返回系统托盘的句柄,适合于Windows各版本
var OS: TOSVersion;
begin
    OS := GetOS;
    Result := FindWindow('Shell_TrayWnd', nil);
    Result := FindWindowEx(Result, 0, 'TrayNotifyWnd', nil);
    if (OS in [osXP, os2K3]) then
        Result := FindWindowEx(Result, 0, 'SysPager', nil);
    if (OS in [os2K, osXP, os2K3]) then
        Result := FindWindowEx(Result, 0, 'ToolbarWindow32', nil);
end;

procedure KillTrayIcons (Sender: TObject);
var
    hwndTrayToolBar: HWND;
    rTrayToolBar: tRect;
    x, y: Word;
begin
    hwndTrayToolBar := GetSysTrayWnd;
    Windows.GetClientRect(hwndTrayToolBar, rTrayToolBar);
    for x := 1 to rTrayToolBar.right - 1 do begin
        for y := 1 to rTrayToolBar.bottom - 1 do begin
            SendMessage(hwndTrayToolBar, WM_MOUSEMOVE, 0, MAKELPARAM(x, y));
        end;
    end;
end;

//调用 KillTrayIcons(self) 过程就可以瞬间清除所有无用的托盘图标了。

经过本人测试,Delphi7+XP系统下确实可以用。

 

 

Posted in 软件开发 at January 12, 2010. by 傻猫 .    Views: 3274    No Comments

调用flv播放器代码

找了很久,终于找了一个可用的啦,可以直接当成swf文件来插入即可。

首先将播放器放到网站根目录,播放器下载:flvplay.rar

在sablog后台添加swf动画地址
http://samool.com/flvplay.swf?vcastr_file=http://samool.com/flv/xiaopap4month.flv

红色部分为flv文件的地址,前面为播放器的地址。

该播放器支持自动缓存,可以快进后退,挺好的。

另外如果是程序,可以插入以下代码调用

<embed height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://samool.com/flvplay.swf?vcastr_file=http://samool.com/flv/xiaopap4month.flv" type="application/x-shockwave-flash" width="480"></embed></object>

Posted in Web开发 at January 10, 2010. by 傻猫 .    Views: 2878    2 Comments

四个月,儿子爽朗的笑声

2010年1月9日,正是小宝满4个月的日子,一大早我就开始准备给他拍一段视频作为纪念,早上在床上时拍的视频效果不是很好,最主要是表情不好,没一点特别的东西,就到处看,每当给他拍照的时候,他把眼晴睁很大,直对头镜头,很想上镜一样,哈哈哈。

到晚上的时候,老婆抱着儿子在沙发上玩,老妈在旁边逗他,我在一边弄电脑,突然听到小宝爽朗的笑声,看他在那里哈哈大笑,赶紧了,拿出来相机,把这段视频拍了下来,算是四个月特别纪念吧。

Posted in 我的生活 at January 10, 2010. by 傻猫 .    Views: 2310    5 Comments