便便代码人生

关注技术, 偶尔动动手

Archive for the 'Technology' Category

IT

[原] jquery-easyui的combotree在.net开发中的问题

Posted by bianbian on 2010-08-29 12:07


本文Tags: , ,

最近使用jquery-easyui,遇到一个问题。
一搜索,发现好多人在问:
问题见:http://jquery-easyui.wikidot.com/forum/t-248817/combotree-net
“combotree在.net开发中,一直不显示数据。
单独html页面就可以显示出来。同一数据文件,json格式绝对正确。”

解决问题首先要发现原因,用firebug试了一下,发现是combotree读取json的时候是用POST方法。
而.net环境不支持静态文件用POST方法获取内容。错误如下:
POST app_user.js
http://localhost:9655/js/app_user.js
405 Method Not Allowed

发现原因后,解决问题就简单很多。
找到easyui的js代码:
_41.addClass(”tree-loading”);
$.ajax({type:”post”,url:_3e.url,data:_3c,dataType:”json”,success:function(_42){
_41.removeClass(”tree-loading”);

在我的应用中,因为不需要POST方式获取json,就把type:”post”改为type:”get”即可。
已在easyui的官方论坛中说明这个问题,希望以后能多个method的设置选项。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | No Comments »

[晕] 中wmdrtc32.dll木马了(Sality virus)

Posted by bianbian on 2010-05-11 06:52


本文Tags:

晕,话说我这个只上少数几个网站的人也会中木马。。。。
这个wmdrtc32.dll可不是一般的木马,具有注入、驱动等多种手段
而且更狠的是,无法安全模式启动,一进安全模式就蓝屏。。。
这次中招的居然是从sourceforge.net下的一个项目的执行文件,在这里曝光一下:
http://sourceforge.net/projects/flvconverternet/
360能检测到威胁,但是没办法彻底杀干净。。。
郁闷,还没找到解决办法。。。有谁知道怎么清除告诉我一声,谢了。
我的机器不可能重装,里面eclipse有5个(java、aptana、IDL、Flex、php),visual studio有3个(vc6、2005、2008),Delphi有2个,还有python、ArcGis、oracle、ENVI、。。。
要重装直接杀了我吧。。。
这个网页对这个病毒进行了详细的分析:
http://www.threatexpert.com/report.aspx?md5=8f0020f81ab2be1e9136ce831fbc525f

最后补充:无奈下装了360杀毒软件。。。
这个无良的Sality,居然把硬盘的exe全感染了。。。一点毒品都没有!!!

标签:

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology | 1 Comment »

[原] Flex的全屏模式

Posted by bianbian on 2010-05-08 05:09


本文Tags: , ,

除了这篇文章里提到的需要传入参数 allowFullScreen=true 以外:
http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html
经我的血泪测试(啊啊啊,我的时光啊),以下这条语句似乎必须点击操作触发才有效:
stage.displayState = StageDisplayState.FULL_SCREEN;
也就是说,用Timer之类调用这条语句都无法全屏,错误号是#2152 Full screen mode is not allowed.
应该是flash故意禁止这么做,不然一载入就全屏算是个安全问题。
郁闷的是,我准备做的这个东西就是要一载入就全屏。。。。
啊啊啊啊,怎么办?弄个巨大的按钮?点击以后全屏、隐藏按钮?
太邪恶了。。。。啊啊啊啊。。。。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Other, Technology | No Comments »

[原] COM调用PowerPoint后PowerPNT.exe进程仍驻留内存的问题

Posted by bianbian on 2010-04-16 12:42


本文Tags: , , , ,

前阵子一直纳闷一件事,不是写了个早上10点自动生成天气会商ppt的程序嘛,不过时好时坏。具体的说:我去维护了一下后第二天是正常的,但是第三天就又不行了。看cron的日志(顺便推荐一下nnCron Lite),程序都正常启动了,但是ppt就是没有正常生成。
像我现在写的代码一般都不会有问题了,很少需要debug;看了几遍也没问题,所以很纳闷呀很纳闷。
后来没办法,开始在程序里输出log,才发现cron运行的时候(用户是SYSTEM),第二次运行:
using PPT = Microsoft.Office.Interop.PowerPoint;
_App = new PPT.Application();
这里会报COMException,真是奇怪了。
而调试的时候又是一切正常(用户是Administrator)。

最后总算捕捉到问题出现的情形:
cron运行,第一次正常产生ppt后,进程里仍驻留了PowerPNT.exe这个程序。
尽管程序是写了:
_App.Quit();
_App = null;
但是进程不会退出。不退出就算了,关键在SYSTEM用户下,第二次再跑程序的时候就会报前面提到的COMException,似乎一Quit(),这个PowerPNT.exe就挂在那里了。而在有用户界面的Administrator用户下,即使上一次进程没退出,也是可以正常工作的。

试了两种办法,可以使功能正常:
1)暴力一点,用完直接把进程kill掉:
Process ps = Process.GetProcessesByName(”POWERPNT.EXE”)[0];
ps.Kill();

2)最后不写 _App.Quit() ,让进程在内存里驻留。

最后还是选了2),毕竟服务器内存有10G,一个PPT进程也就20多M,而且PPT进程一个用户只有一个,相当于preload了,呵呵。。。

