虚拟机官方原版VMware-workstation-full-8.0.0-471780+序列号+汉化补丁
虚拟机官方原版VMware-workstation-full-8.0.0-471780:www.ctdisk.com/file/1276334
JC6AP-D4H0P-TZ131-4A2QM-8CNP7
0U6UU-6AJDL-RZTK9-230Q0-8ARJQ
JG2TD-DJL95-FZZZ8-DU1NH-33GH7
M149W-J031J-H8R8C-01CAH-24RPG
Product installation including VMware Tools for all operating systems. 474M Windows 32-bit and 64-bit .exe
(md5sum:4cab6130e142e71443af911bd0d01a70)
(sha1sum:773d4dec3eca5714bc0cb50ceae8e7813c4ed912
VMware-workstation-full-8.0.0-471780汉化补丁 :http://www.ctdisk.com/file/1270736
补丁解压覆盖到安装目录
Web开发中需要了解的东西
下面的这些东西可能对于大多数人并不陌生,但是可能会有些东西你以前并没有看过,或是没有完全搞懂,甚至都没有听说过。(注:我相信当你看完这个列表后,你会觉得对于我国的Web开发有点弱了,还是那句话,表面上的东西永远是肤浅的)
接口和用户体验
小心浏览器的实现标准上的不一致,确信让你的网站能够适当地跨浏览器。至少,你的网站需要测试一下下面的浏览器:
- 最新的Gecko引擎(Firefox),
- 一个Webkit引擎(Safari, Chrome,或是其它的移动设备上的浏览器)
- IE 浏览器 (测试IE的兼容性你可以使用微软IE的Application Compatibility VPC Images)
- Opera浏览器。
最后,你可以使用一下这个工具来看看你的网页在不同的浏览器下是怎么被显示出来的(注:这个工具就是以前本站介绍过的在不同浏览器和平台上检查你的网站的兼容性)
多考虑一下人们是怎么来访问你的网站而不是那些主流的浏览器:手机,读屏软件和搜索引擎,例如:一些Accessibility的东西:WAI 和Section508,移动设备开发:MobiForge.
部署Staging:怎么部署网站的更新而不会影响用户的访问。Ed Lucas的答案 可以让你了解一些(注:Ed说了一些如版本控制,自动化build,备份,回滚等机制)。
- 千万不要直接给用户显示不友好的错误信息。
- 千万不要把用户的邮件地址以明文显示出来,这样会被爬虫爬走并被让用户的邮箱被垃圾邮件搞死。
为用户的链接加上 rel="nofollow" 的属性以 避免垃圾网站的干扰。(注:nofollow是HTML的一个属性,用于通知搜索引擎“这个链接所指向的网页非我所能控制,对其内容不予置评”,或者简单地说,该链接不是对目标网站或网页的“投票”,这样搜索引擎不会再访问这个链接。这个是用来减少一些特定垃圾页面对原网站的影响,从而可以改善搜索结果的质量,并且防止垃圾链接的蔓延。)
- 为网站建立一些的限制 -这个属于安全性的范畴。(注:比如你在Google注册邮箱时,你一口气注册超过两个以上的邮箱,gmail要求给你发短信或是给你打电话认证,比如Discuz论坛的会限制你发贴或是搜索的间隔时间等等,更多的网站会用CAPTCHA来确认是人为的操作。这些限制都是为了防止垃圾和恶意攻击)
- 学习如何做 Progressive Enhancement. (注:Progressive Enhancement是一个Web Design的理念,如:1)基础的内容和功能应该可以被所有的浏览器存取,2)页面布局的应该使用外部的CSS链接,3)Javascript也应该是外部链接还应该是 unobtrusive 的,4)应该让用户可以设置他们的偏好)
- 如果POST成功,要在POST方法后重定向网址,这样可以阻止用户通过刷新页面重复提交。
- 严重关注Accessibility。因为这是法律上的需求(注:Section 508是美国的508法案,其是美国劳工复健法的改进,它是一部联邦法律,这个法律要求所有技术要考虑到残障人士的应用,如果某个大众信息传播网站,如果某些用户群体(如残疾人)浏览该网站获取信息时,如果他们无法正常获得所期望的信息(如无法正常浏览),那可以依据相关法规,可以对该网站依法起诉)。 WAI-ARIA 为这方面的事提供很不错的资源.
安全
- 在网上有很多关于安全的文章,但是 OWASP 开发指导 涵盖了几乎所有关于Web站点安全的东西。(注:OWASP(开放Web应用安全项目-Open Web Application Security Project)是一个开放的非营利性组织,目前全球有130个分会近万名会员,其主要目标是研议协助解决Web软体安全之标准、工具与技术文件,长期致力于协助政府或企业了解并改善网页应用程式与网页服务的安全性。OWASP被视为Web应用安全领域的权威参考。2009年下列发布的美国国家和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则)
- 了解什么是 SQL 注入攻击 并知道怎么阻止这种攻击。
- 永远不要相信用户的输入(包括Cookies,因为那也是用户的输入)
- 对用户的口令进行Hash,并使用salt,以防止Rainbow 攻击(陈皓注:Hash算法可用MD5或SHA1等,对口令使用salt的意思是,user在设定密码时,system产生另外一个random string(salt)。在datbase存的是与salt + passwd产的md5sum 及salt。 当要验证密码时就把user输入的string加上使用者的salt,产生md5sum来比对。 理论上用salt 可以大幅度让密码更难破解,相同的密码除非刚好salt 相同,最后存在database 上的内容是不一样的。google一下md5+salt你可以看到很多文章。关于Rainbow 攻击,其意思是很像密码字典表,但不同的是,Rainbow Table存的是已经被Hash过的密码了,而且其查找密码的速度更快,这样可以让攻击非常快)。使用慢一点的Hash算法来保存口令,如bcrypt(被时间检证过了)或是scrypt (更强,但是也更新一些)(1,2)。你可以阅读一下 How To Safely Store A Password(注:酷壳以前曾介绍过bcrypt这个算法,这里,我更建议我们应该让用户输入比较强的口令,比如Apple ID注册的过程需要用户输入超过8位,需要有大小写和数字的口令,或是做出类似于这样的用户体验的东西)。
- 不要试图自己去发明或创造一个自己的fancy的认证系统,你可能会忽略到一些不容易让你查觉的东西而导致你的站点被hack了。(注:我在腾讯那坑爹的申诉系统中说过这个事了,我说过这句话——“真正的安全系统是协同整个社会的安全系统做出来的一道安全长城,而不是什么都要自己搞”,当然,很遗憾不是所有的人都能看懂这个事,包括一些资深的人)
- 了解处理信用卡的一些规则 。(这里也有一个问题你可以查看一下)(注:有两上vendor可以帮助你,一个是 Authorize.Net 另一个是 PayFlow Pro)
- 知道如何对付session劫持。(注:请参看wikipedia的这Session Hijacking,)
- 避免 跨站脚本攻击(XSS)。(注:参看酷壳站前几天发的《新浪微博的XSS攻击事件》)
- 避免 跨站伪造请求攻击 cross site request forgeries (XSRF).
- 保持你的系统里的所有软件更新到最新的patch。
- 确保你的数据库连接是安全的。
- 确保你能了解最新的攻击技术,以及你系统的脆弱处。
(注:之前本站的“一些资源”提到过Mozilla的安全编程规范,还有Ruby on Rails的Web安全的开发教程)
性能
- 只要需要,请实现cache机制,了解并合理地使用 HTTP caching 以及 HTML5 Manifest.
- 优化页面——不要使用20KB图片来平铺网页背景。(陈皓注:还有很多网页页面优化性的文章,你可以STFG – Search The Fucking Google一下。如果你要调试的话,你可以使用firebug或是chrome内置的开发人员的工具来查看网页装载的性能)
- 学习如何 gzip/deflate 网页 (deflate 更好).
- 把多个CSS文件和Javascript文件合并成一个,这样可以减少浏览器的网络连数,并且使用gzip压缩被反复用到的文件。
- 学习一下 Yahoo Exceptional Performance 这个网站上的东西,上面有很多非常不错的改善前端性能的指导,以及 YSlow 这个工具。 Google page speed 是另一个用来做性能采样的工具。这两个工具都需要安装 Firebug 。
- 为那些小的图片使用 CSS Image Sprites,就像工具条一样。 (参看“最小化HTTP请求”)(注:把所有的小图片合并成一个图片,然后用CSS把显示其中的一块,这样,这些小图片只用传输一次,酷壳的Wordpress样式的那个RSS订阅列表中的小图标就是这样做的)
- 繁忙的网络应该考虑把网页的内容分开存放在不同的域名下。(注:比如有专门的图片服务器——图片相当耗带宽,或是专门的Ajax服务器)
- 静态网页(如,图片,CSS,JavaScript,以及一些不需要访问cookies的网页)应该放在一个不使用cookies的独立的域名下,因为所有在同一个域名或子域名下的cookie会被这个域名下的请求一同发送。另一个好的选择是使用 Content Delivery Network (CDN).
- 使用单个页面的HTTP请求数最小化。
- 为Javascript使用 Google Closure Compiler或是 其它压缩工具(注:压缩Javascript代码可以让你的页面减少网络传输从而可以得到很快的喧染。注意,并不是所有的工具都可以正确压缩Javascript的,Google的这个工具甚至还可以帮你优化你的代码)
- 确认你的网站有一个
favicon.ico文件放在网站的根下,如/favicon.ico. 浏览器会自动请求这个文件,就算这个图标文件没有在你的网页中明显说明,浏览器也会请求。如果你没有这个文件,就会出大量的404错误,这会消耗你的服务器带宽。(陈皓注:服务器返回404页面会比这个ico文件可能还大)
SEO(搜索引擎优化)
- 使用“搜索引擎喜欢的” URL,如:使用
example.com/pages/45-article-title而不是example.com/index.php?page=45(陈皓注:这里的URL是说Wordpress的,后者是默认的)
- 如果你的动态页面要使用
#,那么请把其改成#!,而在服务端,你需要处理$_REQUEST["_escaped_fragment_"]这是Google搜索引擎需要的。换句话说,./#!page=1会被Google搜索引擎转成./?_escaped_fragments_=page=1。(注:通常来说URL中的#后的东西都不会被传到服务器上,所以,为了要让Google可以抓取AJAX的东西,你需要使用#!,而Google会把“#!”转成“_escaped_fragment_”来向服务器发请求,Twitter的大量的链接者是#!的,比如:https://twitter.com/#!/your_activity)。另外,用户也许会使用Firefox或Chromium,history.pushState({"foo":"bar"},"About", "./?page=1");是一个很不错的命令。所以,就算是我们的地址栏上的地址改变了,页面也不会重新装载。这可以让你使用?而不是#!也能无刷地保住当前的动态的页面,这可以让AJAX的请求被浏览器记住。
- 别使用“click here”这样的链接。这样一来,无法SEO,而且对于一些需要使用读屏人来说很不友好(陈皓注:关于读屏软件,可参看本站的“如果看不见你还能编程吗”)
- 做一个 XML sitemap,并放在网端的根下
/sitemap.xml. (注:这个文件可以让搜索引擎了解你的网站图) - 当你有多个URL指向同一个网页的使用,使用
<link rel="canonical" ... />你可以使用 Google Webmaster Tools 来查看相关的问题。
- 安装 Google Analytics(或是别的开源的网站分析工具,如: Piwik).
- 了解 robots.txt 和搜索引擎爬虫是如何工作的。
- 重定向请求(使用
301重定向网站),如果你要把www.example.com定向到example.com(或是其它的变更)这样可以防止Google的rank因为域名的变化发生改变。(陈皓注:301重定向一般用作域名变更)
- 知道并不是所有的爬虫都是好的,有些爬虫的行为并不好。(注:比如向你的网站发大量的请求导致服务器性能低下)
- 如果你有一些非文本的内容需要在 Google’s sitemap中,比如视频什么的。Tim Farley的答案,可以让你看到很多有价值的东西。
技术
- 理解什么是 HTTP 比如 GET, POST, sessions, cookies等,了解什么是 “stateless” 无状态。
- 让你的 XHTML/HTML 和 CSS 符合 W3C 规范,并确认他们都是 合格的。们的目标是避免浏览器的 “quirks mode”,并且可以让其更容易地能和非标准的浏览器工作,比如读屏器或移动设备。
- 理解浏览器是怎么处理JavaScript的。(你会看到有些Javascript代码在页面上前面,有些则是在后面,所以你需要对其了解清楚为什么是这样)
- 了解浏览器是怎么装载JavaScript,CSS和其它资源的,了解其对视觉上的影响。(陈皓注:10年前我做网页的时候因为HTML还很弱,所以只能使用table来布局,使用table布局的问题就是整个table读完后页面才会显示,用户的视觉体验并不好)。在某些情况下,你可能需要把你的脚本放在页面的后面。
- 理解JavaScript的sandbox是怎么怎么工作的,尤其是你想使用iframes。
- 请注意JavaScript可能会被禁止,这样会让你的AJAX失效。就算是大多数用户都开启了Javascript功能,但是也可能在一些情况下脚本是不被运行的,比如移动终端上,搜索引擎抓网页的时候也并不会执行你的脚本。
- 学习 301 和 302 转向的区别 (这也是一个SEO的问题).
- 尽可能多地学习你的部署平台。(比如:操作系统,Web Server:Apache/Nginx,防火墙,数据库,等等)
- 考虑使用一个 Reset Style Sheet.
- 考虑使用 JavaScript 框架(如: jQuery, MooTools, Prototype, Dojo 或 YUI 3),它们会很好的兼容于不同的浏览器。(注:强烈推荐你看一下本站的开源中最好的WEB开发资源一文)
- 把视觉效果和JS框架合在一起讨论,考虑使用一个Service,如:Google Libraries API来装载框架,这样可以让浏览器可能早就把这个JS框架已经cache了而不需要再从你的网站上下载了。
Bug fixing
- 明白你会花20%的时间写代码,而80%的时候在维护,所以你要小心编码。(陈皓注:参看本站的“多些时间可以少些代码”一文)
- 设计一个好的错误报告机制。
- 设计一个入口可以让人们联系到你并给你建议和批评。
- 为你开发的东西形成文档,这样可以让后来的人容易维护你的软件和系统。
- 频繁备份(也可确保你的这些备份功能正常) Ed Lucas 的回答 有一些忠告。你还需要有一个恢复策略,而不只是一个备份策略。
- 使用一个版本控制系统来保存你的代码,如: Subversion 或 Git.
- 别忘了做Acceptance Testing,使用 Selenium 能帮到你。
- 确保你有足够的日志,你可以使用log4j,log4n或log4r。如果出了问题,这是可以让你快速找到问题的方式。
- 当你写日志的时候,确保你记录了你捕获了处理和未处理异常。报告和分析日志可以让你知道你网站的问题。
这里有多的东西被省略了,并不是因为那些可能不是有帮助的答案,而是因为那些东西都太细节了,超出了这个问题的范围,因为这本来就是一个Web开发需要了解东西的Overview。我想你可以去看一下其它人的答案,我有时间,我也会补充别人的答案进来。请随意编辑这个答案,因为可能有些东西忘了,也有可能有些东西不对。
文章出自:酷壳网
HTML5即将大展宏图,FLASH将成为历史
事情是这样的:
北京时间11月10日消息,据国外媒体报道,Adobe副总裁丹尼维诺日前在公司官方网站声明,Adobe将停止为移动浏览器开发Flash Player,表示会加大对HTML5技术的开发,并会增强对Flash的创新投资。
早在2010年4月,苹果当时CEO乔布斯曾公开宣布IOS平台放弃Flash技术,并解释放弃Flash在IOS上的原因,当时业界一致的声音是苹果和Adobe控制专利的纠纷导致了Flash没有登录IOS,而并没有把所有的注意放在Flash本身的弱点上,从此苹果、HTML5和Flash在移动平台技术上一直处于争议。事情直到2011年11月才真正的得到了答案,Adobe战略放弃了Flash,乔布斯又做了一次成功的选择,他推动了移动行业朝HTML5的方向迈出了一步。
导致Flash失败的最大原因是移动平台独特的用户使用习惯,与PC相比,使用应用程序的习惯导致了移动平台用户发现了更加便捷的方式去寻找内容,使得Flash无法获得与桌面电脑中类似的普及度。移动市场的碎片化也是导致其失败的原因,相比PC市场上“Windows+Inter”的经典组合,Adobe必须耗费大量的时间和精力在各类不同的厂商、平台和制造商之间,导致注意力分散,无法专注。
HTML5技术推进移动互联网发展
随着Flash的落幕,HTML5技术已经成为了移动平台唯一的标志,优秀的技术优势势必会影响移动互联网现在的格局,艾瑞认为,HTML5技术会即将在以下几个领域造成巨大的影响:
1.平台兼容加速WebApp占据市场
对于开发商和独立开发团队来说,移动平台的独立碎片化一直困扰着他们,开发者往往会受制于各大操作系统的限制,花费多余的研发成本在维护各个不同的操作系统,但对基于HTML5技术的Web端App来说,它就具备了到兼容不同平台上的浏览器并实现Web App客户端、减少应用的研发成本的优势。
在市场推广方面,Web App较之Native App更是有得天独厚的优势,原生的App主要是以应用商店等方法渠道为主,其核心销售手段是通过排名和内容推广为主,形式单一,数十万计的应用程序很快就能埋没研发者的应用,Web App却可以依靠PC互联网的网络广告和网络营销方式,结合传统互联网的推广模式创造新发展商机。
2.云视频、移动游戏或迎来新突破
艾瑞认为,HTML5将改变会是用户对于移动设备应用的方式,它让应用程序回归到网页,并将网页功能扩展,让手机网页呈现形式更加丰富,而HTML5的技术进步一定会先造就视频与游戏的新局面。
对于移动端的视频服务来说,HTML5的技术除了能帮助用户体验到优质的界面设计及流畅的操作体验之外,还能实现云视频功能如续播功能等。HTML5技术能为移动视频用户增加用户粘度,保证用户感受达到网页端的用户体验。
移动游戏方面,HTML5将会推进移动社交游戏的发展,跨平台的优势能给移动网页社交游戏带来庞大的用户群体,而用户数量和忠诚度是一个社交游戏能否成功的重要因素,基于HTML5技术开发的轻型社交游戏将会是手机游戏未来井喷式爆发的市场之一。
GRIDVIEW绑定列表型数据时根据类型ID号替换相应类型名称
最近在一个ASP.NET项目的开发过程中做到后台管理,新闻列表时,某一列要显示新闻的类型,
数据库中存放新闻的数据表:
id 新闻ID
newstitle 新闻标题
newsclassID 新闻类别 这里存放新闻类别表里的对应类别ID
newsinfo 新闻信息
数据库中存放新闻类别的数据表:
id 类别ID
classname 类别名称
这样设计的好处是可以自定义增加新闻类别。
但在后台用GRIDVIEW绑定新闻列表数据时,新闻类别这一列绑定的是它的ID,怎么样可以在绑定数据的同时让它绑定对应类别ID的类别名称?
于是想了一个办法,在GRIDVIEW绑定每行数据的事件中增加一些代码:
GRIDVIEW增加onrowdatabound事件
在事件处理中
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int i = 0;
//因为GridView绑定数据时的行包括表头和表尾,所以要判断一下是不是真正的数据行,如果是真正的数据行,那么把显示ID的那一列里面的数据取出来,存到变量i里面,这个变量i存放的就是相对应的类型ID
if(e.Row.Cells.Count==5 && int.TryParse(e.Row.Cells[1].Text,out i))
{
SqlConnection conn = new SqlConnection(连接字符串);
//这里根据ID查出对应的类别名称
SqlCommand cmd = new SqlCommand("select * from 表名 where id=@id", conn);
cmd.Parameters.Add("@id", i);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
e.Row.Cells[1].Text = ds.Tables[0].Rows[0]["classname"].ToString();//设置该列显示的文字,用查询出来的类别名称替换
}
}
兼职创业绝对是个错误
犯这个错误的创业者很多,也是最低级的错误,大多数想创业的人为了保障自己的经济安全,会选择利用现在单位的资源和工资来进行创业。但是这种创业充其量称之为赚外块。这种创业模式的朋友基本没有创业成功的,最终要么辞掉工作全职创业,要么放弃了创业。即使那些后来全职创业的朋友最终也没有成功,因为他们损失了激情和时间。所以如果你想创业成功,第一步就是要挥刀自宫,否则注定失败。
其实为什么注定失败,我相信大多数人都知道原因,但是就是难以割舍眼前的利益,以及没有破釜沉舟的勇气,其实与其这样不如踏踏实实的干好本职工作,在自己的单位干出一番事业出来岂不是容易。
举两个鲜活的例子吧
第一个例子,是我第一个公司的合伙人,我们出来创业的时候,我是全职投入了,我的合伙人原来是我们公司的COO,他从公司辞职后,又担任了某一线大学的老师,可以说绝对是铁饭碗,而且时间充裕。还可以利用大学的资源推广我们开发的产品,而且他的时间非常充裕,其实是很好的组合。但是许多事情不是这么简单的事情。创业本身就是一件融合勇气、情感、资金、智慧、激情的事情。第一年还可以,大家有激情,有智慧开发产品,第二年激情减退,因为我是全职,没有一分收入,生活压力加大,父母都劝我别干了,都说我傻,人家上班有收入,每年还能出国旅游一两次,你就当炮灰吧,虽然觉得也不平衡,但是为了我的目标还是咬牙坚持下来了。
由于这个合伙人不是全职,没有生活压力,在进行产品推广的时候,他担心产品不完善不愿意卖给他老婆和他朋友的公司,而去开辟新客户。他所关心的是他现有生活和交际圈的稳定,而不是公司的生存。我相信一个饿着肚子的人是不会这么做的,再丧失了先天销售优势后的产品在销售上异常困难,结果没有卖出一单。后来我建议请原来公司的销售来加盟公司,结果他不知道出于什么考虑,还是没有同意。后来又赶上他要被派到香港搞科研,一去就是2个月,销售停滞了,人心也就涣散了,结果没有多久公司就散伙了。
家里人很怪罪我的这个合伙人,认为他耽误了我两年,我虽然一分没挣,还把前几年的工资全搭进去了,但是我收获了很多经验教训,其中有一条就是我要想创业成功,就不能靠技术,一定是市场,后来我强迫自己搞销售,流氓会武术,谁也挡不住,一个搞技术的人做了销售,所能迸发的潜力是很大的。如果没有这个经验,也许不会有今天的我。所以我结婚的时候请这个合伙人做我的证婚人,另外一个公证人是跟我爸合伙开饭馆的一个朋友,他们也一样闹掰了,我会在后面的教训中讲到。
第二个例子,是我的一个发小,我们都叫他马二,也就是他教我怎么做的销售,把我带上道的。在我第一家公司散伙后,他和一个单位的同事张三(化名)、一个高中同学刘四(化名)一块开了一家工控公司。马二和张三都没有辞职,马二是公司的销售,掌握客户资源,可以很便利的从公司切客户过来,张三是公司的研发人员,可以很方便的把公司的技术拿过来,刘四全职,负责公司日常运营,接应马二、张三甩过来的资源,其实看起来这种搭配挺好,先期三个人肯定约定,公司做起来了就一块出来。因为我经历了这么一次公司失败的教训,我就跟马二说如果你们不全职干,肯定散伙。马二就跟我讲他们客户都是他从公司切过来的,如果辞职了,就没有客户来源了,而且说跟我这边的情况不同,刘四是认识多少年的铁哥们,不用担心。
兼职创业绝对是个错误
(摘:行业中国)
WinForm窗体间参数传递的几种方法
方法一: 窗体属于类,可以在窗体类中定义已全局变量,类型为公开、静态的。
示例:
public static string str ="";
注意是静态变量,如果为:
public string str = "";
可能会出现问题,非静态变量只能实例化对象后,才可以访问,如果该值为动态赋值的话,当别的窗口调用的时候,该值 str,一直是为”";所以说最好能设置为静态成员变量,用类来访问它。
方法二:在窗体类中定义构造函数,意思就是说,如果form1要用到form2的一个变量,则要在form1中定义一个构造函数:
public Form1(string str)
{
//在实例化form1的时候,传递str参数过来,最后调用该参数即可
}
个人认为,此方法是在form2中创建form1的时候调用最合适,反过来,form1如果是个主窗口,则此方案不是最好。
方法三:通过事件来传递参数
事件机制一直是很难理解,比如开会,安排会议,首先要选择开会时间,地点等因素(定义事件),然后可能通过电话,邮件方式通知大家(事件发布),另外一方一旦收到,会按照先前设置的开会时间,地点来参加会议(事件响应),大概事件就是要通过三个步骤完成:
第一步:定义委托: public delegate void Mydelegate(string str)//参数str根据情况来定
第二步:声明事件变量:public event mydelegate MyEvent;
第三步:发布事件,这个是由声明者来做的,定义一个激发事件函数
比如说:
public void Handle()
{
MyEvent(str);
}
最后:事件接受者可以订阅事件
xx.MyEvent += new MyDelegate(事件处理函数,有接受者定义)
xx.Handle();
//一般操作是在 “+=”后面按tab键,.net平台会自动给你生成一个处理函数,比如说下面的处理函数:
void xx_MyDelegate(string str)
{
//参数str是发布者传递过来的参数,会议召开时间、地点等信息;
//处理代码
示例代码:
窗口一:
using System;
using System.Windows.Forms;
namespace Test_Event
{
public partial class Form1 : Form
{
//Form1构造函数
public Form1()
{
InitializeComponent();
}
public static string str = "";
private void button1_Click(object sender, EventArgs e)
{
str = this.textBox1.Text;
Form2 f2 = new Form2();
f2.Show();
f2.myevent += new Form2.dd(f2_myevent);//订阅事件
//f2.hand(); //激发函数
}
void f2_myevent(string str)
{
this.textBox1.Text = str;
}
}
}
窗口二:
using System;
using System.Windows.Forms;
namespace Test_Event
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public delegate void dd(string str);//定义委托
public event dd myevent; //事件变量
//事件激发函数
public void hand()
{
myevent(this.textBox1.Text);
}
private void button1_Click(object sender, EventArgs e)
{
//hand();
this.Close();
}
private void Form2_Load(object sender, EventArgs e)
{
this.textBox1.Text = Form1.str;
}
}
}
最佳方法去掉WINDOWS 7快捷方式小箭头
无论是用暴力删除快捷方式小箭头还是用透明图片代替,总觉得不是十分完美。今天无意在网上发现这样一个小技巧
reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons” /v 29 /d “C:\Windows\system32\imageres.dll,196″ /t reg_sz /f
taskkill /f /im explorer.exe
attrib -s -r -h “%userprofile%\AppData\Local\iconcache.db”
del “%userprofile%\AppData\Local\iconcache.db” /f /q
start explorer
将上面的代码复制到记事本中,然后另存为bat文件,然后右键该bat文件以管理员身份运行就大功告成啦!!
iphone4 铃声的设置方法(转)
打开“itunes”,选择菜单栏的“文件”-“将文件添加到资料库”
选择要做铃声的歌曲,单击“打开”
歌曲会出现在“资料库”的“音乐”里
右击歌曲,选择“显示简介”
选择“选项”填上“起始时间”和“停止时间”(在40秒以内),-“确定”
再右击歌曲,选择“创建ACC版本”
出现同样文件名,但时长在40秒以内的文件
右击新创建的歌曲,选择“在windows资源管理器中显示”,把“m4a”格式改成“m4r”,在跳出的窗口选择“是”即可
ps:如果看不到“m4a”,在选择“在windows资源管理器中显示”后,在菜单栏选择“工具”里的“文件夹选项”,选择“查看”,在“高级设置”里,去掉“隐藏已知文件的扩展名”前面的勾,然后“确定”。
检查:在“itunes”菜单栏“编辑”里找到“偏好设置”打开
在“常用”-“源”里的“铃声”前面打钩,然后“确定”
就可以在“资料库”里看到“铃声”
打开“铃声”,就可以看到你的文件有没有被转成铃声
然后在“设备”里打开“iphone”
选择“铃声”,在“同步铃声”项打钩,选择“所有铃声”,或者“选定铃声”,然后选择“同步”,即可
成功同步“铃声”以后 铃声会出现在手机的“设置”-“声音”-“铃声”-“自定”里面
要用这个铃声,只需选择就可以了。“自定”选项 在“标准”选项上面
国产山寨平板电脑-除去华丽界面的背后
最近关于国产山寨平板电脑的新闻不绝于耳,本来只关心移动手机市场的我,也不得不开始注意平板电脑的行情了。
其实本人向来对平板电脑不感冒,在我眼里,平板电脑这种东东与前些年的上网本差不多。如果电池的续航能力和价格没有突破的话,作为我,宁可买个好点的智能手机使用类似功能。
不过近段时间国产平板电脑开始崛起,对之前的想法有所改观。
当技术不再是影响平板电脑品质的主要因素后。除去华丽界面的背后,就是平板电脑整体使用过程中的稳定性和续航能力,与操作系统而言除了IOS以外,各大平板厂商多数采用当前红得发紫的ANDROID平台。对于安卓(Android)因为其开源的特点。如果有实力扩展开发的,那么开发一个比较漂亮的操作界面用以吸引用户的眼球,如果没有开发实力的,拿来用就是了。这里唯一得指出的影响平板电脑运行稳定因素的另一个关键就是电脑主板。对国产山寨平板的担心也在这一点,因为就CPU而言,在用的就市面上这么几个厂家生产的CPU…平板厂家应该也没有这个实力自己研发。而主板品质的好坏就真正影响到这款平板是否真的价廉物美。毕竟广大用户支持国产首要条件是能正常使用。国产山寨平板和生产厂家们希望不要让我们失望。另一个因素-外观,我倒是一点也不担心。大家都知道,我们的模仿能力不是一般国家能比的。不然也不会出现“山寨”这个词了。
以上文章没有条理,只是把自己的想法像流水账式地记录下来!


