2013年12月24日 星期二

C# 防止重複執行程式

http://tw.myblog.yahoo.com/jw!TH0Xl0OBGBYtk2mBhmZRIFJKSl4-/article?mid=700

http://lopechu6.blogspot.tw/2013/02/c.html


很多程式為常駐的程式,為了防止重複執行造成的怪怪結果
可用此方式偵測是否已經執行
 1. 宣告bool變數來接收結果 範例內為宣告 bool isAppRunning = false;
 2. 加上 System.Threading.Mutex mutex = new System.Threading.Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRunning);
 3. 判斷回傳結果 isAppRunning = false; //代表執行中
                              isAppRunning = true;   //尚未執行
PS:此方法有各缺點,如果同一個程式但在不同目錄時還是可以重複執行
[STAThread]
static void Main()
{
    bool isAppRunning = false;
    System.Threading.Mutex mutex = new System.Threading.Mutex(
        true,
        System.Diagnostics.Process.GetCurrentProcess().ProcessName,
        out isAppRunning);
    if (!isAppRunning)
    {
        MessageBox.Show("程式執行中!");
        Environment.Exit(1);
    }
    else
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}



==================================



using System.Diagnostics;
...
...
//=====不可重複開啟同一支程式(將程式碼放至於偵測是否被開啟的程式中即可)=====
Process[] proc = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
if (proc.Length > 1)
{
    //表示此程式已被開啟
    MessageBox.Show("程式執行中");
}

//=====偵測執行中的外部程式並關閉=====
Process[] MyProcess = Process.GetProcessesByName("程式名稱");
if (MyProcess.Length>0)
    MyProcess[0].Kill(); //關閉執行中的程式

2013年11月23日 星期六

Cheat Engine 教學

Cheat Engine 教學


基礎
http://blog.yam.com/celearning/article/28409939


挑預覽器
http://dinosaurs.pixnet.net/blog/post/38116269


無法在Chrome用Cheat Engine加速Flash遊戲的解決法
http://catchtest.pixnet.net/blog/post/28273741-%E7%84%A1%E6%B3%95%E5%9C%A8chrome%E7%94%A8cheat-engine%E5%8A%A0%E9%80%9Fflash%E9%81%8A%E6%88%B2%E7%9A%84%E8%A7%A3%E6%B1%BA%E6%B3%95


加速Flash遊戲
http://catchtest.pixnet.net/blog/post/27430262

2013年11月8日 星期五

C# 用API 控制滑鼠

From: http://www.dotblogs.com.tw/optimist9266/archive/2011/06/07/27309.aspx
From:http://www.dotblogs.com.tw/yc421206/archive/2011/01/24/20971.aspx
From:http://www.dotblogs.com.tw/sam319/archive/2009/12/24/12643.aspx


以下控制滑鼠的動作不限於在Form裡

控制滑鼠移動到某個位置
這個不需要呼叫API
而且即使Form不是作用中視窗
仍然可以控制滑鼠位置
Cursor.Position = new Point(x, y);

控制滑鼠點擊就需要呼叫API了
在適當的地方加入以下宣告
using System.Threading;
using System.Runtime.InteropServices;

static public class Mouse
{
    [DllImport("user32.dll", SetLastError = true)]
    public static extern Int32 SendInput(Int32 cInputs, ref INPUT pInputs, Int32 cbSize);

    [StructLayout(LayoutKind.Explicit, Pack = 1, Size = 28)]
    public struct INPUT
    {
        [FieldOffset(0)]
        public INPUTTYPE dwType;
        [FieldOffset(4)]
        public MOUSEINPUT mi;
        [FieldOffset(4)]
        public KEYBOARDINPUT ki;
        [FieldOffset(4)]
        public HARDWAREINPUT hi;
    }

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct MOUSEINPUT
    {
        public Int32 dx;
        public Int32 dy;
        public Int32 mouseData;
        public MOUSEFLAG dwFlags;
        public Int32 time;
        public IntPtr dwExtraInfo;
    }

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct KEYBOARDINPUT
    {
        public Int16 wVk;
        public Int16 wScan;
        public KEYBOARDFLAG dwFlags;
        public Int32 time;
        public IntPtr dwExtraInfo;
    }

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct HARDWAREINPUT
    {
        public Int32 uMsg;
        public Int16 wParamL;
        public Int16 wParamH;
    }

    public enum INPUTTYPE : int
    {
        Mouse = 0,
        Keyboard = 1,
        Hardware = 2
    }

    [Flags()]
    public enum MOUSEFLAG : int
    {
        MOVE = 0x1,
        LEFTDOWN = 0x2,
        LEFTUP = 0x4,
        RIGHTDOWN = 0x8,
        RIGHTUP = 0x10,
        MIDDLEDOWN = 0x20,
        MIDDLEUP = 0x40,
        XDOWN = 0x80,
        XUP = 0x100,
        VIRTUALDESK = 0x400,
        WHEEL = 0x800,
        ABSOLUTE = 0x8000
    }

    [Flags()]
    public enum KEYBOARDFLAG : int
    {
        EXTENDEDKEY = 1,
        KEYUP = 2,
        UNICODE = 4,
        SCANCODE = 8
    }
}

控制滑鼠左鍵按下
static public void LeftDown()
{
    INPUT leftdown = new INPUT();

    leftdown.dwType = 0;
    leftdown.mi = new MOUSEINPUT();
    leftdown.mi.dwExtraInfo = IntPtr.Zero;
    leftdown.mi.dx = 0;
    leftdown.mi.dy = 0;
    leftdown.mi.time = 0;
    leftdown.mi.mouseData = 0;
    leftdown.mi.dwFlags = MOUSEFLAG.LEFTDOWN;

    SendInput(1, ref leftdown, Marshal.SizeOf(typeof(INPUT)));
}

控制滑鼠左鍵放開
static public void LeftUp()
{
    INPUT leftup = new INPUT();

    leftup.dwType = 0;
    leftup.mi = new MOUSEINPUT();
    leftup.mi.dwExtraInfo = IntPtr.Zero;
    leftup.mi.dx = 0;
    leftup.mi.dy = 0;
    leftup.mi.time = 0;
    leftup.mi.mouseData = 0;
    leftup.mi.dwFlags = MOUSEFLAG.LEFTUP;

    SendInput(1, ref leftup, Marshal.SizeOf(typeof(INPUT)));
}

控制滑鼠右鍵/中鍵,只要改一下MOUSEFLAG就可以了

有了左鍵按下和左鍵放開的方法
就可以模擬滑鼠左鍵的動作了
點一下(Click)
static public void LeftClick()
{
    LeftDown();
    Thread.Sleep(20);
    LeftUp();
}

連點兩下
static public void LeftDoubleClick()
{
    LeftClick();
    Thread.Sleep(50);
    LeftClick();
}

拖曳
static public void DragTo(int sor_X, int sor_Y, int des_X, int des_Y)
{
    Cursor.Position = new Point(sor_X, sor_Y); //在來源按下左鍵
    LeftDown();
    Thread.Sleep(200);
    Cursor.Position = new Point(des_X, des_Y); //到目的放開左鍵
    LeftUp();
}

這邊要注意的是滑鼠點下跟放開的中間
最好加點延遲時間
不然有時候會莫名的失效沒有作用

參考資料:
pinvoke.net: SendInput (user32)

C# 全區域熱鍵

FROM http://www.piaoyi.org/c-sharp/C-RegisterHotKey.html


     //注册热键的api
        [DllImport("user32")]
        public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
        //解除注册热键的api
        [DllImport("user32")]
        public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
        private void Form1_Load(object sender, System.EventArgs e)
        {
            //注册热键 (窗体句柄,热键ID,辅助键,实键)
            //辅助键说明: None = 0,   Alt = 1,  crtl= 2,  Shift = 4,   Windows = 8
            //如果有多个辅助键则,例如 alt+crtl是3 直接相加就可以了
            RegisterHotKey(this.Handle, 123, 2,  Keys.Q);
            RegisterHotKey(this.Handle, 456, 2, Keys.W);
        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            UnregisterHotKey(this.Handle, 123);
            UnregisterHotKey(this.Handle, 456);
        }
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case 0x0312:  //这个是window消息定义的注册的热键消息
                    if (m.WParam.ToString() == "123")   // 按下CTRL+Q隐藏
                    {
                        this.Hide();
                    }
                    else if (m.WParam.ToString() == "456") // 按下CTRL+W显示
                    {
                        this.Visible = true;
                    }
                    break;
            }
            base.WndProc(ref m);
        }

2013年11月7日 星期四

修改Windows XP 設定的秘技



FORM:http://www.twivs.tnc.edu.tw/teachhome/winxp/a3.htm


3001-在〔我的電腦〕上隱藏磁碟機
  • 在〔開始〕→〔執行〕→鍵入〔Regedit〕→〔HKEY_CURRENT_USER〕→〔Software〕→〔Microsoft〕
    →〔Windows〕→〔CurrentVersion〕→〔Policies〕→〔Explorer〕
    →增加一個 DWORD 值〔NoDrives〕的數值資料請使用十進制及如下設定
    隱藏 A 盤為〔1〕,隱藏 B 盤為 A 盤的一倍即〔2〕,隱藏 C 盤為 B 盤的一倍即〔4〕,
    如此類推,如全部隱藏則為〔67108863〕
3002-解決忘記用戶登入密碼的問題
如用戶忘記登入密碼可按下列方法解決
  1. 在電腦啟動時按〔F8〕及選〔Safe Mode With Command Prompt〕
  2. 選 〔Administrator〕後便會跳出〔Command Prompt〕的窗口
  3. 用〔Net〕的命令增加一個用戶,例:增加一個用戶名為 alanhkg888,命令語法如下
    net user alanhkg888 /add
  4. 將新增用戶提升至 Administrator 的權力,例:提升剛才增加用戶 alanhkg888 的權力,命令語法如下
    net localgroup administrators alanhkg888 /add
  5. 完成上列步驟後重新啟動電腦,在啟動畫面上便增加了一個用戶 alanhkg888 了,選 alanhkg888 進入
  6. 登入後在〔控制台〕→〔使用者帳戶〕→選忘記密碼的用戶,然後選〔移除密碼〕後〔等出〕
  7. 在登入畫面中選原來的用戶便可不需密碼情況下等入 (因已移除了)
  8. 刪除剛才新增的用戶,在〔控制台〕→〔使用者帳戶〕→選〔alanhkg888〕,然後選〔移除帳戶〕便可
    *不適用於忘記安裝時所設定〔administrator〕的密碼 
3003-取消用戶密碼的有效期
  • 滑鼠右點〔我的電腦〕選〔管理〕→〔本機使用者和群組〕→〔使用者〕
    滑鼠右點須取消密碼有效期的用戶選〔內容〕→〔一般〕下選〔密碼永久有效〕便可 
3004-在〔我的電腦〕上更改光碟機名稱
  • 在〔開始〕→〔執行〕→鍵入〔regedit〕→選 〔HKEY_LOCAL_MACHINE〕
    →〔SOFTWARE〕→〔Microsoft〕→〔Windows〕→〔CurrentVersion〕
    →在〔Explorer〕下增加一個機碼名為〔DriveIcons〕
    在〔DriveIcons〕下增加一個機碼名稱等於光碟機代號例如 E Drive 便是〔E〕
    再在〔E〕下增加一個機碼名為〔DefaultLabel〕
    在〔DefaultLabel〕的右邊窗口將〔預設值〕的資料數值設定為光碟機品牌名稱例如〔Lite-on 0841〕
3005-更改磁碟機代號
  • 在〔開始〕→〔執行〕→鍵入〔compmgmt.msc〕→在〔電腦管理(本機)〕 →〔存放〕→〔磁碟管理〕→
    在右上邊窗口所需更改代號的磁碟機右點鼠標選〔變更磁碟機代號及路徑〕→〔變更〕→
    在〔指定下列磁碟機代號〕上更改 
3006-在安裝驅動程式時停用〔數位簽署〕檢查
  • 按開始\控制台\系統\硬體\驅動程式簽署\ 選〔略過 - 直接安裝軟體,不需要我的同意〕就可以了
3007-修改其他用戶的登錄檔
  • 在〔開始〕→〔執行〕→鍵〔regedit〕→選〔HKEY_USERS〕
    然後按〔登錄編輯程式〕的〔檔案〕→〔載入 Hive 控制檔〕
    打開〔Documents and Settings\用戶名〕的資料夾選〔NTUSER.DAT 〕
    注:
  • 1. 〔用戶名〕為需修改登錄檔的用戶 
  • 2. 〔NTUSER.DAT 〕是隱藏檔
    然後按〔開始〕後會彈出對話窗口在〔機碼名稱〕內輸入用戶名稱或任何自定義名稱後
    在〔HKEY_USERS〕下便多了一個剛才輸入〔機碼名稱〕的資料夾
    這個資料夾便是所需修改的用戶登錄檔, 修改完畢後選回剛才輸入〔機碼名稱〕的資料夾,
    然後按〔登錄編輯程式〕的〔檔案〕→〔Hive 解除載入〕 