回家后找了一下文章,这个确实是Microsoft的问题。希望这篇文章对遇到这个问题的朋友有用。

如下是相关地址:
PPT2000: PowerPoint 2000 Remains in Memory After Getting a Presentation and Being Closed
powerpnt.exe remains running after OLE Quit()
GetObject and CreateObject behavior of Office automation servers

标签: , , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C#, Meteorology | No Comments »

[原] 基于jQuery的自动TAB选项卡实现

Posted by bianbian on 2009-07-24 01:03


本文Tags: , ,

jQuery挺好用,我就不说啥了。
今天实现了“自动TAB”,下面分享一下。有人会问为啥不用jquery-ui,主要是页面css已经全弄好了,实在不想为ui再写一次;其次是ui毕竟是那么大个家伙,心疼我的性能。
HTML页面非常简单:

  1. <div class="tabBox">
  2.     <!--选项卡菜单-->
  3.     <ul class="tabMenu">
  4.         <li class="on"><a>选项卡1</a></li>
  5.         <li><a>选项卡2</a></li>
  6.     </ul>
  7.     <!-- 选项卡内容-->
  8.     <div class="hide">
  9. 选项卡1内容
  10.     </div>
  11.     <div class="hide">
  12. 选项卡2内容
  13.     </div>
  14. </div>

之后就是用jQuery自动对这个.tabBox进行处理,加上鼠标点击自动切换的功能(当然可以加上鼠标移过的选项支持,作为示例,我就没写那么完善):

  1. $(function () {
  2.     //===== TAB自动切换 tabBox =====
  3.     // <div class="tabBox">
  4.     //   <ul class="tabMenu"><li class="on"><a>选项卡1</a></li></ul>
  5.     //   <div class="hide">内容1</div>
  6.     // </div>
  7.     // (1) li增加"index"记录偏移量(第i项),给a增加click方法
  8.     $('.tabBox .tabMenu li').each(function(i, li) {
  9.         li = $(li);
  10.         li.attr('index', i)
  11.             .children('a').attr('href', 'javascript:;').click(function() {
  12.                 //点击项的li的class设为on
  13.                 var li_on = $(this).parent(),
  14.                     index = li_on.attr('index');
  15.                 li_on.parent().children().removeClass('on');
  16.                 li_on.addClass('on');
  17.                 //显示对应的div内容。注意get(index)返回的是DOM节点,因此需要再$()转为jQuery对象
  18.                 $(
  19.                     li_on.parent().parent().children('div').addClass('hide').get(index)
  20.                 ).removeClass('hide');
  21.         });
  22.         //显示现有的li class=on对应的div内容
  23.         if (li.hasClass('on')) {
  24.             li.children('a').click();
  25.         }
  26.     });
  27. });
