bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

XP登入後會立即登出

因為電腦的可用空間不足而更換容量更大的硬碟
是由 IDE HD 複製到 SATA HD
開機後輸入帳號密碼登入系統就會立即登出
就算是進入安全模式也一樣

暴力的解決方式可以透過另一台可開機的電腦執行 regedit 用連線網路登入
把機碼 HKLM\SYSTEM\MountedDevices 中除了預設值其他都全部清除
不放心的可以先匯出機碼作個備份,然後重開機就可以登入了
不過磁碟機代號的順序就會因此重新排列,有可能會影響程式的執行

Leave a Comment

用 Google 搜尋 GoGoBox 資源

先前有介紹一個 GoGoBox 的搜尋引擎 FindBox 來幫助尋找分享資源
不過也可以用 Google 來處理
搜尋時輸入 [site:gogobox.com.tw 搜尋關鍵字] 如圖下所顯示就可以了

googlefindgogobox

Comments (1)

如何識別 MS SQL Server 的版本

工作上接觸過的 SQL Server 版本很多,從古老的 6.5 版到 2005 的都有。
伺服器更新到那一個 Service Pack 也無法直接獲得資訊,只能下SQL或使用管理介面先取得版本編號後再透過查表方式確認。
詳細資料可參考微軟知識庫文章:
http://support.microsoft.com/kb/321185/zh-tw

Leave a Comment

控制 Windows 音效管理員作靜音切換

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
uses
  MMSystem;

function GetMasterMute(Mixer: hMixerObj; var Control: TMixerControl): MMResult;
  // Returns True on success
var
  Line: TMixerLine;
  Controls: TMixerLineControls;
begin
  ZeroMemory(@Line, SizeOf(Line));
  Line.cbStruct := SizeOf(Line);
  Line.dwComponentType := MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
  Result := mixerGetLineInfo(Mixer, @Line, MIXER_GETLINEINFOF_COMPONENTTYPE);
  if Result = MMSYSERR_NOERROR then
  begin
    ZeroMemory(@Controls, SizeOf(Controls));
    Controls.cbStruct := SizeOf(Controls);
    Controls.dwLineID := Line.dwLineID;
    Controls.cControls := 1;
    Controls.dwControlType := MIXERCONTROL_CONTROLTYPE_MUTE;
    Controls.cbmxctrl := SizeOf(Control);
    Controls.pamxctrl := @Control;
    Result := mixerGetLineControls(Mixer, @Controls,
      MIXER_GETLINECONTROLSF_ONEBYTYPE);
  end;
end;

procedure SetMasterMuteValue(Mixer: hMixerObj; Value: Boolean);
var
  MasterMute: TMixerControl;
  Details: TMixerControlDetails;
  BoolDetails: TMixerControlDetailsBoolean;
  Code: MMResult;
begin
  Code := GetMasterMute(0, MasterMute);
  if Code = MMSYSERR_NOERROR then
  begin
    with Details do
    begin
      cbStruct := SizeOf(Details);
      dwControlID := MasterMute.dwControlID;
      cChannels := 1;
      cMultipleItems := 0;
      cbDetails := SizeOf(BoolDetails);
      paDetails := @BoolDetails;
    end;
    LongBool(BoolDetails.fValue) := Value;
    Code := mixerSetControlDetails(0, @Details,MIXER_SETCONTROLDETAILSF_VALUE);
  end;
  if Code <> MMSYSERR_NOERROR then
    raise Exception.CreateFmt('SetMasterMuteValue failure, ' + 'multimedia system error #%d', [Code]);
end;

// Example:

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetMasterMuteValue(0, CheckBox1.Checked); // Mixer device #0 mute on/off
end;

Leave a Comment

Delphi 7 Access violation at address 4085E2C4 in module ‘bdertl70.bpl’

於 Delphi 7 的環境下的專案程式中的 TQuery 元件的 Fields Editor 中要增加欄位出現了下列錯誤訊息

Access violation at address 4085E2C4 in module ‘bdertl70.bpl’. Read of address 00000000.

增加一個新的 TQuery 元件要指定 DatabaseName 屬性也會出現同樣的錯誤
原本是很正常的專案不確定為何會這樣
不過新建一個專案做同樣的處理就不會有同樣錯誤
所以歸納為專案本身的環境問題
才想到前一段時間為了減少 IDE 介面 Palette 上的元件
就去將 Project Options 中將一些沒用到的 Packages 給關掉
不然設計時找元件要點來點去很麻煩
說不定就是元件之間的關連性所導致的問題
趕快把原本關掉的都給弄回來,果然錯誤訊息就不再出現了。

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整