3008-將安全模式加入啟動電腦的選擇內
  1. 先備份〔boot.ini〕的檔案以防萬一
  2. 用 記事本打開 boot.ini
    將 multi(x)disk(x)rdisk(x)partition(x)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
    複製多一行,然後修改為
    multi(x)disk(x)rdisk(x)partition(x)\WINDOWS="Microsoft Windows XP Professional Safeboot" /fastdetect
    然後存檔
  3. 在〔開始〕→〔執行〕→鍵入〔msconfig〕
    在〔msconfig〕→〔BOOT.INI〕然後選
    multi(x)disk(x)rdisk(x)partition(x)\WINDOWS="Microsoft Windows XP Professional Safeboot" /fastdetect
    在〔開機選項中〕選〔/SAFEBOOT〕在右邊的下列幾個選擇其中一個:
    Minimal = 最少驅動程式
    Network = 支持網路
    Dsrepair = 目錄維修
    Minimal (Alternate Shell) = 標準資源管理桌面
  4. 重新開機時選單內便會多了一個
    Microsoft Windows XP Professional Safeboot 的選擇
3009-在系統內容中顯示個人化標誌及內容
先制作一個名為〔OEMLOGO.BMP〕標誌圖案大小約為 90x90pixels,存在〔\windows\system32〕內
然後用記事本編輯一個名為
〔OEMINFO.INI〕的檔案存在
〔\windows\system32〕內,內容為:
[General]
Manufacturer=〔填上公司名稱〕
Model=〔填上電腦型號〕
[Support Information]
Line1=〔填上資料一〕
Line2=〔填上資料二〕
Line3=〔填上資料三〕
Line4=〔填上資料四〕

如內容不夠填寫可增加 Line5, Line6....
完成後用鼠標右點〔我的電腦〕
圖標選〔內容〕便可看見
3010- 更改登記人姓名及組織名稱
在〔開始〕→〔執行〕→鍵入〔regedit〕→選 〔HKEY_LOCAL_MACHINE〕
→〔SOFTWARE〕→〔Microsoft〕→〔Windows NT〕→〔CurrentVersion〕
更改〔RegisteredOwner〕的資料值為新登記人姓名
更改〔RegisteredOrganization〕的資料值為新登記組織名稱
3011-在指定的目錄下開啟 Command Prompt
在〔開始〕→〔執行〕→鍵入〔regedit〕→選〔HKEY_CLASSES_ROOT〕
→〔Directory〕→〔shell〕→增加一個機碼〔CommandPrompt〕預設值為〔在 Command Prompt 打開〕
再在〔CommandPrompt〕下增加一個機碼〔command〕預設值為〔cmd.exe cd %1〕
完成後在檔案總管任何資料夾下右點鼠標便會出現〔在 Command Prompt 打開〕的選項
如不明怎樣修改,可 在此下載 ,然後解壓, 在 CommandPrompt.reg 雙點鼠標便可完成安裝
3012-使用 Dir 命令時先顯示檔案名稱
在 DOS Prompt 使用 Dir 命令時是先顯示日期,此更改後變成先顯示檔案名稱
鼠標右點〔我的電腦〕圖標→選〔內容〕→〔進階〕→〔環境變數〕→〔系統變數〕→〔新增〕
在〔變數名稱〕填入〔dircmd〕
在〔變數值〕填入〔/-n〕
按〔確認〕便可
3013-善用 Command Prompt
  1. 複製 Command Prompt 的內容
    在 Comand Prompt 上任何位置右點鼠標→選〔標記〕及選好需複製的範圍
    然後在 Command Prompt 的標題列上
    右點鼠標 (不能在 Command Prompt 視窗內) →選〔編輯〕→〔複制〕
  2. 貼上〔剪貼本〕內容
    在需要貼上的位置上右點鼠標 →選〔貼上〕
  3. 搜尋檔案
    在 Windows XP 的〔搜尋〕功能速度極慢,使用 Command Prompt 的 Dir /s 命令功能會快上幾倍
  4. DOS 的命令說明
    有關 DOS 命令的語法使用可在 Command Prompt 下鍵入〔help〕或在命令後加〔/?〕便會顯示出來
  5. 重新使用已輸入過的命令
    按鍵盤〔↑〕或〔↓〕鍵便會顯示出已使用過的命令,與 DOS 命令中〔Doskey〕功能相同
3014-臨時設定為〔電腦系統管理員〕
    部份工作在〔受限制的帳戶〕環境下是不可執行的,如更換硬件驅動程式,安裝軟件等
    如下設定可在不用〔登出〕便可以〔電腦系統管理員〕身份執行

  1. 先按著〔Shift〕鍵在執行項目的圖示上用鼠標右點
  2. 之後便會出現多一項〔執行身份〕的選擇
  3. 點選〔執行身份〕後出現一個窗口,選〔下列使用者〕
    然後輸入〔密碼〕後便可執行〔電腦系統管理員〕的使用權力
3015-在使用執行檔案時省卻鍵入檔案的伸延名稱
有些檔案如〔devmgmt.msc〕在執行時必須輸入整個執行檔案名
按下調整可省卻鍵入檔案的伸延名稱如〔devmgmt.msc〕中的〔.msc〕
在〔控制台〕→〔系統〕→〔系統內容〕→ 〔進階〕→在〔系統變數〕中選〔PATHEXT〕→選〔編輯〕
在〔編輯系統變數〕中的〔變數值〕加入〔.msc〕及用〔;〕分格→〔確認〕
更改後再使用〔devmgmt.msc〕時只須在〔開始〕→〔執行〕時鍵入〔devmgmt〕便可
3016-把 Administrator 加回在登入選單內
在您開機進入Windows XP時,您的登入畫面重新加入登入選單內
在〔開始〕→〔執行〕→鍵入〔regedit〕→〔HKEY_LOCAL_MACHINE〕
→ 〔SOFTWARE〕→〔Microsoft〕→〔Windows NT〕→〔CurrentVersion〕
→〔Winlogon〕→〔SpecialAccounts〕→在〔UserList〕增加一個〔DWORD〕值
〔數值名稱〕為〔Administrator〕,數值資料為〔1〕= 顯示 〔0〕=隱藏 
3017-自動整批更改檔案名稱
Windows XP 隱藏了可以整批更改檔案名稱的功能, 但只局限更改檔案名稱為(1),(2),(3)....的數字名稱
(1) 先選所需更改名稱的檔案,然後按著 SHIFT 鍵不放,右點鼠標,現在可放開 SHIFT 鍵
(2) 然後選〔重新命中〕,如(圖一)
(圖一)
(3) 點選第一個檔案並更改所需的名稱,文件名稱可任選,
這個樣本是用了(000)為開始,然後在名稱後加上(01),
可選其他名稱如(檔案)等,如(圖二)
(4) 用鼠標點資料夾內任何空白地方後所有檔案名便順序更改好,如(圖三)
(圖片二)
(圖片三)
3018- 更改檔案總管 Thumbnail 的大小
通常Windows XP預設的看圖程式是以96X96預覽,假如您需要較小的預覽規格這而有方法讓您修正
在〔開始〕→〔執行〕→鍵入〔regedit〕→選〔HKEY_CURRENT_USER〕→〔Software〕→
〔Microsoft〕→〔Windows〕→〔CurrentVersion〕→〔Explorer〕-------------- 增加〔dword〕
〔thumbnailSize〕=數值資料在〔32〕至〔256〕之間(十進位)
3019-隨時可使用〔記事本〕開啟檔案
當在〔檔案總管〕瀏覽檔案時很多時需要用〔記事本〕來開啟文件,如按下修改可隨時右點鼠標,便出現〔使用記事本開啟〕的選擇
在〔開始〕→〔執行〕→鍵入〔regedit〕
選〔HKEY_LOCAL_MACHINE〕→〔SOFTWARE〕→〔Classes〕→〔*〕
在此新增一個〔機碼〕名為〔shell]
在〔shell 〕下再增加一個〔機碼〕
名為〔OpenInNotepad〕
在〔OpenInNotepad〕增加一個字串值
數值資料為〔使用記事本開啟〕
再在〔OpenInNotepad〕下再增加一個〔機碼〕
名為〔command〕
在〔command〕增加一個字串值
數值資料為〔notepad.exe "%1"〕
如不明怎樣修改,可在此下載 ,然後解壓,
在 OpenInNotepad.reg 雙點鼠標便可完成安裝
3020-臨時關閉登入用戶
再某些情況您需要臨時關閉登入您電腦的用戶,可在regedit做一個小改變即可達到目的
在〔開始〕→〔執行〕→鍵入〔regedit〕→〔HKEY_LOCAL_MACHINE〕→ 〔SOFTWARE〕→
〔Microsoft〕→〔Windows NT〕→〔CurrentVersion〕→〔Winlogon〕→ 〔SpecialAccounts〕→〔UserList〕
增加一個〔DWORD〕值
〔數值名稱〕為需要關閉用戶的登入名稱,數值資料為〔0〕
如需重開此用戶只需將數值資料更改為〔1〕便可
3021-快速建立電腦系統資料檔案
想要了解您自身電腦硬體及作業系統的狀況嗎?以下動作能幫您迅速建立一個電腦系統資料檔案
在〔開始〕→〔執行〕→鍵入〔cmd〕便開啟〔Command Prompt〕→鍵入〔systeminfo > systeminfo.txt 〕
在相同目錄(一般在\Documents and Settings\用戶名)下便產生了一個 電腦系統的詳細資料檔案---------
〔systeminfo.txt〕
3022-登入畫面時使用開啟數字鍵為預設值
當您登入Windows時,電腦會要求您鍵入您的密碼,可是您的數字漸區Numlock往往沒亮起,Windows XP的登錄資料庫能幫您解決此問題
在〔開始〕→〔執行〕→鍵入〔Regedit〕→〔HKEY_USERS〕→〔.Default〕
→〔Control Panel〕→〔Keyboard〕→將數值名稱〔InitialKeyboardIndicators〕
資料值更改為〔2〕
3023-登入〔Regedit〕保持在根目錄
Windows XP 在打開〔Regedit〕時會停留在上次使用時的位置,按下列修改後 打開〔Regedit〕時便會停在根目錄上
在〔開始〕→〔執行〕→鍵入〔Regedit〕→〔HKEY_CURRENT_USER〕→〔Software〕 →〔Microsoft〕
→〔Windows〕→〔CurrentVersion〕→〔Applets〕 →〔Regedit〕→選〔LastKey〕及清除有關數值資料
然後在左邊窗口上的〔Regedit〕
右點鼠標→選〔使用權限〕 →在〔Administrators 的權限〕上全部選〔拒絕〕
3024-『踩地雷』的時間暫停
  1. 開啟踩地雷後,先在任何一格上面按下滑鼠左鍵,開始遊戲
  2. 接著同時按下滑鼠的左、右鍵不放,再按下鍵盤左上方的『Esc』鍵
  3. 這時踩地雷右上方的時間就停住不動了
3025-控制台在開始列內
  1. 用滑鼠右鍵按<開始> -> 選<檔案總管>
  2. 右邊視窗按滑鼠右鍵 -> <新增> -> 選<資料夾>
  3. 鍵入 ControlPanel.{21EC2020-3AEA-1069-A2DD-08002B30309D}
  4. 按<Enter>完成
3026-把資源回收筒都放在開始列內
  1. 用滑鼠右鍵按<開始> -> 選<檔案總管>
  2. 右邊視窗按滑鼠右鍵 -> <新增> -> 選<資料夾>
  3. 鍵入 RecycleBin.{645FF040-5081-101B-9F08-00AA002F954E}
  4. 按<Enter>
  5. 如想刪除的話 , 可重覆 (1) 動作 , 刪除
3027-將資源回收筒改名
  1. 按<開始>鍵 -> 按<執行> -> 鍵入 regedit
  2. 按<HKEY_CLASSES_ROOT> -> 按<CLSID> -> 尋抓並按<645FF04..........>字頭(得一個)
  3. 將右邊的<預設>用滑鼠按右鍵 -> 選<修改> -> 在<數值資料>鍵入你想要的名稱
3028-改變資料夾背景
  1. 開啟<檔案總管> -> 按<檢視> -> 選<自訂這個資料夾>
  2. 選<選擇背景圖片> -> 按<下一步>
  3. 選擇你喜歡的背景吧! -> 按<下一步> -> 按<完成>
3029-開始列內的程式集分開成兩行排列
  1. 按<開始> -> 按<執行> -> 鍵入 regedit
  2. 在右邊視窗用滑鼠按右鍵 , 選<新增> -> 按<字串值> 鍵入StartMenuScrollPrograms
  3. 用滑鼠右鍵按 -> 選<修改>在<數值資料>改為 False -> 按<確定>