标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | No Comments »

[原] Thinkpad T400在Windows XP下装蓝牙的办法

Posted by bianbian on 2009-05-01 02:50


本文Tags: , ,

我的驱动都是手装的,只安装了必要的驱动(Think的那一大陀软件只安装了硬盘防震动的),发现XP下无法识别T400的蓝牙设备。
症状:Fn+F5没反应,bluetooth的指示灯不亮(机器左下角的硬件已经拨到启动无线、主板BIOS也已经Enable蓝牙)。
安装了蓝牙软件后一直提示“未找到buletooth设备”。
后来经过不断尝试,写出解决办法:
安装HOTKEY(鄙视Thinkpad啊。。。。非要多装个垃圾。。。。)。
找到HOTKEY的安装目录,手动运行TpFnF5.exe(其实就是按Fn+F5组合键后启动的程序,不知道为什么我全手动
装的驱动为什么不支持Fn+F5的监听)。
一运行,就提示找到新硬件,然后就可以安装Windows XP的蓝牙补充驱动和软件了,这时就可以看出蓝牙设备原来是个USB。
装完后,不能卸载HOTKEY,否则声音控制的那几个键不能用了,卸载程序太暴力。
只好在注册表里禁止开机运行。
记在这里,搜索过来确实有用的朋友请吱一声。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology, Windows | 3 Comments »

[原] Paragon Partition Manager真是太牛了

Posted by bianbian on 2009-04-06 05:31


本文Tags: , ,

作为DOS下的分区工具,Paragon Partition Manager实在是太牛了!
上次装系统已经感慨过一次了:DOS下能直接对AHCI模式(高级主控接口)下的SATA硬盘进行操作,要知道这个模式Windows XP都没办法!
今天因为想格式化Temp分区(5G,用来放pagefile、asp.net的编译结果等;系统的Temp和IE的Temp我是放在内存盘里的,哇咔咔,内存一定要大),又进了一次这个软件。结果发现,它居然把插在USB上面的512G的移动硬盘也识别出来了。。。
太牛了,微软赶快把它收购吧。。。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology, Windows | 1 Comment »

[原] Total Commander Service to show/hide TC by hotkey/boss key/shortcut key

Posted by bianbian on 2009-03-17 02:48


本文Tags: , ,

Total Commander Service is a NT service, which supports:
1. Auto-launch TC when starting Windows
2. Hotkey: Win+Q to show/hide TC, or start TC when exit

Please put the TotalCMDService.exe (52K) in TC’s directory, and run to install/uninstall the NT service.

Tips, the best configuration:
Operation:
Check “Allow only 1 copy of Total Commander at a time”
Uncheck “Move icon to system tray when minimized”

Feel free to modify or distribute this code in any medium as long as these following two lines remain unchanged:
Total Commander Service, by bianbian.org@gmail.com
http://bianbian.org/technology/336.html

Download exe:TotalCmdService.zip (22K) , and src:TotalCmdServiceSrc.zip (10K, VC++6.0)

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, Technology, Windows | 4 Comments »

[原] 自制Total Commander自动启动和呼出热键

Posted by bianbian on 2009-03-16 08:25


本文Tags: , ,

经历多次安装卸载安装卸载,我这次终于静下心来琢磨了一下传说中的Total Commander。
总算有点上手了,确实方便,尤其现在内存大,根本不在乎耗多少资源。哈哈
不过郁闷的是这个玩意定义了那么多快捷键,却不支持呼出自己的快捷键。。。
好吧,我写个了windows NT 服务,来启动Total Commander。。。
同时注册了个全局热键(快捷键):Win+Q 来呼出Total Commander
Win+Q:T400的键盘这两个键,对我的手来说刚好是左手拇指和小指很舒服的位置。如果要改您下源码改吧
在注册表里扫了一遍,居然没有total commander的任何信息,果然绿色。
好吧,我承认,现在由于忙的关系,这个服务只做了个框。。。。过几天发布。。。。
补充:
好吧,发布了,嘿嘿:[原] Total Commander Service to show/hide TC by hotkey/boss key/shortcut key
1. 是系统服务(意味着没登录就启动TC了)
2. Win+Q隐藏或者呼出TC
下载到TC的目录里运行,安装/反安装(第一次运行安装,第二次卸载,。。。)。
由于是系统服务(默认用户是LocalSystem),如果直接启动TC也将以LocalSystem的身份运行,会带来很多问题(比如输入法就启动不了了)。
因此程序调用API(LogonUser)先进行了模拟登录,所以安装的时候需要输入用户密码。

