C# 控制主板蜂鸣器发声

 

在C#中可以通过以下四种方式来实现蜂鸣或者报警,播放声音之类的功能.XP下对蜂鸣有用,win7下请接上扬声器.

1). Beep的报警实现

 

2) 调用Microsoft.ViualBase中的Beep():
1.先引入命名空间:using Microsoft.VisualBasic;
2.调用:Interaction.Beep();
在编译时注意要引用Microsoft.VisualBasic.dll程序集,否则编译不能通过。
另外,如果是Console应用,可以用Console.WriteLine(”\a”);来代替Beep()。

3) 通过主板蜂鸣器发出蜂鸣

 

 

4) 调用PlaySound(string pszSound,int hmod,int fdwSound)来播放声音

 

 

lost中100个值得回味的镜头

原本这是外国迷友们选出的TOP100,但我感觉很多场景的入选很摸不到头脑,便改动了一些,谁知这一改就改掉了大半,不得不感叹lost这部电视剧的伟大,看点实在是太多了!本TOP100的入选截止第五季第十三集,欢迎大家补充,加入你所认为最值得回味的镜头。^_^

Season 1

1.全剧开篇:回想第一季,迷失开篇的五分钟,Jack冲出丛林后的惊鸿一瞥,伴随着摄人心魄的声效以及漫天飞舞的残骸,我们终于体会到什么叫做震撼!(Season 1, Episode 1: Pilot, Part 1)

2. 新生:在Jack发现Kate的逃亡匪徒的身份后,两人在夕阳下的对话。Jack的回答造就了lost有史以来的第一次感动,这一刻,值得所有lost迷铭记:(Season 1, Episode 3: Tabula Rasa)
kate:“I want to tell you what i did!”
Jack:“I don't want to know.
It doesn't matter,kate!
Who we are,is the things before the crash.Three days ago,we all deaded.
So we should start over!”

3.locke的救助:Jack追寻他神出鬼没的父亲一路狂奔到悬崖边并遭遇险情,locke出手相救,随后两人的谈话让Jack终于决定坦然接受leader的重担。(不知当日后两人分别带领自己的队伍针锋相对时,是否还会回忆起如此往昔?)(Season 1, Episode 5: White Rabbit)

4.查理的微笑:当Locke尝试说服查理戒毒时,顺着Locke指引的方向,查理找到丢失已久吉他——失而复得的喜悦!(Season 1, Episode 6: House of the Rising Sun)

5.shannon的晚歌:夕阳的余晖下,shannon唱起那首La Mer,似乎,时间都放缓了脚步,驻足聆听。(Season 1, Episode 12: Whatever the Case May Be)

6.Hurley的815:为了能够赶上815航班,Hurley所做出的一系列举动,堪称第一季最强大的爆笑点。(Season 1, Episode 24: Exodus, Part 2)

Season 2

7.奇迹:Jack含泪对sarah说他对于她的双腿无能为力,但随后jack发现sarah的双腿依然有知觉!奇迹!发生了!(Season 1, Episode 1: Man of science,Man of faith)

8.海岸黄昏:夕阳西下,海风微拂。Hugo将Dharma的食物分发给众人,舒缓的音乐响起,众人的笑脸在昏暗的光线下浮现,温馨而宁静。(Season 2, Episode 4: Everybody Hates Hugo)

9.sun的戒指:Sun在种植她的小菜园时丢失了戒指,在kate的帮助下她找回了Jin的信物,同时也找回了对爱情的信任。(Season 2, Episode 5: …And Found)

10.Shannon之死:lost中第一例毫无准备的死亡,Sayid怀抱Shannon尸体的场景让人心碎。 (Season 2, Episode 6: Abandoned)

介绍一些PHP判断变量的函数

 

与其他语言不同,PHP不是一种严格的类型语言。基本上,这意味着开发者在使用一个变量前,不必明确地设定这个变量的类型(数字、字符串、布尔值)。相反,PHP解释程序根据存储在变量中的信息自动探测变量的类型。

虽然这一特点使用PHP编程非常容易,但它也存在一个重要的缺陷:当你需要测试一个变量的类型时,处理类型比较松散的语言就让人有些迷惑。幸运地是,PHP的开发者注意到这一情况,因此在其中包含了一个函数工具包,特别用它来测试变量并查明它们属于哪个特定的字符类别——也就是说,它们是否包含字符串、整数、对象或布尔值。

下面列出了这一类别中较为有用的函数,并提供说明与应用实例。

empty($var)

这个函数用来检查变量是否为空(没有值或零值)。用此函数来检查用户输入,例如,表格变量。保证它们包含有效数据。

 

 

gettype($var)