3030-隱藏控制台圖示
  1. 先到 -> -> 尋抓並雙按檔案
  2. 在 [ don't load] 文字下輸入: password.cpl=no (密碼)

    joystick.cpl=no (遊戲控制器)
    midimap.drv=no (區域設置)
    sticpl.cpl=no (數碼相機)
    powerefg.cpl=no (電源管理)
    netcpl.cpl=no (網絡)
    inetcpl.cpl=no (Internet選項,使用者)
    modem.cpl=no (數據機)
    main.cpl=no (印表機,鍵盤,輸入法,字型,滑鼠)
    mmsys.cpl=no (多媒體,聲音)
    desk.cpl=no (顯示器)
    appwiz.cpl=no (新增/移除程式)
    access.cpl=no (協助工具選項)
    telephon.cpl=no (電話語音)
    themes.cpl=no (佈景主題)
    timedate.cpl=no (日期/時間)
    sysdm.cpl=no (系統,加入新的硬體)
  3. 之後要儲存檔案 , 如想還原圖示請自行刪除
  4. 或可使用 Tweak UI 軟件來隱藏圖示

    另一個方法
  1. 按<開始> -> 按<關機> -> 選<將電腦重新啟動在MS-DOS模式>
  2. 鍵入C:\WINDOWS>Scanreg/restore 按
  3. 進入左 Microsoft Registry Checker
  4. 那裡有Windows最近五日的記錄 , 選定那一天後按
  5. 時光倒流了!強呀!
3031-檔案總管跑馬燈
以下有幾個方法可以改變您檔案總管的一生
  1. 先將畫面標成<顯示成Web畫面>
  2. 按<檢視> -> <資料夾選項> -> 在檢視選單選<顯示所有檔案>
  3. 按<檢視> -> <自訂這個資料夾> -> 選<建立或編輯HTML文件> -> 按<下 一步>
  4. 它會有一個記事本視窗出現,先關閉它 -> 按<下一步> -> 按<完成>
  5. 開啟<記事本> -> <檔案> -> <開啟舊檔> -> 選C -> 再選(一定要在 C 的目錄下那個喔)
  6. 按<搜尋> -> <尋找> -> 鍵入 HERE'S A GOOD PLACE TO ADD A FEW LINKS OF YOUR OWN
  7. 找倒後在這一句下鍵入輸入你喜歡的文字
  8. 存檔
  1. 首先去 C ->WINDOWS->Application Data->Microsoft->WELCOME.
  2. 揀選 檔案
  3. 按滑鼠右鍵,選 <建立捷徑>
  4. 將<捷徑-Weldata>用滑鼠按右鍵 -> 內容
  5. 在<目標>方格(保留原有文字) , 按Space鍵一下後鍵入You_are_a_real_rascal
  6. 到<執行>方格選<縮到最小> -> 按<確定> 完成~
  1. 開啟記事本 -> 鍵入
  2. 按<檔案> -> 選<另存新檔> -> 改名為 test.htm
  3. 雙按滑鼠 test.htm 檔案 , 完成
  1. 開啟 Winamp
  2. 按左上角按扭 , 選
  3. 選項目 , 同時按下 和在雙按滑鼠左鍵
  1. 開啟 Norton AntiVitus , 進入<說明> -> 選<關於Norton AntiVirus>
  2. 同時按緊 < n > < a > < v >
  3. 會有 Norton AntiVirus 工作人員合照,不同版本會有不同合照
  1. 開啟 IE5.0 (要連上網絡) , 選<工具> ->
  2. 選<語言> -> 按<新增> 在<使用者定義>鍵入 ie-ee -> 按<確定>
  3. 選<使用者定義 [ ie-ee ] > -> 按<上移> -> 按<確定>
  4. 在瀏覽器中按<搜尋> -> 在<輸入要搜尋的字串> 鍵入 Previous Searches -> 按<自訂>
  5. 恐龍出世!
  1. 開啟 Netscape 瀏覽器(要連上網絡)
  2. 同時按 < f >
  3. 有魚看喇 !
Windows 95 OSR2 不能使用
  1. 用滑鼠按<開始> -> 再按鍵
  2. 同時按緊 < - >鍵
  3. 用滑鼠按<開始>鍵 -> 選<關閉>
  4. <開始>鍵便會消失!
<復原方法>
  1. 同時按 鍵
  2. <關閉程式>中選 -> 按<結束工作> -> 再選<否>
  3. 等視窗出現 , 選<結束工作>
  4. 或者用 Boot 機方法都可以復原<開始>
  1. 開啟 Microsoft Word 97 -> 開新檔案
  2. 鍵入 Blue 並將他選取
  3. 按<格式> -> <字型> -> 在<字型樣式>選<粗體> 到<色彩> 選<藍色> 按 <確定>
  4. 在 Blue 後面按鍵
  5. 按<說明> 選<關於Microsoft Word>
3032-如何還原 Registry
適用範圍:
  • Windows 98
  • Windows Me如果你在執行 Regedit 時不小心改壞了登錄設定,或是不明的原因使得Windows 的 registry 損壞,可以利用 scanreg.exe 的 restore 參數回存之前正確的登錄檔,讓你的 registry 起死回生。
    語法:scanreg /restore
    方法:
    Windows 98:
  1. 重新開機,按 CRTL 鍵不放,就會出現開機選單,選擇「Command Prompt Only」。
  2. 到 C:\Windows\Command 目錄(在系統提示符號下鍵入: cd\windows\command 按 Enter,如果你的 Windows 作業系統並不是安裝在 C:\Windows 則請改成你的路徑)。
  3. 輸入 scanreg /restore 按 Enter 這時候,畫面上會出現好幾個前面有日期的 .cab 檔案選項,挑一個你認為 那一天還是正常的項目,選擇 Restore 進行還原。
    完成後,重新開機。Windows Me:
    由於 Windows Me 已經沒有 Command Prompt 的啟動選項,所以請用 Windows Me 的開機片開機,在系統提示符號之下(A:/>)直接輸入 scanreg /restore 按 Enter,其餘步驟比照 Windows 98。
提醒:
scanreg /restore 不是「系統還原」,它跟 Windows Me 的「系統還原功能」沒有關係,「系統還原」是還原整個系統,Scanreg /Restore 只還原Registry。
Scanreg 它只是還原你之前正常的 registry 而已,假如你電腦的問題並不是單單由 registry 損壞造成的,即使還原了 registry 問題一樣不能解決。
還原的時候,要不要選擇最新的 .cab 檔?不一定,其實都可以,因為每一個 cab 檔都是好的,你都可以拿來還原,(因為沒有辦法成功開機, Windows 就不會備份當時的 registry),但是,「習慣上」,會用最近一 次的,因為與「現況」最符合。
舉個例子:
假如我這五天來,什麼軟體(或硬體)都沒有安裝、移除,就單純的使用軟體而已,那麼這五天內的任何一個 .cab 我都可以拿來用,因為幾乎都是一樣的。
如果我亂改 registry 之後,Windows 不正常,那我就可以拿我昨天的來還原。
如果我昨天安裝了某軟體(例如驅動程式),而今天不知為什麼不能進入系統,那麼如果我拿前天的 cab 檔案還原會產生什麼問題?因為你前天的 registry 並沒有包含你新安裝的軟體的登錄,但是你新的軟體又實實在在存
在於系統上,無法能預期會發生什麼樣問題。(可能沒事、可能有事)
所以 Scanreg/restore 只管復原 regstry,其他問題它一律不管,不要在 「觀念上」就認為這是萬靈丹,不管什麼問題都可以修復,沒有這樣的說 法。
3033-以Registry限制電腦使用權
用 Poledit 程式可設出限制一台電腦使用者使用權,而用Registry其實也可以 , 不過這是有風險的請斟酌後在修改修改程序:
  1. 開始→執行→填入" regedit"
  2. HKEY_Current_User/Software/Microsoft/Windows/CurrentVersion/Policies
  3. 這時,你可會找到Explorer或Network等項目
  4. 其它在Policies可建造的項目包括System 和 WinOldApp
  5. 在每個項目中,你可加入不同的Registry Key (DWORD) 來控制使用者權限
  6. 例如在Explorer Key,可以加上 (二進位值) 00=不生效 01=生效

    CDRAutoRun
    NoDeletePrinter 取消打印機刪除
    NoAddPrinter 取消多餘打印機
    NoRun 取消執行指令 **
    NoSetFolders 移除Start Menu的 Folders **
    NoSetTaskbar 移除Start Menu 設定中的Taskbar **
    NoFind 移除尋找指令 **
    NoDrives 隱藏我的電腦 **
    NoNetHood 隱藏網絡上的芳鄰 **
    NoDesktop 隱藏所有桌面圖示
    NoClose 取消關閉電腦
    NoSaveSettings 臨關機不用儲存桌面設定
    DisableRegistryTools 取消Registry 修改工具(這個使用時必須極之小心) **
    NoRecentDocsHistory 把最近開啟過的檔案清除
    ClearRecentDocson exit 每次離開清除檔案清單
    NoInternetIcon 把Internet 小圖示從桌面隱藏
  7. 至於System方面包括
    NoDispCPL 隱藏控制台
    NoDispBackgroundPage 隱藏背影牆紙
    NoDispScrSavPage 隱藏營幕儲存檔
    NoDispSettingsPage 將顯示器之設定隱藏
    NoSecCPL 隱藏控制台的密碼圖示
    NoPwdPage 隱藏修改密碼的圖示
    NoAdminPage 隱藏遠端管理
    NoProfilePage 隱藏使用者設定
    NoDevMgrPage 隱藏裝置管理員
    NoConfigPage 隱藏硬件資料
    NoFileSysPage 隱藏系統資料
    NoVirtMemPage 隱藏虛擬記憶體資料
  8. 在網絡Network一項
    NoNetSetupSecurityPage 沒有網絡安全設定
    NoNetSetup 取消控制台的網絡設定
    NoNetSetupIDPage 隱藏網絡中識別項目
    NoNetSetupSecurityPage 隱藏讀寫授權控制
    NoFileSharingControl 取消檔案分享
    NoPrintSharing 取消打印分享
  9. 在WinOldApp一項
    Disabled 隱藏MS-DOS Prompt
    NoRealMode 取消MS-DOS 單一模式
  10. 重新啟動電腦看看效果如何,你一定會後悔的^--^
3034-將〔修復控制台〕安裝在硬盤內
當電腦因某些原因不能正常進入視窗時,便需要進入〔修復控制台〕內將問題修復
功能近似舊版本視窗的 DOS Command Prompt 一樣,當然如果電腦不能啟動時
便需要用 Windows XP 光盤啟動電腦及在光盤執行〔修復控制台〕的功能

安 裝 辦 法

先將 Windows XP 光盤放入光盤驅動器內
在〔開始〕→〔執行〕→鍵入〔X:\i386\winnt32.exe /cmdcons〕後便會顯示一個對話框
確認是否安裝〔修復控制台〕按〔Y〕便執行安裝程序

※ X = 光盤驅動器的代號

安裝完畢後下次開機時啟動選單便會多了一個〔Microsoft Windows Recovery Console〕的選擇
詳細〔修復控制台〕的命令可參考多重啟動及XP命令表
3035-更改預設啟動作業系統
在多重作業系統的電腦啟動時會顯示多重啟動的選單,下列可更改預設啟動作業系統
  1. 〔開始〕→鼠標右點〔我的電腦〕→選〔內容〕 →在〔系統內容〕→〔進階〕在〔啟動及修復〕
  2. 按〔設定〕 →在〔系統啟動〕→〔預設作業系統〕下拉選單中選指定的作業系統
  3. 按〔確定〕
  4. 重新啟動生效
3036-使用遠端協助
當 Windows XP 出現問題不能解決,可通過〔遠端協助〕讓其他人在遠端控制你的電腦及代為解決
  1. 在〔開始〕→〔說明及支援中心〕→〔尋求協助〕
  2. 選〔透過 [遠端協助] 邀請朋友連線到您的電腦 〕
  3. 〔邀請某人來協助您〕
  4. 選擇連線的方式
  5. 在〔或使用電子郵件〕填上被〔邀請朋友〕的電郵地址
  6. 在〔提供連絡人資訊〕填上邀請人 (要顯示在邀請上的名稱)及附帶的訊息
  7. 按〔繼續〕
  8. 在〔將邀請設定成過期〕內設定有效時間 (可選一小時至 99 天)
  9. 在〔要求受邀人使用密碼〕填上及確認的密碼,此密碼是用作被〔邀請朋友〕登入你的電腦時使用,
    可輸入任何密碼但必須將密碼以其他通訊方式告訴收件者 (切勿與此電郵一起發出),按〔傳送邀請〕
    便將一個帶有附有〔RAInvitation.msrcincident〕邀請電郵發出, 被〔邀請朋友〕收到電郵時打開〔RAInvitation.msrcincident〕時便出現〔遠端協助〕
  10. 輸入〔邀請方〕提供的密碼然後選擇連線方式,如選擇〔互聯網〕方式進行,
    則雙方都要在線才能連接上,連接後便出現下列的程序

    〔邀請方〕

    跳出窗口內容為〔被邀請朋友已連接你的電腦,你是否讓他看到你的畫面及與他對話〕按〔Yes〕

    被〔邀請方〕

    畫面便出現〔邀請方〕的桌面在左上角選〔Take Control〕- 如上圖

    〔邀請方〕

    收到被〔邀請方〕〔Take Control〕的要求按,是否讓被〔邀請方〕控制你的電腦,選〔Yes〕便可

    被〔邀請方〕

    這時便可完全操作〔邀請方〕的電腦并可行使〔邀請方〕Administrator 的權力
3037-當插入光盤時立即更新內容
〔檔案總管〕在更換光盤後內容仍然顯示上張光盤的內容,可按下列方式修正
  • 在〔控制台〕→〔系統管理員〕→〔電腦管理〕→〔存放〕→〔卸除式存放裝置〕
  • 在〔媒體櫃〕在右手邊窗口鼠標右點需修正光盤機的圖標選〔內容〕
  • 在〔一般〕→將〔延後解下〕的數值設為〔0〕便可
3038-停止或自動執行光碟機啟動程式
停止自動執行光碟機啟動程式
  • 在〔我的電腦〕光碟機的圖標上右點鼠標→選〔內容〕→選〔自動播放〕→選〔不要有任何動作〕,如要停止所有格式的自動執行程序則在音樂檔、圖片、影片檔案、混合的CD、音樂CD及空白的CD內容均選〔不要有任何動作〕
  • 自動播放CD內容
    可選擇的格式包括音樂檔、圖片、影片檔案、混合的CD、音樂CD及空白的CD內容,可在〔請選擇要執行的動作〕選擇不同類型的檔案使用不同的啟動程式
  • 每次插入CD時才選擇
    在〔我的電腦〕光碟機的圖標上右點鼠標→選〔內容〕→選〔自動播放〕→選〔每次要選擇動作時,請先提示我〕,如只選部份格式的執行程序則分別在音樂檔、圖片、影片檔案、混合的CD、音樂CD及空白的CD內容選擇動作
3039-更改暫存檔儲存目錄
Windows XP 的暫存檔目錄原設在 X:\Documents and Settings\用戶名\LocalSettings\Temp 的目錄下
所以不同用戶的暫存檔會放在不同的目錄下,在清理磁碟機時造成不便,更會在安裝不支援多用戶操作軟件時出現系統找不到路徑的錯誤
為統一暫存檔目錄,可按下修改:
  • 鼠標右點〔我的電腦〕→〔內容〕→〔進階〕→〔環境變數〕將〔用戶名的使用者變數〕及〔系統變數〕中的
    〔temp〕及〔tmp〕的變數選〔編輯〕將〔變數值〕統一改為〔%SystemRoot%\Temp〕
  • 日後所有暫存檔將統一存放在 X:\Windows\Temp 的目錄下
3040-關閉啟動時視窗標誌畫面
在〔開始〕→〔執行〕→鍵入〔msconfig〕→選〔boot.ini〕
然後在〔開機選項〕內選〔NOGUIBOOT]
重新開機便沒有了視窗標誌的畫面
3041-停止啟用Windows Messenger
在〔開始〕→〔執行〕→鍵入〔gpedit.msc〕→〔電腦設定〕 →〔系統管理範本〕→
〔Windows Components〕→〔Windows Messenger〕→ 在 〔Do not allow Windows Messenger to be run〕
選〔已啟用〕
及在〔Do not automatically start Windows Messenger initially〕
選〔已啟用〕
* 僅適用用 Windows XP 商業版版本
3042-任意設定檔案總管開啟時的位置
在〔開始〕→〔所有程式〕→〔附屬應用程式〕→鼠標右點〔Windows 檔案總管〕的圖標
→選〔內容〕→〔捷徑〕→〔目標〕內填上
  • 〔%SystemRoot%\explorer.exe /n, /e, X:\xxxxxxx 〕
  • (X=Drive, xxxxxx=目錄,例如 C:\My Documents)
