2015年8月31日 星期一

如何製作背景透明

1. 首先設定表單的背景色透明
Bitmap bit;
private void Form1_Load(object sender, EventArgs e)
{
    bit = new Bitmap("heart.bmp");
    bit.MakeTransparent(Color.Blue);
}
2. 透過OnPaint方法來載入要在表單中顯示的圖片
protected override void OnPaint(PaintEventArgs e)
{
    e.Graphics.DrawImage((Image)bit, new Point(0,0));
}

2015年8月30日 星期日

登錄碼操作

命名空間:
System.Win32;
RegistryKey類別
(1)OpenSubKey
(2)CreateSubKey
(3)GetSubKeyNames
(4)SetValue
Microsoft.Win32.RegistryKey retkey1=Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("WXK").CreateSubKey("WXK.INI");               //新增RegistryKey物件
foreach(string strName in retkey1.GetSubKeyNames())
{
    if(strName == textBox3.Text)
    { 
        MessageBox.Show("此註冊碼已經過期");
        return;
    }
}

Microsoft.Win32.RegistrKey retKey=Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("WXK").CreateSubKey("WXK.INI").CreateSubKey(textBox3.Text.TrimEnd());                               //在登錄中新增子機碼
retkey.SetValue("UserName",textBox2.Text");
retkey.SetValue("capataz",textBox1.Text");
retkey.SetValue("Code",textBox3.Text");
MessageBox.Show("註冊方功");

INI 檔操作

命名空間:
System.Runtime.InteropService;
(1)取得INI檔案( GetPrivateProfileString )
[DllImport( "kernel32" )]
private static extern int GetPrivateProfileString(string lpAppName,string lpKeyName,string lpDefault,StringBuilder lpReturnedString,int nSize,string lpFileName);
參數 說明
lpAppName 表示INI檔案內部根節點的值
lpKeyName 表示根節點下子標記的值
lpDefault 表示當標記值未設定或不存在時的預設值
lpReturnString 表示返回讀取節點的值
nSize 表示讀取的節點內容的最大容量
lpFileName 表示INI檔案的全路徑
(2)寫入INI檔案( WritePrivateProfileString )
[DllImport( "kernel32" )]
private static extern int WritePrivateProfileString(string mpAppName,string mpKeyName,string mpDefault,string mpFileName);
參數 說明
mpAppName 表示INI檔案內部根節點的值
mpKeyName 表示將要修改的標記名稱
mpDefault 表示想要修改的內容
mpFileName 表示INI檔案的全路徑

2015年8月28日 星期五

取得網路資訊

取得本機網路IP:

System.Net.IPAddress[] addressList = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName( )).AddressList;
string s="";
for ( int i = 0; i < addressList.Length; i++ )
{
      s += addressList[i].ToString( ) + "\n";
}
textBox1.Text = s ;                                  //顯示 IP  

取得網卡序號:

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstance();

string str="";
foreach( ManagementObject mo in moc )
{
    if((bool)mo["IPEnabled"] == true) str = mo["MacAddress"].ToString();
}
return str ;                                  //返回網卡序號  

是否存在網路:


SystemInformation.Network ==  true  //已連上網路
                          ==  false //未連上網路

網路連線狀態:


SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.OffLine   //離線
                                              == PowerLineStatus.OnLine    //連線
                                              == PowerLineStatus.Unknown   //未知

2015年8月27日 星期四

取得目錄路徑

Environment.CurrentDirectory;                                              //現在執行目錄
Environment.GetFolderPath(Environment.SpecialFolder.Programs);             // ProgramFiles目錄
Environment.GetFolderPath(Environment.SpecialFolder.Desktop);              // 邏輯桌面
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);     // 實體桌面
Environment.GetFolderPath(Environment.SpecialFolder.Startup);              // 啟動程式目錄
Environment.GetFolderPath(Environment.SpecialFolder.StartMenu);            // 開始功能表
Environment.GetFolderPath(Environment.SpecialFolder.Cookies);              // Internet Cookies
Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);           // 我的電腦
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);          // 我的文件
Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);           // 我的圖片
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);              // 我的音樂
Environment.GetFolderPath(Environment.SpecialFolder.System);               // System 目錄
Application.ExecutablePath;                                                // EXE檔案路徑

Blogger 插入程式碼( syntaxhighlighter )

1. 範本--> 編輯HTML
    在 head 前插入以下程式碼:

<link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css"/>
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css"/>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript">
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'/>


<script language='javascript'>
  SyntaxHighlighter.config.bloggerMode = true;
  SyntaxHighlighter.config.clipboardSwf = &#39;http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf&#39;;
  SyntaxHighlighter.all();
</script>

2.發表的文件以HTML格式撰寫
< pre class="brush:charp;" >
貼上程式碼...
< /pre >

取得電腦資訊

取得CPU資訊