这个函数返回变量的类型。例如,"字符串"、"整数"、"布尔值"、"浮点值"等。在把变量插入严格类型的数据库域前,一般用此函数来验证变量是否为你期待的类型。

 

 

is_bool($var)

这个函数测试一个变量看它是否包含一个布尔值(真/假)。用此函数检查变量是否为布尔变量。

is_string($var)

这个函数测试一个变量是否为字符串变量。用此函数检查一个变量是否包含字符串数据。

is_numeric($var)

这个函数测试一个变量看它是否包含一个数字或数字字符串(字符串包括一个符号、数字与小数点)。在将变量用于计算前,用此函数来验证它是否包含一个数字。

is_array($var)

这个函数测试一个变量看它是一个PHP相关或是数字顺序索引数组。在循环中进行处理前,用此函数来检查变量是否为一个数组。

is_null($var)

这个函数测试一个变量看它是否为NULL。在评估由SQL查询返回的数据时,用此函数来检查一个变量是否为NULL。

is_object($var)

这个函数测试一个变量看它是否为一个PHP对象。在调用一个方法或访问属性前,一般用此函数来测试变量是否为PHP对象。

isset($var)

这个函数测试一个变量看它是否已被定义。在评估表格提交的结果时,一般用此函数来测试一个变量是否被定义。

print_r($var)

这个函数打印一个变量的内容。用此函数来"窥探"一个变量,特别是在调试一个脚本时。

 

 

 

 



 

 

注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

 

 

 

 

C#解析、序列化JSON字符串的利器—Json.NET

Json.NET的简单介绍

首先介绍一个为方便在.NET中使用JSON的API,Json.NET。它方便我们读取从浏览器流向服务器的JSON对象,也方便在响应流中写入JSON对象。

Json.NET只提供了服务器端的方法,主要有实现JSON文本与XML互相转换的类,有自定义读写JSON的JsonReader类和JsonWriter类,还有一个非自定义读写JSON的JavaScriptSerializer类。

ASP.NET AJAX中,服务器端由JavaScriptSerializer类的几个方法来用于实现序列化和反序列化能力。在Json.NET中,服务器端的序列化 和反序列化能力则主要由JavaScriptConvert类的几个方法提供。本篇的例子只使用了JavaScriptConvert。

  1. JavaScriptConvert
    • Json.NET中,这个类用于序列化和反序列化JavaScript对象。
    • 这个类有两个方法:
      1. SerializeObject(object value, params JsonConverter[] converters),序列化,它有个重载方法SerializeObject(object value)
      2. DeserializeObject(string value, Type type),反序列化,它有个重载方法DeserializeObject(string value)

在客户端,Json.NET未提供支持。如果需要则可以结合使用上一篇“What is JSON:初识JSON”提到的json.js来处理客户端的系列化与反序列化。

下面我们尝试用这个API在ASP.NET中实现用JSON交互数据。