3043-製作一只真正的XP啟動軟盤
啟動軟盤主要功能為在 Windows XP 不能正常啟動時能使用這啟動軟盤起動及進入 Windows XP
下列各項程序可在其他視窗版本 Windows 95 或更新的版本中進行
  • 先從微軟下載啟動軟盤的程式,但此程式需要六只軟盤
  • 先執行此啟動軟盤的程式但只需製作第一只軟盤,然後取出及按〔Esc〕鍵退出其他軟盤的製作
  • 然後將製作好的第一張軟盤的內容全部刪除
  • 在 Windows XP 光盤內〔I386〕目錄下將下列兩個檔案複製到上述軟盤內:
    • Ntdetect.com
    • Ntldr
  • 再將軟盤內的〔Ntldr〕改名為〔Setupldr.bin〕
  • 然後再將 C:\ 下的〔boot.ini〕複製到軟盤內便可
  • 開機時插入此起動盤便會見到正常起動的畫面
3044-個人化硬盤驅動器的圖標
  1. 預備一個 32x32 的〔ico〕圖標檔案,儲存成 MyIcon.ico
  2. 用記事本把下列內容 (連標點符號) 填上
    [autorun]
    icon=MyIcon.ico
    儲存成 Autorun.inf 檔案
  3. 將 MyIcon.ico 和 Autorun.inf 放在更改圖標驅動器的根目錄上,重新開機便可
3045-即時鎖定電腦
建立一個 LockComp.Bat 檔內容為
  • 〔rundll32.exe user32.dll,LockWorkStation〕
然後建立一個 LockComp.Bat 的捷徑放在桌面,使用時只需雙擊圖標便可鎖住電腦
另可使用快捷鍵〔WinKey+L〕功能與上相同
3046-縮短系統啟動時 chkdsk 的等待時間
在不正常關機後重新啟動 XP 時會出現 chdsk 來檢查系統,但等待回應時間預設為10秒,按下辦法更改可設定等待回應的時間
  • 在〔開始〕→〔執行〕→鍵入〔regedit〕
  • 〔HKEY_LOCAL_MACHINE〕→〔SYSTEM〕→〔CurrentControlSet〕→〔Control〕→〔Session Manager〕
  • 更改〔AutoChkTimeOut〕內的 dword 數值資料:
  • 原數值資料為〔"AutoChkTimeOut"=dword:00000010〕
  • 如縮短等待時間為 3 秒者則更改為 "dword" 數值資料為〔3〕
  • 如此類推
3047-停止把刪除的檔案移到資源源回收筒
    方法一
  • 〔開始〕→〔執行〕→鍵入〔gpedit.msc〕→選〔使用者設定〕
  • 〔系統管理範本〕→〔Windows Components〕→〔Windows Explorer 〕
  • 將〔Do not move deleted files to the Recycle Bin ]設定為〔已啟用〕
  • 僅適用於 Windows XP 商業版版本方法二
  • 按住資源回收桶點擊滑鼠右鍵,選內容,將全部磁碟適用單一設定打勾,將不要將檔案移到資源回收桶我要在檔案移除時立即執行刪除
3048-關閉檔案總管使用 Zip 檔案為目錄
在〔開始〕→〔執行〕→鍵入〔regsvr32.exe -u zipfldr.dll〕→ 按〔確定〕便可
3049-定時自動關閉電腦
  1. 〔開始〕→〔執行〕→鍵入〔Shutdown.exe -s -t xx〕
  2. xx = 設定關機倒數秒數 (預設為 20 秒),例:如設定 30 分鐘後自動關機 = 〔Shutdown.exe -s -t 1800〕
    如設定後需取消有關設定:
  • 在〔開始〕→〔執行〕→鍵入〔Shutdown.exe -a〕便可
