2010年10月26日 星期二

移除創見隨身碟防寫保護

原文如下:
http://asper.pixnet.net/blog/post/25960737

一個隨身碟搞了一兩個小時,還不是一定成功,都快被搞死了 =.=a

2010年10月22日 星期五

修改plurk樣式






code:

#timeline_holder .plurk_cnt,
.plurk_cnt,
.plurk_box .list,
.list .plurk_cnt,
.list .plurk_cnt tr,
.plurk_box .mini_form,
td.td_cnt texture,
textarea#input_small
{
background:#D4EEFB !important;
}

.plurk_cnt{
border-right :1px solid #AAA;
border-left: 1px solid #AAA;
border-top: 1px solid #AAA;
}

.plurk_box .list {
border-right :1px solid #AAA;
border-left: 1px solid #AAA;
}
.plurk_box .mini_form {
border-right :1px solid #AAA;
border-left: 1px solid #AAA;
}

.plurk_box .caption {
border-right :1px solid #AAA;
border-left: 1px solid #AAA;
border-bottom: 1px solid #AAA;
border-top: 1px solid #AAA;
background-color: #A9DFF6;
font-size: 11px;
}

.list .plurk_cnt tr {
  border-bottom: 1px dashed #AAA;
}

2010年10月6日 星期三

檢查service是否執行

檢查service是否執行,如未執行則執行之 程式碼參考以下網站 http://blog.miniasp.com/post/2009/04/Windows-Service-Start-Stop-Restart-in-CSharp.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceProcess;
namespace auto_services
{
  class Program
  {
    class APP
    {
      //start_serv returns
      //return 1 work start
      //return 0 work fault
      public static int start_serv(string m_ServiceName)
      {
        try
        {
          // 建立 ServiceController 物件實體
          ServiceController service = new ServiceController(m_ServiceName);
          // 設定一個 Timeout 時間,若超過 30 秒啟動不成功就宣告失敗!                      
          TimeSpan timeout = TimeSpan.FromMilliseconds(1000 * 30);
          // 啟動服務                      
          service.Start();
          // 設定該服務必須在等待 timeout 時間內將狀態改變至「已啟動(Running)」的狀態
          service.WaitForStatus(ServiceControllerStatus.Running, timeout);
        }                
        catch                
        {                    
          return 0;                
        }                
          return 1;
      }            
      //status_serv returns            
      //return 1 work            
      //return 0 stop            
      public static int status_serv(string m_ServiceName)            
      {                
        // 建立 ServiceController 物件實體                  
        ServiceController service = new ServiceController(m_ServiceName);
        if (service.Status != ServiceControllerStatus.Stopped && service.Status != ServiceControllerStatus.StopPending)
          return 1;                
        else                    
          return 0;            
      }            
      public static void run_serv(string m_ServiceName)            
      {                
        if (APP.status_serv(m_ServiceName) == 0)                
        {                    
          int i = APP.start_serv(m_ServiceName);                    
          if (i == 1)                        
            Console.WriteLine(m_ServiceName + "服務成功啟動!");                    
          else                        
            Console.WriteLine(m_ServiceName + "服務無法啟動,請檢查相關設定!");                
        }                
        else                
        {                    
          Console.WriteLine(m_ServiceName + "服務已啟動!");                
        }            
      }        
    }
        static void Main(string[] args)
        {            
      // 已知的 Service Name              
      string m_ServiceName = "MSSQL";            
      //檢查並執行             
      APP.run_serv(m_ServiceName);        
    }    
  }
}

2010年7月14日 星期三

自動修改ip,name,workgroup V1.0

在C:\下放置mac.txt檔案 內容為 12345 00:00:00:00:00:00
電腦名稱 :123
電腦編號 :45
網路卡號 :00:00:00:00:00:00
using System;
using System.Management;
using System.Runtime.InteropServices;
using System.IO;
using System.Text;

class Program
{
    public static void Main()
    {
        FileInfo filename = new FileInfo("C:\\done");

        if(!filename.Exists)
        {
            string fn = "C:\\mac.txt";
            FileStream fs = new FileStream(fn,FileMode.Open);
            StreamReader sr = new StreamReader(fs,Encoding.UTF8);

            string[] map = new string[50000];
            string mac = APP.GetMAC();

            while(sr.Peek() != -1){
                string tmp = sr.ReadLine();
                string[] tmp_sp = tmp.Split(' ');
                map[Convert.ToInt32(tmp_sp[0])] = tmp_sp[1];
            }
       
            for (int i = 30000; i < 40700; i++)
            {
                if (map[i] != null)
                {
                    if (map[i].CompareTo(mac) == 0)
                    {
                        /*更改電腦名稱,群組,網路位址*/
                   
                        APP.change_name(i);
                        APP.change_group(i);
                        APP.SetNetIP(i);
                        FileStream files = filename.Create();
                        files.Close();                   
                    }
                }
            }
            fs.Close();
        }
    }
}