Download exe:TotalCmdService.zip (22K) , and src:TotalCmdServiceSrc.zip (10K, VC++6.0)

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, Technology, Windows | 11 Comments »

[转] T400 XP系统安装步骤

Posted by bianbian on 2009-03-13 05:09


本文Tags: , , ,

A. 首先开机按F1进入BIOS设置,进入configuration,然后在SATA里面将SATA模式设置compatibility(兼容模式),默认的是AHCI模式(高级主控接口),这一步很重要,否则安装XP时会蓝屏。其原因是因为XP系统安装盘一般不带SATA驱动。然后按F10,回车,退出BIOS设置。注意,在Ghost系统之前,也必须将此选项设置成compatibility,不然一般的DOS启动盘会发现不了硬盘的存在,导致Ghost失败,囧…

B. 开机按F12键选择从光驱启动

C. 系统安装(具体过程不再详解)

D. XP2的系统安装完毕。接下来的事情就是安装驱动程序了

E. 驱动安装(一共17个驱动)
1. 首先安装Intel主板驱动程序
2. 安装显卡驱动,注意,解压缩后,不要点击其子目录下的setup,而是分别安装driver和CCC两个子目录下的setup,然后再装一个.net fx 2.0
3. 安装显示器驱动,在桌面显示属性里面手工升级驱动
4. 安装无线网卡和网卡,看清楚自己的两个网卡型号了!无线网卡可直接setup,有线网卡必须用驱动更新方式手工安装
5. 检查一下设备管理器中的系统设备下是否有“M$用于High Definition Audio的UAA总线驱动”,这个是安装MODOM和声卡的前提,如果没有的话,得先去找个M$的HD总线补丁打上(Thinkpad T400主板驱动中好像有,所以一般不要另装)
6. 接下来声卡驱动、猫驱动、摄像头驱动安装
7. 安装蓝牙驱动
8. 接下来安装3个“基本系统设备”(4in1读卡器)
9. 再安装智能读卡器驱动(这个貌似有点问题…需要inf手工右键点安装)
10. 接下来安装指纹的驱动程序
11. 再安装AMT,这个比较恶心,对应着两个未知设备,一个叫“PCI简易通讯控制器”,一个叫“PCI串行口”,两个联想的AMT驱动都必须装
12. 接下来再装迅盘驱动,对应着设备管理器中的“PCI内存控制器”,必须手工升级驱动。虽然迅盘在XP下不起作用,但还是要安装的,不然每次重启都提示找到新硬件,甚烦!
13. 安装SATA驱动程序。这个是个难点。解开驱动压缩,首先运行其中prepare子目录中的install.bat,然后重启,记得进系统前一定要先将BIOS SATA configuration从compatibility改为AHCI;重启后,再在设备管理器中,展开IDE ATA/ATAPI控制器,发现其中有个”PCI Device”,然后手工升级这个驱动,SATA这才安装完毕。
14. 再安装TPM安全芯片驱动,这个在设备管理器中对应着某个“未知设备”,必须手工升级驱动,驱动在TPM子目录里面
15. 然后安装电源管理驱动和电源管理软件,至此,在设备管理器中扫描检测硬件改动,不会发现有任何未识别的设备。

F. 最后,可根据需要,把检测硬盘震动、Access Connections、Presentation Director、Hotkey Features等软件装上

from: http://www.cppblog.com/w2001/archive/2009/02/24/74741.html