3050-自選文件夾背景
在部份文件夾內有一個 Desktop.ini 的隱藏文件,然後將下列內容加入至 Desktop.ini 的開始位置,如果沒有此檔案便增加一個包含下列內容的 Desktop.ini 的隱藏文件
[ExtShellFolderViews]
{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
Attributes=1
IconArea_Image=這裡填上 bmp 圖的位置 (例:C:\Windows\background.bmp)
IconArea_Text=0x00000000

更改後重新登入或啟動生效
此調整僅適用於大部份文件夾,但不適用於部份 Windows XP 已設背景的文件夾
3051-關閉 windows 自動更新
鼠標右點〔我的電腦〕→〔內容〕→〔自動更新〕 選〔關閉自動更新,我要手動更新我的電腦〕
3052-WinXP的動態ADSL撥接功能
 
3053-XP裡怎麼開DMA
關於DMA
到裝置管理員裡選擇IDE ATA/ATAPI controllers
到Primary/Secondary IDE Channel裡面的進階設定
將所有的轉送模式都設定為使用DMA(如果可用的話)
系統就會自動打開DMA支援(在BIOS裡也應該要先設為支援DMA)
3054-XP裡關閉光碟Autorun功能
  1. 打開光碟機的內容,將自動撥放裡所有的光碟格式都設為不要有任何動作
  2. 利用Group Policy (執行gpedit.msc)

    到電腦設定-->系統管理範本-->系統
    找到-->關閉自動撥放
    按右鍵選-->內容,選擇已-->啟用,
    在下面那裡選-->所有的磁碟機
    然後套用,重新開機,應該也可以,但是這個方法不能關閉音樂CD的自動撥放
3055-XP關閉系統休眠功能
XP關閉系統休眠功能
因為休眠功能佔的硬碟空間蠻大的,
所以關閉比較好,
控制台-->電源選項-->休眠(不要打勾)
3056-XP關錯誤回報
控制台---->系統---->進階---->右下角--->錯誤報告---->關閉 
3057-把數位簽署忽略掉
XP安裝驅動程式往往因為數位簽署ㄉ關係掛不上去
  • 把數位簽署忽略掉
    控制台----->系統------>硬體----->裝置管理員----->驅動程式簽署---->略過
3058-使用回舊版的 Windows Media Player
  • 其實當安裝 Windows XP 時,舊版的 Windows Media Player一直沒有移除而安裝在下列目錄:
    X=(XP所在的磁碟區)
    X:\Program Files\Windows Media Player
    如需快速開啟舊版的 Windows Media Player:
    在〔開始〕→〔執行〕→鍵入〔mplayer2〕 
  • 如需自動開啟:
    按上辦法開啟舊版的 Windows Media Player
    →選〔檢視〕→〔選項〕→〔格式〕→在〔可用格式〕選擇檔案類型
3059-如何讓XP自動連線
把連線程式放到啟動裡 但在開XP後他並沒有自動連線,有個方法簡單但實用
    方法一:
  • IE -> 工具 -> 網際網路選項 -> 連線
  • 勾選 "網路不存在時撥號"
  • 把 IE 拉到 "啟動"
  • 每次開機完成後 , 你已經上線了 !

    方法二:

    進入連線內容,把「提示名稱、密碼、憑證等」的勾勾取消掉,然後把該連線拉到「啟動」
3060-硬碟資料的管理:
  • 使用NTFS的檔案系統灌Windows XpNTFS的檔案系統相較於FAT32多了檔案"保密" "壓縮" , "使用權限" 及"磁碟配額"的功能!!因此在檔案安全及保密性來說較FAT32高!! 且以NTFS檔案系統下灌的作業系統會將不常用的檔案壓縮起來, 所以跟FAT32比起來又節省了相當的空間 , 因此若是用以FAT32檔案系統下灌的作業系統(如Win-dows 98...)就可能無法正確的讀取NTFS中的檔案!! 另外在磁區中愈灌愈多資料的情況下 , NTFS在執行的效能上較FAT32檔案系統好上許多!!
  • 因此我在 此極力推薦使用NTFS檔案系統來灌你的Windows Xp系統!!灌 Windows XP 時使用光碟開機, 在進行Format時選NTFS的檔案系統 即可!!
  • 刪除網頁快取進 控制台--> 網際網路選項 進入到 "網際網路內容" 在 "一般"中的"Temporary Internet files"下面點"刪除檔案"並將"刪除所 有離線內容"打勾, 按下"確定"
  • 另外在"一般"中還有一個"[紀錄](History)"也順便刪一刪!
  • 刪除一些Temp暫存檔: 像是"C:\WINDOWS\TEMP" , "C:\Documents and Settings\(使用者名稱)\Local Settings\Temp"
    和一些軟體專屬的Temp(大 部分應該都可以在軟體本身中設定)也一併刪一刪!!
  • 定期的作磁碟重組的工作硬碟長期使用 , 程式軟體又灌又刪的情況下 ,會照成磁區中連續的檔案破碎 ,以致 硬碟在搜尋資料時, 便要花上較多的時間 , 影響效能!!所以定期的做好磁碟重組的工作是絕對有必要的!!
  • 這次Windows Xp在磁碟重組方面較windows 98 的重組程式有顯著的進步 , 至少不像以前要花上許多的時間 , 若是使用者嫌Windows本身的 重組程式不好, 也可以使用Norton 的 Speed disk , 本人使Norton系列的軟體已 經好幾年了 , 每一代 (一年一個版本) 都令人相當滿意 , 因此在此本人極力的推薦Norton系列產品!!
  • 另有一個磁碟重整軟體 VOPT XP這是本人用過的最佳磁碟重整軟體之一,功能完全速度其快。所需軟體 : VOPT 7.0      VOPT 7.13
  • 以下只提供 Windows XP 磁碟重組的方法!! 進入到"我的電腦"中 , 在你要重組的磁碟上按滑鼠右鍵 --> 內容--> 工具-->立即重組 --> 磁碟重組 即可
3061-啟動Win時,播放midi檔
修改程序:
  1. 進入【控制台】→【聲音】→【事件】→【啟動 Windows】→【聲音】 →【名稱】→【(無)】→【確定】
  2. 開啟【檔案總管】,選擇您啟動 Windows 時,所要播放的 midi 檔案(這裡用 windows\media\canyon.mid 做範例)。
  3. 在【開始】右擊滑鼠→【開啟舊檔】→雙擊【Programs】→雙擊【啟動】
  4. 右擊選好的 midi 檔案,將其拖曳到【啟動】,放開右鍵,選【在此建立捷徑】
  5. 右擊剛剛建立的捷徑→【內容】
  6. 選【捷徑】那個標籤,將【目標(T)】的文字改成 windows\mplayer.exe /play /close windows\media\canyon.mid
  7. 按【確定】,離開。
  8. 準備好你的喇叭,重新啟動 Windows,聽聽看不一樣的啟動音樂。
3062-救回從磁碟中刪除的檔案
所需軟體 : Revival 註冊機
在硬碟或軟碟中刪除了的檔案,可否得救回。其實這個真的是很多電腦用家的問題,因為一時的大意或中了好像 CIH 這類會刪除檔案的病毒,都會使到檔案不見了!所以今次就教大家怎樣救回從磁碟刪除了的檔案。
使用方法:
首先先開啟 Revival ,然後可以按 "Edit" 選擇使用那一種方式,一般上選 "Basic Root Dir" 便可以了。接著,便按 "File" 選 "Open Drive", 這個時候便選擇你欲修復檔案的磁碟機,便按下 "Select" ,這時 Revival 便會搜尋磁碟機中的第個磁區,並把所有檔案資料夾及檔案名稱顯示出來,這也包括一已被刪除的檔案,你只要選擇要復原的檔案,再選擇儲存位置便行了。
其實 Revival 不止是這些功能而已,它還可以把整張快速格式化後的軟碟或硬碟的資料刪除及格式化,對於怕別人得到自己一些重要的檔案的用者來說,真是十分實用。>能而已,它還可以把整張快速格式化後的軟碟或硬 碟的資料刪除及格式化,對於怕別人得到自己一些重要的檔案的用者來說,真是十分實用。
注意事項:

Revival 在儲存檔案時,一定要選擇檔案儲存在另一台磁碟機,這是因為防止救回來的檔案覆蓋原先的檔案。
另外, Revival 支援 FAT 16 、 FAT 32 、 NTFS 格式。而 Revival 最大的缺點我想就是不支援長檔名,但一樣可以復原長檔名的檔案,只是檔案名稱改變了!
3063-釋放記憶體的方式
每當windows執行一些應用程式時,已經將應用程式關閉,但是記憶體可能還存在一些DLL檔案,可能會托慢了系統效能,可以利用登錄編輯器按如下的方法自動的清除記憶體中的dll資料。
  1. 執行regedit,進入登錄編輯器。
  2. 找到「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Explorer」
  3. 在右方窗格新增一個「AlwaysUnloadDll」「字串值」。
  4. 然後在「AlwaysUnloadDll」上按下滑鼠右鍵選擇「修改」。
  5. 將「值的資料」設為「1」。
  6. 重新開機即可完成上述動作。
3064-造成硬碟毀滅性故障的錯誤及操作
這不是一般的磁碟和系統錯誤,這些故障通常沒有先兆,一旦出現,在BIOS 也不能認出硬碟,硬碟數據挽回的可能性極小。
  1. 在開機和關機的時候突然強行切斷電源現在的電源及主板的ATX設計,普遍實現了軟關機的功能。這種設計讓人倍感方便。
    但是軟關機要先完成一系列的關閉正在運行的程式的操作,加上各種作業系統及各主板廠家設計上的相容性、BUG,視窗在進行關閉應用程式然後切斷電源的時候經常會出現死機,大家可能在很多論壇及報刊的問答專欄 ,都見過問“為什麼在軟關機的時候死機”的問題此時硬碟的復位動作很可能還沒完成,如果用戶採用強行切斷電源的做法,硬碟物理受損的可能性很大。
    ★正確的做法:如果在軟關機時候出現死機,應該是按RESET鍵,讓系統重新進入視窗後,再正式完成關機操作這樣可能會繁瑣一點,但是能保證硬碟安全地復位,對你上千元的硬碟來說,安全第一啊。
    還有就是開機的時候進行的切斷電源:在正常狀態下當然沒人會做這麼無聊的操作,但是當出現一些諸如顯示卡或是記憶體沒插好、螢幕線鬆脫的情況,導致電腦開機無顯示的時候,很多人就只埋頭於搞定目前看到的問題,頻繁的開機、關機,插撥板卡,再開機......
    而沒留意硬碟在一次次電源的開關下吱吱的呻吟...
    尤其是開機沒顯示,只有幾秒鐘的時間,硬碟的初始化動作還沒完成,磁頭正處於敏感位置,一下子被切斷電源停機,然後在不到10秒鐘的情況又受到電流衝擊,發生故障的機率會大大增加。
    ★正確的做法:先把硬碟的電源線撥掉,你怎麼玩都可以。故障排除後,再接也不遲啊。
  2. 對硬碟分割區進行的錯誤操作這的確是新手的錯誤居多了 --- 視窗的各種版本造成FAT16、FAT32、NTFS各種格式的存在,不同的任務導致各菜鳥蠢蠢欲動經常想變換硬碟分割區格式、現在GHOST和Partition Magic 都能對硬碟分割區進行隨心所欲的操作,以調整硬碟分割區的大小、格式,尤其是後者還具有格式化分區、隱藏硬碟分割區的功能,對熟悉操作的人來說,這些工具是讓人得心應手;但對於新手來說,對分區的操作應該特別謹慎。因為分區的錯誤雖然是軟故障,不是物理故障,但是如果胡亂操作出錯後,在沒有弄懂基本概念的情況下,不假思索地進行“恢復”操作的話,可能會導致分區的引導區和分區表過於混亂無法再被任何工具軟體識別如果你沒有硬碟分割區表(Prrtition Table) 和硬碟引導區 (MBR) 數據備份的話,嘿嘿,就只好低階格式化了低階格式化的工具使用也有個熟練和懂行與否的問題,由於對硬碟分割區進行誤操作導致新硬碟不能再使用的案例,
    我見過不少。
    ★建議的措施:無論您是老鳥還是新手,在對硬碟進行敏感操作的時候,備份好分區表和引導區數據,出錯的時候就能隨時正確恢復了。新手最好請個師傅,先帶一帶,熟悉了軟體的介面和指令後再自己操作,畢竟硬碟不同於其他配件, 面有你的寶貴資料哦。
  3. 視窗的初始化及使用過程中的危險習慣操作視窗在初始化的時候,是較為敏感和危險的時刻,如果用戶在啟動組 加載了太多的東西,視窗的初始化就會耗費大量時間,也可能會造成死機尤其是因為害怕病毒而加載了2個以上防火牆、或是在線監控病毒軟體的用戶,各殺毒軟體之間的衝突機率很大。
    另外,視窗系列提供了用TAB+ALT鍵切換各應用程式的功能,尤其是能在DOS窗口下切換回視窗介面,方便了要在舊的應用程式下工作的用戶。但是因為DOS是單線程的作業系統,其應用程式也是基於這種線程的設計,所以DOS的應用程式對CPU的佔用率較大,因為DOS老結構的問題,程式的反應也沒視窗程式快,所以在進行視窗的DOS窗口操作的時候,建議用戶的動作不要那麼快,以免系統響應不及造成死機;另外,使用TAB+ALT切換的時候也應該謹慎,不要在程式還沒完成目前的任務就強行切換,造成死機。
    視窗中的錯誤,本來不會直接造成硬碟的物理損壞。但是這些是屬於使用習慣的問題,一兩次無所謂,天長日久,頻繁的死機和重啟動,對硬碟乃至電腦的各個配件的衝擊積累起來是相當有害的;而且頻繁死機容易造成人的心理急躁,可能會在電腦重新啟動完成前就賭氣關機,也就是出現第一種類型的致命故障的可能性。 還有就是各種各樣不退出視窗程式就隨手關機、長期不整理硬碟和不運行磁碟掃描程式(在一些公用的電腦最常見)等等的不良習慣,都可能會埋下硬碟毀滅的根源。
    ★建議的措施:這些都是基本的東西,注意改變使用習慣就是,比如在線防殺毒軟體,掛一個即可,可以定期變換其他的,但同時後台運行的不適宜太多。其他標準正確的操作在很多經驗文章中都有提及,此處不多說了。
  4. 其他各類非常規錯誤比如數據線插反、劣質的電源導致的損壞、板卡的短路等等,在各類報刊網站有很多案例,此處不一一列舉了,自己注意就是。
    總結:
上面所說的硬碟大敵,不一定是如此操作就馬上出現故障,但是存在相當高的損壞機率你今天還玩遊戲上網好好的,隨手關機後,明天沒有任何提示,系統找不到硬碟了。
請大家對照自己的做法,注意改進,維護硬碟用臨時抱佛腳、出了問題再想辦法的態度是很危險的,除非你的運氣永遠那麼好。
3065-Office XP 30天的限制
用記事本將已下資料存成 *.REG 並執行,即可破解 30天的限制...
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\Registration
\{92110404-6000-11D3-8CFE-0050048383C9}]
"ProductID"="54185-640-0000025-17856"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
\Uninstall\{92110404-6000-11D3-8CFE-0050048383C9}]
"ProductID"="54185-640-0000025-17856"
以上破解法須在安裝時打入序號 "FM9FY-TMF7Q-KCKCT-V9T29-TBBBG" 才能成功。
3066-破解右鍵封鎖
  1. 有些網站是不可以按右鍵的,現在我教你破解它吧!
  2. 在那個網頁按右鍵
  3. 出現了alert後不要按確定,在其他的地方再按右鍵不放
    不要放開右鍵,只要按Enter來確定那個alert
  4. 按了Enter確定後才放開右鍵,看看有什麼事
    想試的話現在試一試吧!
3067-新接龍包贏術
  1. 首先開始一局牌局
  2. 同時按下鍵盤 Ctrl+Shift+F10 會出現一個視窗,並按下視窗中的『異常終止』鈕
  3. 只要在底下任何一張牌上按滑鼠左鍵兩下,牌局即可結束,你便贏了
3068-傷心小棧看到電腦的牌底
  1. 按<開始>鍵 -> 尋找-> 檔案或資料夾,尋找登錄編輯器『Regedit』找到了之後,直接在檔案上按滑鼠左鍵二下,開啟登錄編輯器
  2. 依序開啟資料夾,『HKEY_CURRENT_USER』-> 『Software』-> 『Microsoft』-> 『Windows』-> 『CurrentVersion』-> 『Applets』-> 最後開啟『Hearts』這個資料夾
  3. 開啟登錄編輯器功能表中的『編輯』->『新增』->『字串值』後將字串值名稱命名為『zb』
  4. 再開啟登錄編輯器功能表中的『編輯』->『修改』,會出現『編輯字串』的視窗,將『數值資料』設定為『42』後,按下確定按鈕並離開登錄編輯器
  5. 進入傷心小棧後,同時按下『Ctrl』+『Shift』+『Alt』三鍵後再按下『F12』,這時候你就可以看到所有對家的牌底了
3069-移除 Windows Messenger
  • 先用 Wordpad 打開 X:\WINDOWS\inf 下的 sysoc.inf 檔案
    X=(XP所在的磁碟區)
  • 將內容〔msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,hide,7〕
    更改為〔msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,7〕
  • 存檔及退出
  • 然後在〔控制台〕→〔新增或移除程式〕→〔新增/移除 Windows 元件〕 →不選〔Windows Messenger〕→〔下→步〕→〔完成〕後便成功移除
3070-關閉自動重新啟動功能
當 Windows XP 遇到嚴重問題時便會突然重新開機,按以下更改可以取消此功能
  • 在〔開始〕→〔執行〕→鍵入〔regedit〕→選〔HKEY_LOCAL_MACHINE〕→〔SYSTEM〕
    →〔CurrentControlSet〕→〔Control〕→〔CrashControl〕
  • →將〔AutoReboot〕dword 值更改為〔0〕重新開機生效
3071-找回剪貼簿檢視工具
Windows XP 還保留了這個剪貼簿檢視工具功能
  • 可在〔開始〕→〔執行〕→鍵入〔clipbrd〕按回車鍵便可
  • 另可在 \Windows\System32 目錄下複製〔clipbrd.exe〕的檔案,然後在桌面
    右點鼠標選〔貼上捷徑〕這樣桌面便增加了一個〔剪貼簿檢視工具〕的捷徑
3072-移除共用分享及用戶文件夾
除正常〔我的文件〕及〔共用文件夾〕外,每個用戶都會有一個獨立的文件夾, 如下設定則只會保留我的文件夾,其餘的不會顯示出來
  • 在〔開始〕→〔執行〕→鍵入〔regedit〕→選〔HKEY_LOCAL_MACHINE〕→〔SOFTWARE〕
    →〔Microsoft〕→〔Windows〕→〔CurrentVersion〕→〔Explorer〕→〔MyComputer〕
    →〔NameSpace〕→在〔DelegateFolders〕下刪除〔{59031a47-3f72-44a7-89c5-5595fe6b30ee}〕機碼
3073-停用〔系統還原〕程式
對進階使用者這程式幫助不大,佔系統資源,可按下辦法關閉停用
鼠標右點〔我的電腦〕→選〔內容〕→〔系統還原〕→選〔關閉所有磁碟的系統還原〕
3074-停用錯誤通知及報告
  • 〔開始〕→〔執行〕→鍵入〔gpedit.msc〕打開〔本機管理原則〕→〔電腦設定〕→〔系統管理範本〕→〔System〕 →〔Error Report〕
  • 停用錯誤通知在〔Display Error Notification〕選已停用
  • 停用錯誤報告在〔Report Errors〕選已停用
  • 僅適用用 Windows XP 商業版版本
3075-停用系統休眠
使用〔休眠〕會佔用很大的硬盤空間在〔控制台〕→〔電源選項〕→不選〔啟用休眠〕
3076-開啟光盤機的 DMA 管理
開啟 DMA 管理可使光盤機運作較流暢
  • 在〔控制台〕→〔系統〕→〔系統內容〕→〔硬體〕→〔裝置管理員〕
  • 〔IDE ATA/ATAPI controllers〕→打開〔Primary IDE Channel〕及〔Secondary IDE Channel〕
  • 在〔進階設定〕→〔轉送模式〕中選〔使用DMA(如果可以的話)〕
3077-開啟或關閉防火牆
  • 〔控制台〕→〔網絡連線〕→右點 ISP 連線的圖示選〔內容〕→〔進階〕
  • 在〔網際網路連線防火牆〕下選用或取消
3078-在 Windows Media Player 8 選擇左右聲度
有時在播放卡拉OK或雙語的 VCD 時需要控制左右聲度來選擇
  • 打開 Windows Media Player 8 的完整模式在〔檢視〕→〔現正播放工具〕
  • 選〔圖型等化器〕後在畫面下便出現音質控制版面,在〔平衡〕選左或右便可
3079-使用 Windows Media Player 8 播放 DVD 盤
  • 〔開始〕→〔執行〕→鍵入〔DVDPlay〕便會出現 Windows Media Player
  • 按播放 VCD 型式操作便可播放 DVD 了,當然你一定要有 DVDRom 裝置
  • 如果還出現問題,在〔開始〕→〔執行〕→鍵入〔regedit〕→選〔HKEY_CURRENT_USER〕
    →〔Software〕→〔Microsoft〕→〔MediaPlayer〕→〔Player〕→在〔Settings〕右邊窗口
    增加一個字串值〔EnableDVDUI〕數值資料為〔yes〕
3080- 取消 Windows 圖片及傳真檢視器的預設值
”我的電腦” 和 ”檔案總管” 看圖時均以Windows 圖片及傳真檢視器為預設值 , 如需取消此項預設值,可按下修改
  • 〔開始〕→〔執行〕→鍵入〔regedit〕→ 選〔HKEY_LOCAL_MACHINE〕→〔SOFTWARE〕→〔Classes〕→〔CLSID〕 →〔{e84fda7c-1d6a-45f6-b725-cb260c236066}〕→〔shellex}
  • 刪除〔MayChangeDefaultMenu〕的機碼便可
3081-安裝 Netmeeting
  • 其實當安裝 Windows XP 時已Netmeeting 已 →拼安裝在下列目錄:X=(XP所在的磁碟區)
    X:\Program Files\Netmeeting
  • 如需快速安裝 Netmeeting:
    在〔開始〕→〔執行〕→鍵入〔conf〕, 然按指示執行安裝程序便可
3082-〔遠端桌面〕連線設定
Win XP Professional 版本中提供〔遠端桌面〕的功能,允許使用者由一部 Windows XP 的電腦(Home 或 Professional 版本皆可),透過網際網路連線到其他windows XP professional 的電腦上(以下簡稱"他電腦")作業,以便存取執行他電腦上所有資料和應用程式。請依照以下步驟完成〔遠端桌面〕兩端電腦的設定:
  • 主控機的設定:
    1. 主控機的作業系統必須為Windows XP Professional版本
    2. 只有具有Local Administrator 權限的使用者才可以動/設定〔遠端桌面〕用戶
    3. 在桌面上的〔我的電腦〕按滑鼠右鍵後,點選[內容] →〔遠端〕後,畫面如下:
    4. 勾選〔允許使用者遠端連線到這一部電腦〕
    5. 請點〔選取遠端使用者〕以設定被允許連線用戶的資料
  • 遠端連線用戶端:
    1. 請點選〔開始〕→〔所有程式〕→〔附屬應用程式〕→〔通訊〕→〔遠端桌面連線〕
    2. 我們可以先點選〔選項(O)>>〕以便做進階的連線的設定
    3. 在電腦名稱中輸入電腦名稱 或 IP 位置,按下〔連線〕以進行連線工作
  • 注意事項:
    1. 連線使用者必須設定密碼
    2. 連線使用者必須隸屬於Local Administrator 群組
    3. 在Win XP Professional 中只允許存在一位[使用者連線],當我們使用遠端連線時,
    它會詢問我們是否登出其他使用者連線或本機作業。
    (使用者連線包含本機端作業及遠端桌面連線)
    4. 若網際網路連線需透過防火牆,請先聯絡網路管理員,
    先行打開 RDP Protocal (port:3389) 的存取設定
3083-停止〔磁碟空間不足〕的通知
當磁碟機的容量少於 200MB 時 Windows XP 便會發出〔磁碟空間不足〕的通知, 如需停止此功能,可按下程序更改登錄檔
  • 在〔開始〕→〔執行〕→鍵入〔Regedit〕→〔HKEY_LOCAL_MACHINE〕→〔Software〕→〔Microsoft〕→〔Windows〕→〔CurrentVersion〕→在〔Policies〕下增加一個機碼名〔Explorer〕(如果已有便不用增加)→在〔Explorer〕增加一個 DWORD 值〔NoLowDiskSpaceChecks〕
  • 數值資料為〔1〕= 停止通知,值資料為〔0〕= 預設值啟動通知
3084- 將雙擊鼠標的功能以單擊取締
  • 〔檔案總管〕→〔工具〕→〔資料夾選項〕→在〔一般〕→〔按一下項目方式〕選〔按一下開始項目〕
  • 按〔確定〕後所有雙擊鼠標的功能按單擊鼠標便可執行

2013年10月23日 星期三

VirtualBox- error: extension pack directory: VERR_ALREADY_EXISTS

VirtualBox- error: extension pack directory: VERR_ALREADY_EXISTS

解決方法
    1、關閉所有的VirtualBox 虛擬機
    2、在Windows命令提示字元下執行vboxmanage extpack cleanup。操作如下::
        C:\Users\robinson.cheng>cd \
        C:\>cd "Program Files"
        C:\Program Files>cd Oracle
        C:\Program Files\Oracle>cd VirtualBox
        C:\Program Files\Oracle\VirtualBox>vboxmanage extpack cleanup
        Successfully performed extension pack cleanup


參考:http://www.commentcamarche.net/faq/33763-virtualbox-error-extension-pack-directory-verr-already-exists#top

2013年8月20日 星期二

C# 如何使用XSD (XML Schema Definition)驗證XML內容

from http://www.dotblogs.com.tw/ken12/archive/2012/04/10/71392.aspx


STEP 1. 從應用程式執行 "Visual Studio 命令提示字元 (2010)"
此步驟或許需系統管理員身份執行, 以確保權限足夠.



STEP 2. 建立XML檔
建立待轉換的XML檔內容, 檔名為Query.xml, 存至C:\
<?xml version="1.0" encoding="UTF-8" ?>
<Root>
    <Data>
        <MerchantID></MerchantID>
        <MerchantTradeNo></MerchantTradeNo>
        <QueryDate></QueryDate>
    </Data>
</Root>



STEP 3. 將XML檔轉換成XSD檔
執行以下指令, 假設XML檔名為Query.xml
xsd C:\Query.xml /O:C:\
將xml檔轉換成xsd檔, 並儲存在C:\.

XSD參數運用請參考:
http://msdn.microsoft.com/zh-tw/library/x6c1kb0s(v=VS.80).aspx



STEP 4. 修改XSD檔, 以符合格式驗證要求
產生的Query.xsd檔內容如下.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Root" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="Root" msdata:IsDataSet="true" msdata:Locale="en-US">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Data">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="MerchantID" type="xs:string" minOccurs="0" />
              <xs:element name="MerchantTradeNo" type="xs:string" minOccurs="0" />
              <xs:element name="QueryDate" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>



STEP 7. 透過XDocument驗證XML內容
使用XDocument需要加入以下的Namespace.
using System.Xml.Schema;
using System.Xml.Linq;

透過try catch可確認是否驗證失敗
try
{
    XDocument xDoc = XDocument.Parse("需驗證的XMLData String");
    XmlSchemaSet schemas = new XmlSchemaSet();
    schemas.Add(string.Empty, "xsd位置");
    xDoc.Validate(schemas, null);
}
catch (Exception)
{
    return false;
}
null的部份可以改為使用Lambda Expression取得, 如下.
(o, e) =>{
    Console.WriteLine(e.Message);
}

2013年8月3日 星期六

解決 win7 無法輸入中文的問題


莫名其妙不能輸入中文,好像是防毒檔太兇了

以下是解決win7 無法輸入問題的方法

解決方法:
1.點選開始功能表,在「開始搜尋」的輸入框中輸入"regedit"並執行
2.找到 "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
3.此行是在開機的時候應該自動執行的程式清單,右邊的欄位應該要有ctfmon字串值,如果消失了代表問題就出在這裡
4.修正辦法為:在右邊欄位點選右鍵新增字串值"Ctfmon",然後再修改這個字串值的數值資料為 "C:\Windows\system32\ctfmon.exe" 完成後關閉。
5.接下來重新開機、登出再登入,或者直接手動執行 "C:\Windows\system32\ctfmon.exe" 以後開機語言列就會正常出現了。



from http://www.wretch.cc/blog/foxcoolaaa/12497152

2013年7月1日 星期一

[Chrome] YouTube Options:移除YouTube 腦人的廣告

[Chrome] YouTube Options:移除YouTube 腦人的廣告

from http://www.freegroup.org/2011/01/youtube-options-disable-annotations-in-video-ads/



雖然Adblock 也可以檔廣告,但是有些Youtube,很難設定過濾條件........


直接使用YouTube Options 來阻擋廣告,比較方便


安裝網址
https://chrome.google.com/webstore/detail/youtube-options.......



他還可以把評分、留言、等等元素通通檔光光,但是我不要啊!!!!!我只想檔廣告!!!!!

所以就稍微設定一下就行摟

以下有設定參數,和使用方式


*點選左邊Settings

*然後在Profile1的右邊,有copy or edit,貼上以下的設定參數即可

{"AutoPlay":"default","AutoPlayEmbed":"false","ChangeResView":"false","Cinemize":"false","Cleanup":"false","Comments":"false","ControlsTheme":"default","Description":"false","ExpBody":"false","ExpDescription":"false","Favicon":"true","Filtering":"true","Footer":"false","Frame":"false","Guide":"false","H3d":"true","H3gp":"false","Header":"false","Headline":"false","Hflv":"false","Hide":"false","Hmp4":"false","Hwebm":"false","IgnoreTime":"true","InVideo":"showcc","KeepWatching":"false","Keys":"false","Loop":"false","MoPlay":"false","Mood":"default","Playlist":"false","Popout":"false","Popup":"true","RSS":"false","SSL":"false","Scroll":"default","ScrollTop":"false","SetLink":"default","SetRes":"default","SetView":"default","Sidebar":"false","Sites":"false","Swatch":"#222222","Volume":"default","Wads":"false","Wmode":"false","daily":"false","dump":"false","escapist":"false","eyoutube":"true","fear":"false","funny":"false","g4tv":"false","hulu":"false","meta":"false","others":"false","twitter":"false","vimeo":"false","youtube":"true","youtubeChannel":"true","youtubeHome":"true","youtubeUser":"true"}



2013年6月6日 星期四

MS SQL 指令、語法與管理

from http://itgroup.blueshop.com.tw/towns/hc?n=wodvew&i=385


  很多時候,都需要使用到指令、語法來管理MS SQL資料庫,但通常都是記不住的,寫下來便於使用,至於管理,towns是很遜的,很多時候都是土法鍊鋼,一點一點做 ^^"
 
1. 指令管理資料庫關閉與啟動
net stop mssqlserver /y  <==使用net 指令停止mssqlserver服務,並同時同意停止其他相關服務
net start sqlserveragent <==使用net 指令啟動sqlserveragent服務,系統會自動將mssqlserver 啟動
net stop 及 start 主要是用來停止與啟動系統中的服務,所有的服務都可以透過這樣的方式來管理,另一個towns常用的是IIS的管理。
注意:後面加的服務名稱並不是在“服務”中的“顯示名稱”,而是“服務名稱”

2. 列出abc所有的table
sp_tables @table_name = '%',@table_owner = 'dbo',@table_qualifier = 'abc'
sp_tables @TABLE_TYPE= "'table'" <== 列出所有table 名稱
sp_tables @table_name = '%' <== 列出所有table及veiw 名稱
 

3. 選擇所有欄位從 abcd 資料表中找出 cdef 欄,並找有towns完全相同的字串(單一條件絕對搜尋,顯示所有欄位)
select  *  from abcd where cdef = 'towns'

選擇cdef,aaa欄位從 abcd 資料表中找出 cdef 欄,並找有towns完全相同的字串(單一條件絕對搜尋,只顯示兩欄位)
select cdef,aaa from abcd where cdef ='towns'

4. 查尋資料庫版本
select @@version

5. 刪除特定資料表
delete from abc <==刪除abc資料表中的資料
delete
FROM      abc
WHERE     (abcde > '2013-03-07 15:37:00')
and abcde < '2013-03-07 15:57:00'
刪除abc資料表中 欄位abcde時間為 2013-03-07 15:37:00 ~ 15:57:00間的資料

6. MSSQL 2005 資料庫 <==> MSSQL 2005 Express 資料庫
 MSSQL 2005 Express ==> MSSQL 2005。直接附加即可
 MSSQL 2005 ==> MSSQL 2005 Express
 1. 由MSSQL 2005 匯出資料庫結構。在指定資料庫按滑鼠右鍵==>工作==>產生指令碼==>下一步==>確認是否為選擇的資料庫,下一步==>在選擇指令碼選項中,不需做特別修改,下一步==>選擇物件類型,僅選擇資料表檢視,下一步==>選擇資料表,全選,下一步==>選擇檢視,全選,下一步==>輸出選項,這裡依需求選擇,下一步(towns多選寫指令碼至檔案),下一步==>設定檔名及路徑
,存檔,下一步==>完成
 註:對該資料庫需要有存取權限,如果只有讀取權限,匯出時會出現錯誤
 2. 將結構檔匯入  MSSQL 2005 Express。開啟Managemant==>檔案==>開啟==>檔案==>選擇剛剛匯出的檔案==>這時系統會要求打入帳密(確認連結的資料庫是否正確,帳密需有寫入權限)==>此時結構語法已載入==>點入語法,並確認要載入的資料庫是否正確(系統會預設載入為master)==>執行==>結構載入
 3. 將資料匯入 MSSQL 2005 Express。
  3.1.連結資料庫匯入
    開啟Managemant==>選擇資料來源(確認資料來源及登入資料,一般towns會使用ReadOnly 帳號,以避免錯誤)==>選擇目的地(確認目的地及登入資料,這裡需有寫入權限)==>指定資料表複製或查詢,towns通常是要複製,選從一或多個資料表或檢視複製資料,下一步==>全選所有的資料表及檢示,編輯,選刪除資料表中的資料列,並取消檢視,下一步==>立即執行==>確認工作==>完成
  3.2.可用匯出檔案方式,將資料再匯入。
    開啟Managemant==>選擇資料來源(確認資料來源及登入資料,一般towns會使用ReadOnly 帳號,以避免錯誤)==>選擇目的地(選擇excel)==>選擇匯出路徑並打入檔案名稱==>地區設定及字碼頁需依資料庫編碼決定 ==>從一或多個資料表或檢視複製資料 ==>下一步(這裡towns使用預設值)
注意事項:做匯出匯入的動作是非常危險的,方向一錯資料就不見了,建議在執行時,該備份的一定要先備份,不要嫌麻煩
技術指導:藍色小舖資深工程師 IZAN
補充說明:最近一次的測試,是可以直接使用MSSQL 2005 ent 備份出來的檔案,直接還原到 MSSQL 2005 Express版 中SQL Server Management Studio Express為 SP3版
 

7. MS SQL 2005 TCP/IP協定啟用
 到開始Microsoft SQL 2005==>組態工具==>進入 SQL Server組態管理員(有些會出現英文)==>選擇 SQL Server 2005 網路組態==> 這裡可能會出現SQL及SQLEXPRESS,看哪個要開就開哪個 ==>選擇TCP/IP ==>IP位址==>確認IPALL中TCP通訊埠,是否有開起埠號(如預設值1433),在開啟後,要重新啟動SQL Server的服務,並使用netstat -an來檢查是否有開啟1433 port

8. 加快資料庫讀取速度,利用先將資料庫放到記憶體中,加快讀取速度
相關資料:http://blog.miniasp.com/post/2009/11/SQL-Server-Performance-Tuning-Caching-commonly-used-tables.aspx(感謝will大無私分享)

