Search


Meta

Creative


Support


Leesoft

Feed™

Recent Comments

Photos

May
29

为什么我不爱用windows

Posted by » developerly
80 hits

昨天小开了一下很久没用的windows,结果一上来,QQ也要安装更新、Skype也要安装更新,关机的时候还不能好好关,windows还要安装更新,我说这些软件厂商就不能负责点,做点质量高的产品,少来的更新不成。接下来转载一篇,其中Apple的软件我没用过,Flash吧勉强还可以,其他的真的很让人讨厌:

ZDNet UK的一篇文章列举了10种常见的,但常惹你生气的软件.互联网送给你很多玩具,它重写了商业和娱乐的规则.
但是你并非不会产生烦恼,实际上它 们常常会弄巧成拙,令你痛苦不堪,甚至幻想没有互联网,它从来没有出现过.

Adobe Reader:我们只是用它看电子书,但它却像官僚机构一样臃肿,不间断的更新(还要求重启,这是什么道理?).

Apple:它让微软看起来是个好人.

Windows Update:“立即重启”,“不要关闭电源,直至5项更新完成”,“你需要安装Microsoft Genuine Advantage”,“请在安装前关闭所有应用程序”.

RealPlayer:犯下的罪行罄竹难书,它嵌入的广告比报纸首页还多(其实和国内的许多软件相比,它已算是圣人了).

Java:它是一种程序语言,但是不甘寂寞,总是想提醒你Sun有多好,并推销OpenOffice,还在你的浏览器上安装Yahoo Toolbar,天底下有这种语言吗?

Yahoo:它设法控制你的邮件、搜索引擎、主页,更别提该死的工具栏了.

Norton Antivirus:就像是你的桌面出现了撒旦.

预先捆绑的软件:一些公司总是想夹带私货,索尼就是其中的王者:悄悄的安装程序,并加入到系统启动项中,或者消耗巨大的资源.

Outlook/Exchange:当免费的web email飞速发展时,它还是不紧不慢,过好多年才更新一次.

Flash:自我感觉良好的播放器.

我再加两个

卡巴斯基:我Unbuntu虚拟机上的XP没有装任何杀毒软件,才发现其实XP运行还是挺快的,可怜我的Accer双核笔电,装了卡巴斯基后,启动跟牛似的,慢!
Google工具栏:google品牌确实不错,但是到处让人安装你们的工具栏就是不对的了。我喜欢清清爽爽的浏览器界面,拜托,能不能把更多精力放在Linux相关产品的开发上,现在linux的desktop居然连widget都没有!

May
16

用wix打包的时候需要注意的问题

Posted by » developerly
90 hits

wix是微软某个高人写的基于命令行的MSI打包工具。通过编写基于XML的wxs文件,可以对安装过程进行精确控制。同时可以通过编写CustomAction并加入到InstallExecuteSequence节点下完成一些打包过程中所需要的外部操作,比如读写注册表,写eventlog,创建新文件夹等。

对于如下的CustomAction

<CustomAction Id=’InstallXXXService’
Directory=’INSTALLDIR’
ExeCommand=”[\”][SystemFolder]cmd.exe[\”] /d /c [\”][INSTALLDIR]XXXX.exe[\”] -install > demuxerinstall.log 2>&1″
Execute=’deferred’
TerminalServerAware=’yes’
/>

并加入到如下的 InstallExecuteSequence
<InstallExecuteSequence>
<Custom Action=’InstallXXXService’ After=’InstallFinalize’><![CDATA[Not Installed]]></Custom>
</InstallExecuteSequence>

安装时会提示:
DEBUG: Error 2613: InstallXXXService action sequenced incorrectly.
The installer has encountered an unexpected error installing this package. This
may indicate a problem with this package. The error code is 2613. The arguments
are: , ,

解决方案: 如果需要在InstallFinalize之后执行的CustomAction操作,需要把 Execute属性改成immediate

May
15

全民大讨论:由于SxsUninstallCA导致卸载包含VC++代码的.NET程序异常缓慢

Posted by » developerly
149 hits

这是一个在开发中遇到的问题。然后在网上搜到很多的讨论,翻译汇编如下。