使用Json.NET在C/S中交互JSON数据的简单例子
  1. 先新建一个ASP.NET 网站。
  2. 将下载到的Binary文件夹中的Newtonsoft.Json.dll和Newtonsoft.Json.XML放入网站的bin文件,当然要先新建bin文件夹。然后对dll添加引用。
  3. 切 换到设计模式,从标准工具箱向页面上添加三个Label,Text分别为EmployeeID、EmployeeName、EmployeeInfo;三 个Textbox,ID分别为txtID、txtName、txtInfo;然后添加一个Button,ID为btnToJSONString,Text 为Invoke ToJSONString;然后添加一个Textbox,ID为txtJSON,Textmode为MultiLine,rows设为5;接着再分别添加 一个Button和Textbox,ID为btnToObject、txtStrEmployee,Button的Text为Invoke ToStrEmployee。
  4. 添加一个WebService项目。
    • 编写一个Employee类,然后两个WebMethod,接着在项目中对该Web服务添加引用。代码如下:[csharp]using System;
      using System.Web;
      using System.Collections;
      using System.Web.Services;
      using System.Web.Services.Protocols;
      using Newtonsoft.Json;class Employee
      {
      private string[] employeeInfo;
      public int EmployeeID;
      public string EmployeeName;
      public string[] EmployeeInfo
      {
      get { return this.employeeInfo; }
      set { this.employeeInfo = value; }
      }
      }
      /**/
      /// <summary>
      /// WebService 的摘要说明
      /// </summary>
      [WebService(Namespace = “http://tempuri.org/”)]
      [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
      public class WebService : System.Web.Services.WebService
      {
      public WebService()
      {
      //如果使用设计的组件,请取消注释以下行
      //InitializeComponent();
      }
      [WebMethod]
      public string ToJSONString(int employeeID, string employeeName, string[] employeeInfo)
      {
      Employee employee = new Employee();
      employee.EmployeeID = employeeID;
      employee.EmployeeName = employeeName;
      employee.EmployeeInfo = employeeInfo;
      return JsonConvert.SerializeObject(employee);
      }
      [WebMethod]
      public string ToStrEmployee(string strJSON)
      {
      Employee decerializedEmployee = (Employee)JsonConvert.DeserializeObject(strJSON, typeof(Employee));
      return “ID: ” + decerializedEmployee.EmployeeID + ” ”
      + “Name: ” + decerializedEmployee.EmployeeName + ” ”
      + “Info: ” + decerializedEmployee.EmployeeInfo.GetValue(0).ToString();
      }
      }[/csharp]

成员的属性类型分别为数字、字符串和数组。

5、对两个Button编写事件代码
























 

6、按Ctrl + F5运行;在EmployeeID、EmployeeName、EmployeeInfo中输入123、Hunts.C及一些个人信息(用逗号隔开);点 击Invoke ToJSONString,经服务器端序列化后,结果在txtJSON文本框中;然后点击Invoke ToStrEmployee,此时txtJSON文本框中的JSON文本传输给服务器端,服务器端读取该JSON并反序列化成对象,而后在 txtStrEmployee中写入Employee的成员值。

\

只需要知道json里头除了name(名称)就是value(值),值有好几种格式,如果是数字就不用加引号,如果加了引号就是字符串,如果用[]包裹就是数组,如果出现{}就说明是嵌套的json。诸如此类。

Chrome必备扩展推荐-LastPass

Google Chrome: LastPass Password Manager

Chrome 可以自动记录我们各种网站登录需要的帐号密码,但其只是仅仅记录而已,没有提供更为完善的管理功能,而且也存在一定的安全隐患。而 LastPass Password Manager (以下简称LastPass)则可以让你的Chrome拥有完美的密码管理功能。

安装完LastPass后,地址栏右端会添加对应的图标。在正式使用LastPass之前,我们需要注册它的登录帐号,整个过程很简单,一分钟即可搞定。虽然其是海外服务,但提供了简体中文页面,所以使用上对国内用户来说没什么影响。好了,现在我们登录LastPass(图6)。

Chrome必备扩展推荐 为浏览器强身健体

图6:LastPass主界面

之后,只要你登录网站输入帐号密码,Lastpass将自动记录你的密码(当然你可以不让其保存,点击LastPass工具按钮,之后再单击‘Never’,图7),在下一次你登录同一网站的时候,Lastpass就会自动填写登录所需的信息并自动登录,或者直接通过Lastpass的书签功能实现一键登录。

Chrome必备扩展推荐 为浏览器强身健体

图7:不允许LastPass记录密码帐号

其实除了这些功能外,LastPass 同时还具备自动填表功能、自动生成安全密码、从其它第三方密码管理服务(如Keepass、1Password、PassPack等)中导入数据、数据导出等一系列功能。相信你有了这个工具后就不怕忘记密码了,不过可千万记得LastPass服务的密码哦

 

C#生成验证码图片代码

以下是本人整理的生成验证码图片的C#代码。不对,严格说应该是asp.net代码。。。

可以通过下面注释的部分采用cookie或session来验证!

regsvr32 注册.dll的用法

Regsvr 32命令是Windows中控件文件(如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。 命令格式
Regsvr32 [/s] [/n] [/i[:cmdline]] dllname
/u 卸载安装的控件,卸载服务器注册;
/s 注册成功后不显示操作成功信息框;
/i 调用DllInstall函数并把可选参数[cmdline]传给它,当使用/u时用来卸载DLL;
/n 不调用DllRegisterServer,该参数必须和/i一起使用。
简单实例
要手工注册“E:\\CPCW.dll”,只需在“开始→运行”中键入“Regsvr32 E:\\CPCW.dll”,单击“确定”按钮后会弹出提示信息“DllRegisterServer in CPCW.dll succeeded”,说明组件注册成功;如果要卸载此组件,在“开始→运行”中键入“Regsvr32 /u E:\\CPCW.dll”即可。
格式:regsvr32 [/s] [/n] [/i[:cmdline]] DLLname
使用参数——–解除服务器注册
使用参数[/s]——–无声;不显示消息框
使用参数———调用DllInstall,给其传递一个可选[cmdline];跟/u参数一起使用时卸载DLL。
使用参数[/n]——–不用调用DLLRegisterServer。这个参数必须跟/i一起使用。
实例1:IE无法打开新窗口
regsvr32 actxprxy.dll
regsvr32 shdocvw.dll
重启后如果还不能解决
regsvr32 mshtml.dll
regsvr32 urlmon.dll
regsvr32 msjava.dll
regsvr32 browseui.dll
regsvr32 oleaut32.dll
regsvr32 shell32.dll
实例2:IE无法保存HTML格式文件
regsvr32 inetcomm.dll
实例3:MSN无法登陆
regsvr32 softpub.dll
实例4:windows默认的文件关联混乱
regsvr32 /i shdocvw.dll
regsvr32 /i shell.dll
regsvr32 /i shdoc401.dll
实例5:Window server 2003中无法播放MP3
regsvr32 i3codeca.acm
regsvr32 i3codecx.ax
实例6:Windows添加/删除程序无法启动
regsvr32 mshtml.dll
regsvr32 /i shdocvw.dll
regsvr32 /i shell.dll
实例7 Windows搜索功能故障
regsvr32 urlmon.dll
实例8:禁止系统对媒体文件进行预览
regsvr32 /u shmedia.dll 恢复可用 regsvr32 shmedia.dll
实例9:卸载Win XP自带的zip功能
regsvr32 /u zipfldr.dll
实例10:禁用FSO对象
regsvr32 /u scrrun.dll
实例11:用户帐户打开后看不到里面的内容
regsvr32 nusrmgr.cpl     是用户账户的运行文件
regsvr32 mshtml.dll       是HTML解释器相关模块
regsvr32 jscript.dll       是Microsoft javascript脚本支持相关文件
regsvr32 /i shdocvw.dll   是为Windows应用程序添加基础文件和网络操作相关模块
用户帐户打开空白一般可能模块会出现问题,有的会出现比如模块找不到等
管理員無法打開或設置用戶權限解決方法:
執行:regsvr32 uscript.dll
      regsvr32 mshtml.dll
切换用户出现警示提示,“高级INF安装程序”
“错误:无法定位INF文件C:\WINDOWS\INF\icw.inf
regsvr32 MSHTML.DLL

本文出自 51CTO.COM技术博客

大家注册DLL或OCX的方法应该用Regsvr32.exe,用得多了大家一定会觉得在运行中写一长串东西很是烦人吧?!这里我向大家介绍一种麻烦一次方便"一生"的方法。这个方法只要右击你想注册或反注册的OCX或DLL就可以了。它的原理是通过修改注册表使右击OCX或DLL文件时出现注册和反注册的菜单项。
下面介绍这个方法
注册DLL文件:打开HKEY_CLASSES_ROOR\Dllfile,新建项shell,再其下新建Register,你会发现Register就是右键弹出的菜单名,再在其下建command,修改其"默认值"为Regsvr32 %1
反注册DLL文件:打开HKEY_CLASSES_ROOR\Dllfile,新建项shell,再其下新建Unregister,再在其下建command,修改其"默认值"为Regsvr32 %1 /u
注册和反注册OCX文件打开HKEY_CLASSES_ROOR\OCXfile,然后其它的方法和上面的一样的了。
右击一个OCX或DLL试试看,呵呵,Yes!出现了我们想要的Register和Unregister菜单项。
Activex注册和反注册工具——Regsvr32
使用过activex的人都知道,activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在windows的system文件夹下有一个regsvr32.exe的程序,它就是windows自带的activex注册和反注册工具。它的用法为:
regsver32详解
“regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。
参数有如下意义:
/u——反注册控件
/s——不管注册成功与否,均不显示提示框
/c——控制台输出
/i——跳过控件的选项进行安装(与注册不同)
/n——不注册控件,此选项必须与/i选项一起使用
如笔者要注册一amovie.ocx控件,则打入regsvr32 amovie.ocx即可,要反注册它时只需使用regsvr32 /u amovie.ocx就行了。
regsvr32 /s APIINEX.dll 注册DLL文件
regsvr32 /s /u APIINEX.dll 卸载DLL文件
regsvr32 Shortcut.ocx 注册ocx文件
regsvr32 /u Shortcut.ocx 卸载ocx文件
/s .dll,.ocx 注册成功后不显示提示信息。
/u .dll,.ocx 卸载
可把注册控件的命令放入批处理文件中。
regedit /s adofre15.reg
直接把注册信息注入注册表。
VB中如何用代码来实现控件的注册
—————————————————————
shell "regsvr32 """ & path & "\yourocxname.ocx"""
加/s不弹出对话框

ckeditor的详细配置

一、使用方法:

 

1、在页面<head>中引入ckeditor核心文件ckeditor.js

 

2、在使用编辑器的地方插入HTML控件<textarea>

 

如果是ASP.NET环境,也可用服务器端控件<TextBox>

注意在控件中加上 class=”ckeditor” 。

 

3、将相应的控件替换成编辑器代码

 

4、配置编辑器

 

    ckeditor的配置都集中在 ckeditor/config.js 文件中,下面是一些常用的配置参数: