显示列表

创建一个简单的Windows服务程序的例子

1. VS新建 Windows 服务项目

2. 打开 Service1.cs 的设计视图窗口,右键菜单然后选择“添加安装程序”。就会显示 ProjectInstaller.cs

3. ProjectInstaller.cs 中有 serviceInstaller1 和 serviceProcessInstaller1
设置 serviceProcessInstaller1 属性
Account:LocalSystem


设置 serviceInstaller1 属性
DisplayName:Service1
ServiceName:Service1
StartType:automatic


Service1.cs 中的 Service1就是服务的名称,继承 ServiceBase 类。
ServiceBase类定义了一些可被其子类重载的函数,通过这些重载的函数,服务控制管理器就可以控制该Windows服务程序了。
这些函数包括:OnStart()、OnStop()、OnPause() 以及OnContinue()等四个。
OnStart() 服务启动时执行。
OnStop()  服务关闭时执行。

标签:服务 
查看全文 | 分类(C#/CSharp) | 访问(5) | 编辑

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = @"C:\abc.vbs";
process.Start();

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = @"C:\abc.bat";
process.Start();


process.StartInfo.FileName 可以是任何文件或可执行文件。

查看全文 | 分类(C#/CSharp) | 访问(51) | 编辑

public class Setting
{
   Hashtable hashtable = new Hashtable();
   public Setting()
   {
       hashtable.Add("Name", "小强");
   }

   public string this[string key]
   {
       get
       {
           if (hashtable.ContainsKey(key))
           {
               return (string)hashtable[key];
           }
           return String.Empty;
       }
   }
}

protected void Page_Load(object sender, EventArgs e)
{
   Setting setting = new Setting();

   Response.Write(setting["Name"]);
}

查看全文 | 分类(C#/CSharp) | 访问(23) | 编辑

C#中int和bool没有null值。
加一个问号就可以赋予null值

int? i = null; // 这就可以用了,不会出错。
if (i == null)
{
}

bool? b = null;
if (b == null)
{
}

查看全文 | 分类(C#/CSharp) | 访问(142) | 编辑

private void Page_Load(object sender, System.EventArgs e)
{
   InfoCity infoCity = new InfoCity();

   M1(infoCity);

   M2(infoCity);

   Response.Write(infoCity.CityName);
}

private void M1(InfoCity info)
{
   info.CityName = "M1";
}

private void M2(InfoCity info)
{
   info = new InfoCity(); // 改变了地址
   info.CityName = "M2";
}

标签:错误 
查看全文 | 分类(C#/CSharp) | 访问(21) | 编辑

把 GB2312 编码转成汉字

string s = Convert.ToString(47524, 2); // 转成二进制
byte byte1 = Convert.ToByte(s.Substring(0, 8), 2);
byte byte2 = Convert.ToByte(s.Substring(8), 2);
byte[] array = new byte[2] { byte1, byte2 };
MessageBox.Show(System.Text.Encoding.GetEncoding("GB2312").GetString(array));


汉字获取 GB2312 编码
byte[] array = System.Text.Encoding.GetEncoding("GB2312").GetBytes("工");
string s1 = Convert.ToString(array[0], 16);
string s2 = Convert.ToString(array[1], 16);
int i = Convert.ToInt32(s1 + s2, 16);
MessageBox.Show(i.ToString());

查看全文 | 分类(C#/CSharp) | 访问(84) | 编辑

1.二进制
二进制转十进制
int i = Convert.ToInt32("10100100", 2);


二进制转十六进制
int i = Convert.ToInt32("10100100", 2);
string s = Convert.ToString(i, 16);


2.十进制
十进制转二进制
string s = Convert.ToString(164, 2);

十进制转十六进制
string s = Convert.ToString(164, 16);


3.十六进制
十六进制转二进制
string s = Convert.ToString(0xa4, 2);

十六进制转十进制
int i = Convert.ToInt32("A4", 16)
string s = Convert.ToString(0xa4, 10);

查看全文 | 分类(C#/CSharp) | 访问(195) | 编辑
 抽象类的定义2008-11-05

1.使用abstract关键字
2.实现抽象方法用override关键字。

public abstract class ThreadMan
{
   protected bool sleep = false;

   public void Suspend()
   {
       sleep = true;
   }

   public void Resume()
   {
       sleep = false;
   }

   public abstract void ThreadProc();
}

public class ThreadHH : ThreadMan
{
   public override void ThreadProc()
   {
       while(true)
       {
           System.Windows.Forms.MessageBox.Show("Hello ThreadProc!");
           Thread.Sleep(2000);

           while (sleep)
           {
               Thread.Sleep(100);
           }
       }
   }
}

标签:抽象类 
查看全文 | 分类(C#/CSharp) | 访问(30) | 编辑
 二维数组2008-11-03

定义二维数组
string[,] array = new string[,] { { "A", "1" }, { "B", "2" }, { "C", "3" } };

遍历二维数组
for (int i = 0; i < array.GetLength(0); i++)
{
   for (int j = 0; j < array.GetLength(1); j++)
   {
       MessageBox.Show(array[i,j]);
   }
}

标签:二维数组 
查看全文 | 分类(C#/CSharp) | 访问(69) | 编辑

要Post ViewState、EventValidation的值

string viewState = "/wEPDwUKMTk4MTYLDzI/WN9r0TKKWFH6vw==";
stringeventValidation = "/wEWGwLL1JTyAQK4oc2iCgK0jZI7vlS/";

viewState = System.Web.HttpUtility.UrlEncode(viewState);
eventValidation = System.Web.HttpUtility.UrlEncode(eventValidation);

string postData = "__VIEWSTATE=" + viewState + "&__EVENTVALIDATION=" + eventValidation;

关于分页,指定 EventTarget
postData += "&__EVENTTARGET="

每次新页面的ViewState、EventValidation的值都会变

查看全文 | 分类(C#/CSharp) | 访问(198) | 编辑
 总数:50   页次:4/5   首 页   上一页   下一页   尾 页