AMT可以在BIOS里禁用,呵呵。

标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology | No Comments »

[原] C#泛型实现流中C/C++格式的struct数据的通用读取方法

Posted by bianbian on 2009-03-02 09:26


本文Tags: , , ,

背景简单提一下:好多个C/C++构成的结构体(struct)数据需要在C#中读取,他们可能在文件中或网络中(总之有办法转为流Stream)。
在C#中用Marshal的PtrToStructure()可以实现byte[]向struct的转变。
不过如果每个struct都要写个方法也太低效了,尤其是我现在遇到几十个struct的情况。。。。
研究了一下泛型(C#2.0就支持了),发现方法泛型可以解决这个问题。
Read the rest of this entry »

标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C#, Technology | 2 Comments »

[原] C# 3.0的委托(delegate)及Lambda表达式应用实例

Posted by bianbian on 2009-03-02 11:27


本文Tags: , , , ,

C# 3.0新增了很多特性,其中委托(delegate)配合Lambda表达式使得程序简洁了很多。
我也就来尝尝鲜(其实也不算鲜了,C# 4.0都出来了。。。),说说我的应用实例:读取Micaps(一种气象上用的软件)数据文件。
Micaps有各类数据文件,比如第一类表示地面填图,格式是:
diamond 1 屏幕上需显示的内容
年 月 日 时次 总站点数
区站号 经度 纬度 ……(后面的你也不关心,就略掉了)

第二类表示高空填图,格式是:
diamond 2 屏幕上需显示的内容
年 月 日 时次 层次 总站点数
…… (参数与地面当然不一样)

如上,第一行是所有文件的通用信息,表示了该文件的类型、标题等,后面就是具体数据,每类文件格式不一。
于是,就要针对不同类型写不同的处理方法,但是,打开文件、关闭文件、检验第一行 这些又是一样的,导致代码重复。
这时候,委托就非常有意义:可以在父类里完成通用处理,而具体的数据处理通过委托交给子类具体负责。
Read the rest of this entry »

标签: , , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C#, Technology | No Comments »

[原] 去除csdn的blog上复制下来代码的行号

Posted by bianbian on 2009-02-22 11:08


本文Tags: ,

001 line 1
002 line 2
==>
line 1
line 2
不好意思,shell不太熟悉,只好用个php。。。欢迎补充其他语言的一行代码:

  1. php -r '$a=file("src.cpp"); for($i=0;$i<count($a);$i++)$a[$i]=substr($a[$i],4); echo join($a,"");' > src.cpp
标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology, php | 1 Comment »

[原] ftp4j的解析list的bug及解决

Posted by bianbian on 2008-06-19 08:08


本文Tags: , , ,

上次推荐的ftp4j在解析部分FTP站点的目录list的时候遇到了FTPListParseException(也怪FTP协议没有对LIST格式作出标准)。查看源码发现,主要是两个问题:
1)文件权限不只rwx这三个,附加了s、t(详见http://en.wikipedia.org/wiki/File_system_permissions
2)部分ftpd似乎直接调用的“ls -l”输出目录,第一行是“total xxx”
给作者写信了,说不定下个版本就有Sepcial Thanks to bianbian 了。嘿嘿嘿嘿。。。
修正后的代码(省略后面没有变化的部分):
Read the rest of this entry »

标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Java, Technology | 4 Comments »

[原] gmail真是太强悍了!!!

Posted by bianbian on 2008-05-16 12:30


本文Tags: ,

今天偶然又发现一个gmail强悍的功能:
把exe文件改名为doc,比如cmd.exe.doc,然后当附件上载。(因为不允许直接上载exe)
然后收到以后因为是doc结尾,会列出“在 HTML 格式下查看 以 Google 文档打开 下载”功能,这时候点了“在HTML格式下查看”。我想出个乱码应该是常理。
结果,强悍的gmail取出了exe里的格式信息(exe由几个段构成,详细请查询exe文件格式,此不赘述):
Read the rest of this entry »

标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology | 3 Comments »