private void Form_Load(object sender, EventArgs e)
{
     ManagementClass mc = new ManagementClass("win32_processor");                  //新增ManagementClass物件
     ManagementObjectCollection moc = mc.GetInstances();                           //取得CPU資訊
     foreach( ManagementObject mo in moc )
     {
        textBox1.Text = mo["processorid"].ToString();                              //取得CPU編號
     }
    
     ManagementObjectSearcher driveID = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
     foreach ( ManagementObject MyXianKa in driveID.Get())
     {
          textBox2.Text = MyXianKa["Manufacturer"].ToString();                     //取得CPU製造商名稱
          textBox3.Text = MyXianKa["Version"].ToString();                          //取得CPU版本號
          textBox4.Text = MyXianKa["Name"].ToString();                             //取得CPU產品名稱
     }
}

取得磁碟機資訊

private void Form_Load(object sender, EventArgs e)
{
     listBox1.Items.Clear();
     SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk"); //從 WMI 中查詢資訊
     ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);//新增 WMI 管理物件
     foreach( ManagementObject disk in searcher.Get())
     {
        string DriveType;
        DriveType = disk["DriveType"].ToString();                                  //取得磁碟類型
        if(DriveType=="4")                                                         //判斷磁碟機類型
            listBox1.Items.Add(disk["Name"].ToString();                            
     }
}
常用的WMI語詢語句及說明
WMI 查詢語句 說明
SELECT * FROM Win32_UserAccount 取得 Windows 使用者資訊
SELECT * FROM Win32_Group 取得使用者組別資訊
SELECT * FROM Win32_Process 取得目前進程資訊
SELECT * FROM Win32_Service 取得系統服務資訊
SELECT * FROM Win32_SystemDriver 取得系統驅動資訊
SELECT * FROM Win32_Processor 取得中央處理器資訊
SELECT * FROM Win32_BaseBoard 取得主機板資訊
SELECT * FROM Win32_BIOS 取得BIOS資訊
SELECT * FROM Win32_VideoController 取得顯卡資訊
SELECT * FROM Win32_SoundDevice 取得音訊設備資訊
SELECT * FROM Win32_PhysicalMemory 取得實體記憶體資訊
SELECT * FROM Win32_LogicalDisk 取得磁碟資訊
SELECT * FROM Win32_NetworkAdapter 取得網路介面卡資訊
SELECT * FROM Win32_NetworkProtocol 取得網路通訊協定資訊
SELECT * FROM Win32_Printer 取得列印與傳真資訊
SELECT * FROM Win32_Keyboard 取得鍵盤資訊
SELECT * FROM Win32_PointingDevice 取得滑鼠資訊
SELECT * FROM Win32_SerialPort 取得串列埠資訊
SELECT * FROM Win32_IDEController 取得IDE控制器資訊
SELECT * FROM Win32_FloppyController 取得軟碟控制機資訊
SELECT * FROM Win32_USBController 取得USB控制器資訊
SELECT * FROM Win32_SCSIController 取得SCSI控制器資訊
SELECT * FROM Win32_1394Controller 取得1394控制器資訊
SELECT * FROM Win32_PnPEnity 取得隨插即用設備資訊

特定磁碟資訊

ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:"");  //查詢磁碟資訊
disk.Get();                                                                        //取得磁碟資訊
return disk.GetPropertyValue("VolumeSerialNumber").ToString();                     //返回磁碟標籤

取得螢幕解析度

SystemInformation.VirtualScreen



================= 以下為機碼操作 ====================


機碼:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoDrives 隱藏磁碟 ...
NoThemesTab 隱藏「主題」設定頁面 1 (DWORD)
NoPropertiesMyComputer 禁用「我的電腦 -> 屬性」功能 1 (DWORD)
NoClose 隱藏「關機」功能 1
notraycontextmenu 隱藏「右鍵功能表」功能 1
LockTaskbar 禁止「開始功能表」改變位置 1

機碼:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
NoDispScrSavPage 隱藏「螢幕保護」設定頁面 1
NoDispAppearancePage 隱藏「外觀」設定頁面 1
DisableRegistryTools 禁用「開始」功能表的「執行」 1 (DWORD)
NoRun 隱藏「開始」功能表的「執行」 1
DisableTaskMgr 禁用「工作管理員」 1
DisableCMD 禁用命令提示字元 1

隱藏磁碟

鍵值項 鍵值
NoDrives(二進位值)
00000000 (不隱藏任何磁碟)
04000000 (隱藏 C 碟)
10000000 (隱藏 F 碟)
FFFFFFFF (隱藏 所有 磁碟)
21000000 (隱藏 A、F 碟)
try
{
    RegistryKey reK = Registry.CurrentUser.CreateSubKey(@"Software"\Microsoft\Windows\CurrentVersion\Policies\Explorer");
    reK.SetValue("NoDrives",new byte[]{ 04, 00, 00, 00}, RegistryValueKind.Binary);   //隱藏 C 碟
}
catch{}