9. 在MSSQL資料庫轉移時,常常會遇到的問題
 9.1. 資料庫使用還原或附加後,因為使用者不存在而造成網站無法正確讀取資料庫( 如圖nouser),此時需刪除並重建使用者
 9.2. 要刪除使用者,重建時,發生使用者無法刪除,導致無法重建該使用者。常見原因有
  9.2.1. 在該資料庫==>安全性==>結構描述中,有該使用者的名稱
  處理方式:到結構描述中,將該使用者刪除,如果無法刪除,就與下面兩點有關
  9.2.2. 在該資料庫==>資料表==>結構描述中,有該使用者的名稱(如圖table
  9.2.3. 在該資料庫==>檢示==>結構描述中,有該使用者的名稱(如圖view

  2000處理方式:手動將結構描述改為dbo
  開啟SQL Server Enterprice Manager==>選擇該資料庫==>選擇資料表,其結構
  描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計資料表==>按左上方“資料表與索引屬
  性”(如圖property)==>變更擁有者為dbo(如圖property-1),存檔==>擁有者就改為dbo,就可
  刪除帳號即可

  2005處理方式:手動將結構描述改為dbo
  開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
  描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
  為dbo(如圖2005property),存檔==>擁有者就改為dbo,就可刪除帳號即可

  2008處理方式:手動將結構描述改為dbo
  開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
  描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
  為dbo(如圖2008property),存檔==>擁有者就改為dbo,就可刪除帳號即可
  註:SQL Server Management Studio 預設並不開啟屬性視窗,按F4就可開啟

技術指導:藍色小舖資深工程師 IZAN
  補充:使用者擁有預存程序(如圖storedprocedure2),這個也會造成無法刪除使用者的問題,這時必須重建預設程序才能解決該問題。在預存程序上按滑鼠右鍵==>編寫預存程序指令碼為==>CREATE至==>產生指令碼,再將指令碼中的擁有者改為dbo,刪除該程序後重建這個預存程序。
技術指導:tina

10. 當同台主機安裝了多個MSSQL(如有有安裝2000、2005 Express、2005等)要注意
 10.1.在進入SQL時,要選擇正確的版本
 10.2.在新增帳號時,請使用2005來新增及指定資料庫,否則會發生帳號無法正常讀取的問題

11. 從 abcd 資料表中cdef 欄,找出有張及張*文的字串(兩條件模糊搜尋)
select * from abcd where (cdef LIKE '張%') OR (cdef LIKE '張%文')

12. 查詢T-SQL語法
 sp_help

13. 列出資料庫清單,列出後再使用右鍵儲存結果為單一 CSV檔

 13.1. 列出資料庫所有狀態
sp_helpdb

 13.2. 僅列出資料庫名稱
USE master
SELECT dbid, DB_NAME(dbid) AS DB_NAME
FROM sysdatabases
ORDER BY dbid

 資料來源:blues及tina口述

14. 查看每一個SQL語法的使用記錄
使用SQL Server Profiler 中新增追蹤,可以看到資料庫正在存取的情形
read ==>讀取硬碟資料筆數
write ==>寫入硬碟資料筆數
duration ==>經過時間,時間太長就表示讀取/寫入硬碟資料時很長,這是造成資料庫回應緩慢的原因(1000=1秒)
技術指導:藍色小舖資深工程師 IZAN

15. access 2007與資料庫連結(圖解)
     1. 匯入mssql 資料:外部資料==>其他==>ODBC資料庫(如圖mdb1.jpg
     2. 選擇匯入方式,第一項為將資料cp一份到電腦中,第二項為連結同步,取得最新資料(如圖mdb2.jpg
     3. 選擇資料來源,請新增一個 DSN資料來源(如圖mdb3.jpg
     4. 選擇 SQL server 下一步(如圖mdb4.jpg),將DSN指定存放位置及設定名稱 下一步(如圖mdb5.jpg
     5. 與伺服器建立連結,打入伺服器名稱或IP(如圖mdb6.jpg
     6. 選擇連入帳戶,選擇第二項者,需打入帳號及密碼(如圖mdb7.jpg
     7. 指定取得資料庫,勾選變更預設資料庫即可選擇(如圖mdb8.jpg
     8. 這一塊使用預設值,不需變更(如圖mdb9.jpg),summary(如圖mdb10.jpg),完成後需打入帳密登入資料庫(如圖mdb11.jpg
     9. 選擇要匯入的 table(如圖mdb12.jpg),完成匯入
補充:關於access 2010新檔案格式問題
當使用access 2010匯出資料並存檔時,檔案格式為 *.accdb,如果要將檔案存為 *.mdb,需使用 儲存並發佈 的方式,這時就可以將檔案另存成 mdb格式了

 16. 關於資料庫 ldf 檔非常大,但卻無法壓縮的問題
towns管理的伺服器中,有些資料庫的Log檔,實在是大的離譜,但在執行備份壓縮後,卻不見Log檔變小(如圖mssqlLog2.jpg),雖然說可用空間明顯加大(如圖mssqlLog.jpg),但檔案事實上是沒變小的,目前towns 將自動壓縮功能啟用(如圖mssqlLog3.jpg)並執行排程備份壓縮,是否能成功將 ldf 檔變小,今天晚上就可以知道了。
很可惜,ldf 檔並沒有變小,看來在動作中的資料庫,要壓縮是個問題呢
 16.1.經過IZAN指導,要連續兩次壓縮,才能將ldf 檔變小,而且必需使用維護計畫來執行才能有效壓縮,可以先做一次手動備份LDF檔,再用計畫做備份壓縮,也可以有效處理
 16.2.不需要設定自動壓縮功能(如圖mssqlLog3.jpg),也能有效壓縮
技術指導:藍色小舖資深工程師 IZAN
相關資料:http://ithelp.ithome.com.tw/question/10028911
補充1:LDF 檔有多大,就需要給他一個多大的空間來備份,如LDF約10GB,硬碟空間就要 > 10GB
補充2:使用T-SQL指令處理
T-SQL語法如下:
1. 截斷交易記錄檔:將資料庫「復原模式」改為「簡單」,即可即斷交易記檔
    T-SQL:ALTER DATABASE 資料庫名稱 SET RECOVERY SIMPLE

2. T-SQL:SP_HELPDB 資料庫名稱  此時可查得 ldf 檔對應到的邏輯名稱(name),一般會是"資料庫名稱_log",但若之前是從備份資料還原到不同名稱的資料庫,邏輯名稱(name)就可能不一樣。

壓縮交易記錄檔
3. 執行以下指令後,應該可以發現ldf的檔案大小縮小成2MB
    T-SQL:use 資料庫名稱 GO DBCC SHRINKFILE('ldf的邏輯名稱',2)

4. 將資料庫「復原模式」改回「完整」
    T-SQL:  ALTER DATABASE 資料庫名稱 SET RECOVERY FULL
資料來源:jiankai 大筆述

17. 從 abcd 資料表中所有的欄位找出 cdef 欄,並找有 1 或 2 字串的資料(同時搜尋兩條件)
SELECT * FROM  abcd  WHERE (cdef = '1') OR (cdef = '2')

18. 從 abcd 資料表中所有的欄位找出 cdef 欄,去除有 1 或 2 字串的資料(同時去除兩條件)
SELECT * FROM  abcd  WHERE not(cdef = '1'  OR  cdef = '2')
SELECT * FROM  abcd where cdef not in ('1','2')
資料來源:IZAN 及 TINA

19. 從 abcd 資料表中所有的欄位找出 cdef 欄為空值的資料
SELECT * FROM abcd WHERE (cdef = '')

20. 統計abcd 資料表筆數
select count(*) from abcd
資料來源:Blues

21. 從abcd 資料表中列出前 N 筆 cdef 欄 資料(僅顯示cdef 欄資料)
select top ( N ) cdef from abcd
從abcd 資料表中列出前 N 筆資料
select top ( N ) * from abcd
資料來源:Blues

22. 從abcd 資料表中抓取 cdef 欄及ghij 資料
select cdef,ghij from abcd 

23. 索引片段過多會導致資料庫讀取該table效能變差
查看索引片段情形與頁面使用飽和度
進入資料庫==>選定特定資料庫==>資料表==>選定特定資料表==>索引==>點開看該叢集==>滑鼠右鍵點屬性==>選擇片段==>這裡就可以看到片段總計及頁面飽和度

24. T-SQL指令變更資料型別
ALTER TABLE abc
ALTER COLUMN abcuid Varchar (20) NOT NULL;
變更資料表 abc中的資料欄 abcuid 的欄位長度為 20
技術提供:blues

25. 清空特定資料庫語法。這個語法會特定資料庫中的資料完全清除
TRUNCATE TABLE  table_name

26. MS-SQL 語法教學站台
http://www.1keydata.com/tw/sql/sql.html

27. MS-SQL 2000 問題
當使用windws 2003 server 安裝 MS-SQL 2000,SQL 版本為 SP2或更舊,這時會造成 TCP/IP 通訊協定無法開啟的問題,這時請將SQL 2000更新到 SP4版,這個問題就會解決,詳細資料可見事件檢視器==>應用程式

28. MS-SQL 2008 無法直接編輯資料的修改方式
2k8基於安全性考量,management studio預設的編輯功能為唯讀,導致無法編輯欄位內容、欄位格式等等,需到工具 ==>選項 ==>Desigeners ==>資料表和資料庫設計工具 ==>取消“防止存儲需要資料表重建的變更”,這樣就可以編輯了
資料來源:小舖工程師 jainkai

29. MS-SQL 2000的查詢頁面
ms-sql 2000中並沒有新增查詢的項目,以提供語法寫入,需要到 工具 ==> sql query analyzer 才會開啟語法寫入頁面
註:要指定資料庫

30. 帳號權限管理
 30.1. 限制讀取指定資料表(table)
建立帳號test ==>在指定資料庫(abcd),安全性中加入使用者test ==>但不提供“資料庫角色成員資格”==>到指定table(tbAabc)上按滑鼠右鍵==>屬性 ==>權限 ==>點下 搜尋 ==>瀏覽 ==>勾選指定帳號(test)==>到下表中勾選test的權限,這裡依需求勾選,towns只勾授與“選取”。設定完成後,test帳號就只能看到這個table 並對這個table執行選取的指令了
刪除方式:直接於指定資料庫安全性中刪除該使用者

31. 主機名稱與MSSQL問題
當我們在安裝完MSSQL後再變更主機名稱,會發生維護計畫無法使用的問題,因為MSSQL會抓取舊主機名稱,造成執行權限不正確,導致維護計畫無法使用,這個問題可以在事件檢視器中看到。
處理方式:打入新主機名稱或使用IP連接資料庫

32. 建立資料庫
與ACCESS、Excel表很類似,不過通常需要加上主索引
主索引 自行設定名稱 類型 bigint,自動編號 請將識別規格改為 是
資料行 自行設定名稱 類型 nchar,並設定字數

33. 單一table大小可以在該table上面按滑鼠右鍵==>屬性==>儲存體,這裡就可以看到他使用的索引空間大小,資料空間大小

34. 取出大於等於1000的數值資料
select * from abcd where defg >= 1000
註:defg欄位必需為數值資料

35. MSSQL 2008 安裝失敗
系統:windows 2008 R2 std sp1
MSSQL:MSSQL 2008 R2 ent
在安裝過程中出現了“效能計數器登入區一致性:失敗”
點選失敗後,會請我們到指定網站參考微軟的說明
連到官網後,看了一下資料,說真的以towns的資質,實在是看不懂這個文章在寫什麼,更不知道怎麼下手處理問題,但towns有在伺服器廠商安裝系統時,有發現他們使用的是英文版OS,這個也造成了系統的區域資料異常。towns 試著到 控制台==>時鐘、語言和區域中查看,發覺在 系統管理==>非Unicode程式的語言,這裡寫的是“英文(美國)”,這個資訊顯然是錯誤的,towns 將他改為“中文(繁體、台灣)後,就可以正常安裝mssql了,還好這樣就可以了,官網資料實在是太難懂了= =
發覺這個問題,是因為在cmd模式下,會出現亂碼

36. MSSQL 語法,選取時間格式
方法一
SELECT    *
FROM        abc
WHERE DATEPART(yy, d_date) = 2010 AND DATEPART(mm, d_date) = 12 AND DATEPART(dd, d_date) = 31
方法二(選取時間區間)
SELECT *
FROM abc
WHERE d_date BETWEEN '2010-12-31 00:00:00' AND '2010-12-31 23:59:59'

資料來源:blues大師口述
方法三(選取時間區間)
SELECT *
FROM abc
WHERE d_date < '2010-12-31 00:00:00'

37. 關於LDF檔異常長大的原因
使用索引重建,會造成LDF檔變大,如果有需要重建,建議先看看LDF檔是否很大了,如果很大,要先壓縮後再執行

38. MS-SQL 2008 使用備維護計劃排定自動備份發生失敗問題
towns架設的一台SQL-server發生了自動備份失敗問題,系統會提示查看記錄檔,因為towns的計劃中,有多個子計劃,所以要開記錄檔,要到Agent中查看,錯誤圖片(sqlbkerr.jpg
查看記錄檔:到SQL Server Agent ==> 作業 ==> 到指定的作業中按滑鼠右鍵 ==> 點 檢視記錄
在記錄中看到以下錯誤,這個問題應該是安裝時少裝了Integration Services造成

39. 更新統計資料及更新使用方式計數器
在SQL 2000中容易發生因為資料庫轉移或昇級後,資料庫讀取延遲的問題,我們需要更新更新統計資料及更新使用方式計數器
更新統計資料語法
USE [資料庫];
GO
EXEC sp_updatestats
更新使用方式計數器
USE  [資料庫]
DBCC UPDATEUSAGE (0);
GO
資料來源:kelly大師

40. MS-SQL 混合驗證模式(2005)
在安裝MSSQL 的過程中,可以選SQL server驗證或windows驗證模式,如果選了windows驗證模式,他就不需要打入sa的密碼,這也會造成之後使用SQL Server Management Studio,無法使用 SQL server驗證 模式登入,就算是建了一個帳號,也無法登入。如果要開放 SQL server驗證 登入,有兩個步驟
 1. 使用 SQL Server Management Studio 登入後,在 物件總管,伺服器名稱上按滑鼠右鍵 ==> 屬性 ==> 安全性 ==> 伺服器驗證,點選 SQL server驗證及windows驗證模式,完成後重新啟動 SQL
 2. 使用 ALTER LOGIN 語法,啟用sa 帳號,在password後面請自行打入sa 密碼
ALTER LOGIN sa ENABLE ;
    GO
    ALTER LOGIN sa WITH PASSWORD = '' ;
    GO
完成上述兩步驟後,就可以使用 SQL server驗證 模式登入了
資料來源:http://missice.pixnet.net/blog/post/24136664-ms-sql-server-%E8%AE%8A%E6%9B%B4%E4%BC%BA%E6%9C%8D%E5%99%A8%E9%A9%97%E8%AD%89%E6%A8%A1%E5%BC%8F missice大的blog
註:towns在設時,沒有注意到sa 帳號是否存在,如果存在,第二步驟是否可以用滑鼠啟用sa 帳號就達成了呢?^^ 如果有朋友遇到,再試一下結果,可以的話也告訴towns哦!^^

41. 資料備份還原問題
towns 習慣使用備份還原方式來轉移資料庫,好處是資料完整、結構完整。缺點是 1.不同版本的資料庫還原會出問題(如2k8還原到2k3或2k8 R2還原到 2k8),2. 帳號會同時還原進來,需刪除重建。
問題一處理方式:
  1. 將結構及資料同時匯出為語法(以2k8 R2為例)
開啟SQL Server Management ==> 指定資料庫 按滑鼠右鍵 ==> 工作 ==> 產生指令碼 ==> 下一步 ==>  這裡可以依需求選擇 完整指令碼或選取特定資料庫物件指令碼  ==> towns 只需要資料表 ==> 輸出類型 選將指令碼儲存到特定位置,儲存至檔案,單一檔案,點選進階,將 要編寫的指令類型選擇,選擇結構描述及資料(這個選擇有三種,依需求選,也可以選擇單一資料表),指定檔名及存放位置 ==> 下一步 ==> 下一步 ,就會開始編寫指令碼了。產生的指令碼,就可以在多數MSSQL版本中使用
註1:在2k8中,點選進階,將 編寫資料指令碼 設為 True
  2. 請參考第9點

42. 在執行ldf 檔備份壓縮後,出現了 [資料庫名稱](正在還原...)的情形
towns在一次執行ldf 檔備份壓縮後,出現了 [資料庫名稱](正在還原...)的情形,這時網站是無法正常讀取資料庫的,必需使用語法,讓資料庫狀態回到一般,才能正常讀取
處理方式:
使用語法
RESTORE DATABASE [資料庫名稱]
WITH RECOVERY
後,再重整資料庫,就會回到一般狀態
資料來源:德瑞克大的blog http://sharedderrick.blogspot.tw/2008/12/sql-server-restoring.html

43. MSSQL 2008 R2 資料庫 ==> MSSQL 2008 資料庫
這是41點的補充,單純說明 2k8 R2 ==> 2k8
在41點 towns 說明了將資料及結構同時匯出的方式,但這次做了這個動作,出來的sql檔有1GB之大,這會連將檔案傳到主機都成問題,而且,也不能保證能寫入資料庫,這次的方式是使用匯出匯入方式 ,直接將資料及結構產生
流程:
1. 建立一台MSSQL 2K8 R2主機,並還原資料庫
2. 於目標主機中新增指定資料庫,此時資料庫是空的
3. 使用匯入匯出方式,將新資料匯入目標主機中的指定資料庫,並新增結構。此時不要將view表一併匯入
4. 使用匯出匯入方式,將view表結構匯出
5. 到目標主機中,使用語法產生view表結構
6. 建立帳號
這樣的做法可以減少因型態不同、驗證錯誤所產生資料庫匯出匯入的問題

44. 只使用MDF檔來還原資料庫的方式
資料來源:UBLink技術團隊討論區 Kao大 回應 http://ns2.ublink.org/phpbb/viewtopic.php?t=1637
towns一字不漏的將Kao大的回應直接放上來,主要是為了避免towns修改後出現錯誤。如不適合放於此,請通知towns刪除,謝謝 ^^
當資料庫缺少了交易記錄檔時
1.在 SQL 2000 時請利用附加資料庫的方式重新Create 交易記錄檔
2.在 SQL 2005 是亦是利用附加資料庫的方式但在附加時要將對話框的交易檔路 徑刪除即可
3.若在SQL 2000無法完成附加資料庫時可利用以下步驟完成交易記錄檔建立
A.在SQL Server Enterprise Manager裏面先建立資料庫如(test)。
B.停掉資料庫伺服器。
C.將資料庫的日誌檔test_log.ldf刪除,用要恢復的資料庫mdf檔蓋掉剛才建立的資料庫資料檔案test_data.mdf。
D.啟動資料庫伺服器。這時候不能對此資料庫進行任何操作。
E.設置資料庫允許直接作業系統表。可以使用如下語句來實現。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
F.設置test為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
G.重建資料庫日誌檔
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
此時請確認無人在使用資料庫包括SQL Server Enterprise Manager
I.設置資料庫為正常狀態
sp_dboption 'test','dbo use only','false'
J.將步驟E中設置的“允許對系統目錄直接修改”一項恢復。sp_configure 'allow updates',0
go
reconfigure with override
go
J.重新啟動SQL SERVER

45. MSSQL 2k8 R2 與 SQLEXPRESS 2k8 R2 的差別
硬體及檔案限制
版本
功能名稱
SQL Enterprise
SQL Standard
SQL Express
CPU使用數系統最大值4個1個
RAM使用量系統最大值64GB1GB
資料庫檔案最大值524 PB524 PB10GB
管理工具限制
版本
功能名稱
SQL Enterprise
SQL Standard
SQL Express
管理工使用YesYesYes
SQL CMDYesYesYes
SQL Profiler(事件探查)YesYesNo
SQL Server Agent(代理工具)YesYesNo
 更詳細的資料可參考微軟官方資料

46. ActiveX 控制項錯誤(MSSQL 2008 R2)
在 管理 ==> 維護計劃 ==> 編輯指定工作,突然出現這樣的錯誤

小舖Ada大提供了一個方法,目前正在測試中
補充:
目前有得到幾種方式,都是與大家討論而來的,謝謝大大們的相挺
1. 設定 ActiveX 安裝程式服務。
這是由Ada大提供的方式,不過,不知道是towns設定錯誤還是其他原因,設完後是無效的。towns也看過其他主機的設定,都是用預設值(尚未設定)
towns的設定可參考小舖討論區
2. MSSQL中毒,需要重灌。
這個回應讓towns不知道該怎麼做呢! ^^",說不定是最好的方式 = =
3. 微軟技支
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q298725
其中提到的機碼(HKLM/Software/Microsoft/Ole/DefaultAccessPermission)在towns的系統中,並不存在,這個應該是因為towns並沒有設定DCOMcnfg utility的關係
4. 微軟討論區
http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/ceaccde6-291c-4084-8a2c-f52e28343e98/
這個方式看來與第3個方式類似,都是提到DCOMcnfg的設定問題
5. 微軟MSDN
http://msdn.microsoft.com/zh-tw/library/hh710041.aspx
這是由richardsuma大提供的資訊。這是要確認帳號的伺服器角色是否有勾選 sysadmin,towns查看後,是有勾的
6. UAC開太高了
這是D大協助查詢的,D大自己測試,似乎不是這個問題,但,towns該試試。還是失敗了 = = 

資料庫欄位描述查詢很多時候towns需要寫出欄位描述,在沒方法以前,就是一個一個看,現在有兩個好方法
一、半手動查詢
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = '資料庫' AND TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME
列出所有資料表名稱
SELECT * FROM ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', '資料表名稱', 'column', NULL)
列出指定資料表資訊
這個方式需透過文字編輯器將資料表名稱一一寫入第二個語法
方式提供:bobo大
二、全自動查詢
這個是孤影大的研究,謝謝孤影大
http://www.dotblogs.com.tw/ajun/archive/2008/02/01/1044.aspx
這個T-SQL,執行後,會已html語法的方式呈顯哦!
檔案下載:Script_to_generate_DB_Document_Version_1.1
檔案提供:JK大

MSSQL 2008 R2 ==> MSSQL 2008或2005

方法一、使用產生指令碼方式並只匯出資料
指定資料庫 按滑鼠右建 ==> 工作 ==> 產生指令碼 ==> 選擇物件中 選 選取資料庫特定物件 勾選資料表 ==> 設定指令碼編寫選項 在儲存至檔案 點選 進階 將 要編寫指令碼的資料類型 選僅資料,這時產生的就只有資料了
方法二、將資料匯出成mdb檔,再匯入資料庫

資料庫結構比對及匯出差異結構(或直接更新)很多時候程式在開發時,客戶會同步測試及寫入資料,這的會造成開發版的資料庫結不同,開發過程中因為變動結構很多不可能一一寫出Schema,而且又不可以覆蓋客戶端的資料庫,因為,已經有重要資料了 = =,這時可以使用VS2010中工具 資料結構比對 ,下面說明使用方式
開啟 VS2010 (版本必需在 Pre以上)==> 資料 ==> 結構描述比較 ==> 新增資料結構描述比較 ==> 點選資料庫 ,並新增連接 ==> 打入伺服器名稱、打入帳密驗證、選取資料庫(兩邊都要做) ==> 到 結構描述比較設定 按下 選項 做進階設定 ==> 比較選項 中的設定,可以參考保哥的blog,有說明,設定完成後,按下確定,就開始比對 資料庫結構了,比對完成後,可以使用上方的功能 寫入更新 或 匯出至編輯器 的方式,將資料庫結構同步了
補充:進階設定要勾選的項目
一般,比較選項
1. 忽略 ANSI_NULLS
2. 忽略 QUOTED_IDENTIFIERS
3. 忽略檔案和記錄檔的檔名和路徑

物件型別
1. 勾選 SQL 檔案 (SQL Files)
2. 勾選 角色成員資格 (Role Memberships)
3. 勾選 使用者 (Users)
4. 勾選 登入 (Logins)
5. 勾選 資料庫角色 (Database Roles)
6. 勾選 檔案群組 (Filegroups)
7. 取消勾選 擴充屬性 (Extended Properties)
8. 勾選 權限 (Permissions)



 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template