class APP
{
//修改電腦名稱_code
    enum _COMPUTER_NAME_FORMAT
    {
        ComputerNameNetBIOS,
        ComputerNameDnsHostname,
        ComputerNameDnsDomain,
        ComputerNameDnsFullyQualified,
        ComputerNamePhysicalNetBIOS,
        ComputerNamePhysicalDnsHostname,
        ComputerNamePhysicalDnsDomain,
        ComputerNamePhysicalDnsFullyQualified,
        ComputerNameMax
    };
   
    [DllImport("kernel32.dll")]
    static extern bool SetComputerName(string lpComputerName);

    [DllImport("kernel32.dll")]
    static extern bool SetComputerNameEx(_COMPUTER_NAME_FORMAT iType, string lpComputerName);

    public static void change_name(int i)
    {
        string room = Convert.ToString(i / 100);
        string id = "";
        int sitnum = i % 100;
        if (sitnum < 10)
            id = string.Concat("0",Convert.ToString(sitnum));
        else
            id = Convert.ToString(sitnum);
        string MachineName = "";
        if(room.CompareTo("313") == 0)
            MachineName = string.Concat("P",room,"_",id);
        else
            MachineName = string.Concat("CC",room,"_",id);

        SetComputerName(MachineName);
        SetComputerNameEx(_COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsHostname, MachineName);

//修改電腦名稱_code_end

    }

//修改工作群組_code
    public static void change_group(int i)
    {
        string num = Convert.ToString(i / 100);
        string WorkgroupName = "";
        if(num.CompareTo("313") == 0)
            WorkgroupName = string.Concat("P", num);
        else
            WorkgroupName = string.Concat("CC",num);
        ManagementObject manage = new ManagementObject(string.Format("Win32_ComputerSystem.Name='{0}'", Environment.MachineName));
        object[] args = { WorkgroupName, null, null, null };
        manage.InvokeMethod("JoinDomainOrWorkgroup", args);
    }
//修改工作群組_code_end

//取得mac address_code
    public static string GetMAC()
    {
        using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
        {
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"])
                    return mo["MacAddress"].ToString();
            }
        }

        return null;
    }
//取得mac address_code_end

//修改ip address_code
    public static void SetNetIP(int i)
    {
        string class_name =Convert.ToString(i / 100);
        string id = Convert.ToString(i % 100);
        string cclass;
        switch(class_name)
        {
            case "305":
                cclass = "35";
                break;
            case "307":
                cclass = "37";
                break;
            case "402":
                cclass = "42";
                break;
            case "403":
                cclass = "43";
                break;
            case "406":
                cclass = "46";
                break;
            case "313":
                cclass = "13";
                break;
            default:
                cclass = "0";
                break;
        }
        string ip, submask, gateway, DNS1, DNS2;
        string Cls = "Win32_NetworkAdapterConfiguration";
        string NS = "root\\CIMV2";
        ip = string.Concat("192.168.", cclass, ".", id);
        submask = "255.255.255.0";
        gateway = string.Concat("192.168.", cclass, ".254");
        DNS1 = "120.125.1.1";
        DNS2 = "120.125.2.1";
        using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
        {
            string index = "";
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"])
                {
                    index = mo["Index"].ToString();
                }
            }

            ManagementObject objCls = new ManagementObject(NS, Cls + ".INDEX=" + index, null);
            ManagementBaseObject objInPara;

            objInPara = objCls.GetMethodParameters("EnableStatic");
            objInPara["IPAddress"] = new string[] { ip};
            objInPara["SubnetMask"] = new string[] { submask};
            objCls.InvokeMethod("EnableStatic", objInPara, null);

            objInPara = objCls.GetMethodParameters("SetGateways");
            objInPara["DefaultIPGateway"] = new string[] { gateway};
            objCls.InvokeMethod("SetGateways", objInPara, null);

            objInPara = objCls.GetMethodParameters("SetDNSServerSearchOrder");
            objInPara["DNSServerSearchOrder"] = new string[] { DNS1,DNS2};
            objCls.InvokeMethod("SetDNSServerSearchOrder", objInPara, null);

        }
    }
//修改ip address_code_end
}