我的VS 2005安装程序的安装和卸载在windows vista下面都没有问题,但是不能在windows XP下面正常卸载。基本上来说,如果我在windows xp下面卸载,在卸载的最后(程序文件都已经删除的时候),卸载对话框却不能关闭。而且也没有任何出错信息。没有办法,我只好在任务管理器里面杀掉这个进程。大家有什么好的主意吗?谢谢
– Mario M.


跳转后阅读全民大讨论:由于SxsUninstallCA导致卸载包含VC++代码的.NET程序异常缓慢的完整内容

May
13

命令行粉丝团:cacls补充

Posted by » developerly
70 hits

上一篇文章中我们介绍了cacls的使用,但是使用cacls总会出现如下提示:

Are you sure [Y/N]?

必须确认输入Y才能继续完成这个命令。在批处理中我们有时候不想使用这样的交互模式,而想一切都自动化。可以使用如下方法:

Echo y| Cacls “C:\ACA” /t /g leesoft\developerly:F

就可以了。

May
8

新软介绍:Synergy

Posted by » developerly
65 hits

作为跟微软有关联的员工,公司给我每个人配备了两台电脑。怎么把两台电脑有机的组合在一起工作,是一个很有意思的话题。之前我用python写过一个剪贴板共享程序,也不过仅仅可以共享两台电脑的剪切板,每次切换使用的时候总要在两套键盘和鼠标之间换来换去。一直想写一个共享鼠标键盘最好还能共享屏幕的软件。不过幸好有了万能的互联网,让我不用再这么麻烦自己造轮子了。

隆重的介绍一个新软件Synergy
跳转后阅读新软介绍:Synergy的完整内容

Apr
24

用Ruby的Win32 Utils访问剪切板

Posted by » developerly
51 hits

WIN32-CLIPBOARD这个库提供了对Windows剪切板的便利访问方法

 # Example:
 require “Win32API”  #这一步很容易被忽略 
 require “win32/clipboard”
 include Win32

 # Get the data on the clipboard
 puts “Data on clipboard was: ” + Clipboard.data

 # Set the data on the clipboard
 Clipboard.data = “test”

 # Printing the data again, we get “test”
 puts “Data on clipboard is now: ” + Clipboard.data

 # Clear the clipboard
 Clipboard.empty

你可以在http://rubyforge.org/projects/win32utils下载这个包

Mar
28

命令行粉丝团:命令行模式下修改文件夹及文件的属性

Posted by » developerly
119 hits

越来越喜欢命令行了,因为命令行可以编辑脚本,自动化帮我处理很多东西。这次我要介绍的就是Windows下面修改文件夹以及文件属性的命令行。现在欢迎

cacls

华丽的出场!

具体到怎么使用,其实,挺简单,直接在command下面敲一个cacls就可以看到用法了。我先具一个例子,然后在跳转阅读里面不妨在这里再重新介绍一下。
C:\> cacls TestFolder /t /g user1@domain_name:F leesoft:F user2@domain_name:r
这句话就是为C盘TestFolder目录以及子目录赋权限。包括域domain_name下的user1和本地帐户leesoft获得了完全控制权限。domain_name下面的帐户user2获得了读的权限。
跳转后阅读命令行粉丝团:命令行模式下修改文件夹及文件的属性的完整内容

Mar
28

Windows Performance计数器,权限的奥义

Posted by » developerly
97 hits

最近研究windows performance计数器。运行在windows2003系统上,代码方面很简单:

PerformanceCounterCategory.Create(myCategoryName, “”, PerformanceCounterCategoryType.MultiInstance, new_counter);

如果使用Admin用户执行这段代码一点问题都没有。现在问题主要在于,这个程序不能以Admin用户权限来运行。普通用户在使用PerformanceCounterCategory创建性能计数器的时候会提示注册表权限不够。
“System.Security.SecurityExceptionRequested registry access is not allowed”
想当然的就为注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services添加了相应的用户,并赋予了full control的权限。
再运行程序,提示:
“System.ComponentModel.Win32ExceptionAccess is denied”
这次提示不再是注册表的问题了,而是系统访问权限不够。经过,一番调查,也试过把相关用户加到performance monitor usergroup和performance log usergorup里面,都没有解决这个问题,最终在如下网址里面关于windows2003的评论里找到了答案:http://www.objectsharp.com/cs/blogs/bruce/archive/2003/12/05/222.aspx
跳转后阅读Windows Performance计数器,权限的奥义的完整内容