發表文章

目前顯示的是 2010的文章

OpenOffice Calc 如何匯入文字檔表格

圖片
以前將文字檔匯入 Excel,可以選擇分隔字元來匯入不同的欄位 但改用 OpenOffice 反而找不到這個功能,每次都給我改用 Writer 開啟 (啊我又不是要開文字檔) 後來查 Help 才發現原來是 之後就會出現熟悉的畫面了

如何將 TextBox 輸入的內容完整呈現在 Label 中

當使用 多行 TextBox 輸入時,要如何將輸入的結果顯示在 Label 中呢? 問題在於空白與換行在 Label 中沒有作用,所以只好用置換大法了 private string HtmlEncode(string strInput) { return strInput.Replace(" ", "&nbsp;").Replace(Environment.NewLine, "<br />"); } 參考: TextBox多行文本在显示在Label控件中如何保留录入格式

FileUpload 在 AJAX 的 UpdatePanel 中沒作用

AJAX 是 ASP.NET 的一大福音,它不必將整頁的資料 PostBack,大大減少資料的傳輸量而增加網頁瀏覽的速度。 但不幸的是 FileUpload 無法亨受到這一項福利,因為沒有 PostBack,它就不會將檔案傳到 Server 端。 不幸中的大幸,我們可以利用 PostBackTrigger 的方式強迫網頁 PostBack。也就是在 UpdatePanel 的 Triggers 集合屬性中,增加一個由控制項 (一般是我們選擇上傳的 Button) 引發的 PostBackTrigger。 這樣就可以達到兩全其美的效果:一般的操作還是以 AJAX 非同步的方式進行;而 FileUpload 則會由 Button 引發整頁的 PostBack 達到檔案上傳的目的。 參考: Simple AJAX File Upload

XfxServer 認不到 Linux driver

圖片
今天一早就收到投訴說 Linux driver 的連結有問題,查的結果發現是瀏覽器不認得 .RUN 的檔案,於是就開始修復了

Ubuntu 上的專案管理程式

原本想用 Ubuntu 軟體中心的 Project Management,結果甘特圖拉好後才發現沒有儲存基準線的功能。 於是上網找到以前用的 OpenProj ,結果它提供給 Linux 的版本是 rpm 的檔案,Ubuntu 無法使用,所幸已經有神人提供解決的方法了 sudo apt-get install alien sudo alien openproj-1.4-2.noarch.rpm openproj-1.4-2.noarch.deb sudo alien --scripts openproj-1.4-2.noarch.rpm (正確語法) 基本上 alien 是一個將 rpm 封裝轉成 deb 的程式,以中間的語法執行會出現以下的警告訊息 Warning: Skipping conversion of scripts in package openproj: postinst postrm Warning: Use the --scripts parameter to include the scripts. openproj_1.4-3_all.deb generated File "openproj-1.4-2.noarch.deb" not found. 結果會轉一個 openproj_1.4-3_all.deb 檔案出來 (真是怪哉,版本不一樣),用這一個檔案安裝就可以正常執行了 參考: Installing Openproj on Ubuntu

如何取得 struct size

struct MyStruct { ... }; 在 C++ 時代,我們可以用 sizeof(MyStruct) [StructLayout(LayoutKind.Sequential)] struct MyStruct { ... }; 在 C# 時代,我們必需宣告變數實體才能取得其大小 MyStruct myStruct = new MyStruct(); int iSize = Marshal.SizeOf(myStruct); 後來發現利用 typeof 運算子也可以達到相同的效果 int iSize = Marshal.SizeOf(typeof(MyStruct));

我的 P535 無線網路設定

最近手賤亂動 PDA 上的無線網路設定,結果造成無法連線,老是出現 " 無法取得伺服器指派的 IP 位址 " 的錯誤訊息,Google 後才發現是網路卡的問題。解法如下: 開始 | 設定 | 連線 | Wi-Fi 切到 "網路介面卡" 的頁面 我的網路卡連線到:預設的工作設定 點選介面卡以修改設定: Remote-NDIS 主機 點選 "編輯",選擇 "使用伺服器指定的 IP 位址" (DHCP) 做完以上設定應該就 OK 了 時好時壞,還是未解,哀 看來是公司無線 AP 的問題,P535 內建使用的無線網路介面卡應該是 " ASUS 802.11b+g Wireless Card " (不是 Remote-NDIS 主機),而使用 DHCP 取得的 ID 竟然是 fe80::218:f3ff:fee6 改用手動的方式,配一個無人使用的 IP 就正常了,唉! 目前看起來似乎有兩個問題 DHCP 取回的似乎是 IPv6 PDA 之前的 IP 似乎不會釋放

CString.Format 的怪問題

我的 ThermalTest 程式,在顯示 "已經過" 的時間時,會出現奇怪的問題,似乎所有的參數都往後移一位,原本顯示 "秒" 的變成 "分"、顯示 "分" 的變成 "小時",依此類推。 // TODO: Add your message handler code here and/or call default CTime tNow = CTime::GetCurrentTime(); CString str, strResult, strFile; // 經過時間 CTimeSpan tPeriod = tNow - m_tStart; strResult.Format("%04d/%02d/%02d %02d:%02d:%02d", tNow.GetYear(), tNow.GetMonth(), tNow.GetDay(), tNow.GetHour(), tNow.GetMinute(), tNow.GetSecond()); strFile = strResult; str.Format(" 已經過 %d 天 %02d:%02d:%02d\n", tPeriod.GetDays() , tPeriod.GetHours(), tPeriod.GetMinutes(), tPeriod.GetSeconds()); strResult += str; 後來發現是 GetDays( ) 造成的,它的傳回值是 LONGLONG,但是 Format 只用 %d,因此造成參數溢位往後推擠,只要將 %d 改成 %lld 就可以了。 參考: Size and Distance Specification 另發現我當時有另一種解法,但不知為何程式沒有 Release str = tPeriod.Format(_T(" 已經過 %D 天 %H:%M:%S\n")); 參考: CTimeSpan::Format

無線 AP 修復手札

圖片
公司的無線 AP 已經年老體衰,三不五時就會自動 Reset 成出廠設定,提供免費的 AP 給大家使用。所以我就記錄一下這次修復的步驟,下次碰到時,也可以依樣畫葫蘆。 首先執行 3Com 提供的 Gateway Discovery 程式,搜尋區域網路中的 AP (這個程式目前只提供 Windows XP 的版本,在 Windows 7 下無法執行) 首先選擇連接區域網路的設備

Ubuntu 10.10 開機錯誤訊息的解法

公司安裝的 10.10 在開機時有下列錯誤訊息,但使用正常 modprobe: Fatal: Could not load /lib/modules/ 2.6.35- 22-generic/ modules. dep: no such file or directory Google 發現滿多人有相同的問題,且已被回報成 Bug Maverick could not load /lib/modules/2.6.35-22-generic/modules.dep 目前解法如下: sudo gedit /etc/initramfs-tools/initramfs.conf 將 MODULES=most 改為 MODULES= dep sudo apt-get install initramfs-tools --reinstall 參考: [10.10] [解決方案] 如果開機時出現 modprobe: FATAL: Could not load /lib/modules/2.6.35-generic/

畫面截取程式

在 Windows 習慣按 Alt + PrintScreen 來截取目前程式的畫面,但這一招在 Linux 卻行不通,找來找去才找到 Shutter 這個程式,功能還滿強的,除了截取畫面外還附設編輯的功能,這對寫網誌來說實在太方便了 結果 Ubuntu 10.10 預設在附屬應用程式就有 " 拍下螢幕截圖 " 的功能了,不過沒有編輯圖片的功能,所以 Shutter 還是可以用的

Linux 批次檔的寫法

圖片
用文字編輯器在第 1 行加入 " #!/bin/bash ",之後就可以寫你要執行的批次命令 存檔後利用下列的指令賦與檔案執行的權限 chmod  a+x  [檔案名稱] Ubuntu 一般安裝完,系統的預設路徑如下: /usr/local/sbin: /usr/local/bin :/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 若批次檔想在任何地方皆可執行,建議放在 /usr/local/bin 路徑下 (需要 root 權限) 若要在目前路徑下執行,記得檔案名稱前面要加 " ./ " 才能正常執行

Ubuntu 10.04/10.10 以 root 權限進入 console mode 的步驟

開機直接進入 console mode: Pico /etc/default/grub 將 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 改成 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash text ” sudo update-grub 如果要回到 GUI mode,在 console mode 執行  startx 即可 開機以 root 權限進入 console mode: 執行 “apt-get install mingetty” (可能需要連上網路) 執行 “vi /etc/init/tty1.conf” 將  “exec /sbin/getty 38400 tty1” 改成  “exec /sbin/ mingetty --autologin root tty1 ”

Ubuntu 面板上的音量圖示不見了

昨天為了讓面板上乾淨一點,把一些不必要的圖示 (例如郵件) 移除了,結果今天早上才發現怎麼連音量的圖示也不見了。 後來才發現原來昨天移除的不是郵件的圖示,而是整個 "指示器面板程式",它是用來放像音量、郵件之類的指示器,所以把該項目加回面板就正常了! Orz

Screenlets ClearWeather 設置小技巧

圖片
原本以為不支援台灣的天氣,後來 Google 發現用以下的方式就可以了 先到 http://www.weather.com 輸入要查詢天氣的城市 完成後在網址列就可以看到對應城市的 ZIP 代碼了 似乎不是很準確,還是用 Win7 的小工具就好了

PDA 程式實機偵錯

圖片
Windows Mobile 的程式開發過程中,可以使用模擬器來偵錯。但有時還是需要在實機上測試,因此 先將 PDA 透過 USB 與電腦連線 執行 Visual Studio 的偵錯,在部署的對話盒中選擇  "Windows Mobile 6 Professional Device",此時部署程式會複製一些程式到 PDA,且需在 PDA 上做確認 之後即可按一般偵錯的方式執行程式了

如何開發 Windows Mobile 應用程式

圖片
這次的目的是想寫一個利用 GPS 記錄旅程軌跡的程式 (騎腳踏車、出外郊遊、旅行都可以用),如果可以把資料轉到 Google Map 上標示就更好了,也許將來可以將這些資料寫入照片的 EXIF,那相片地圖就省事多了 (兩邊做時間比對,不過一開始要先校正),不過問題應該是電池的續航力吧! 總之,先踏出第一步吧!

mount 硬碟

sudo gedit /etc/fstab sudo chown johnny:johnny /media/UBackup mount nfs 硬碟 sudo apt-get install nfs-common sudo mount -t nfs myMediaCenter:/volume1/video /media/Video sudo mount -t nfs mymediacenter:/volume1/photo /media/Photo

如何在 Ubuntu 實現視窗吸附的功能 (Windows 7 Aero Snap)

圖片
習慣了 Win7 將視窗拖到桌面上方就放大的功能後,Ubuntu 也想來一下,Google 之後才發現,原來這個功能叫 Aero Snap,參考 Get Aero Snap in Ubuntu 後摘要如下: sudo apt-get install wmctrl 這是一個用來切換視窗的程式 執行 CompizConfig 後點選 預設指令 在 Command line 0 輸入 wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz 設定 Command 0 由螢幕的上方觸發 原參考文章還有設定 "通用選項" 的 "螢幕外緣 (Edge) 啟動延遲",不過我修改後沒感覺到差異,所以就沒設了 PS : 有時會失效,變成整個視窗的標題列卡在工作列裡面而無法移動,此時按 ALT 再點選視窗的任何位置就可以移動視窗了 還是用 Double Click 或放大按鈕來放大視窗吧,不要偷懶了!

如何從 Ubuntu recovery mode 回到視窗模式

通常我們都是重新開機,不過實際上只要載入 x-window 即可,所以只要執行 sudo gdm 就可以了,參考 How to start Gui from recovery mode? Video driver revert?

如何部署網站到 Win Server 2008

圖片
Win Server 2008 灌好了,讓我們用 Visual Studio 2008 寫一個簡單的網站來測試看看吧! 馬上就碰到第一個錯誤訊息,遠端伺服器沒有 IIS 服務

Win Server 2008 IE 安全性設定

圖片
Server 是以安全性為考量,為了避免遭到網路的攻擊,IE 設的安全性很高,不過這在使用上也造成很大的困擾,所以在安裝的過程中就先把它關掉吧,等操作完畢再設回來

邁向 Server 之路

為了提倡正版,公司用 Windows XP 架的內部 Server 當然也不能用了,雖然 Windows Server 2008 標準版已經買來了,但我還沒想到和平的資料轉移方式。 所以就先拿我的電腦來裝 MSDN 的 Server 2008 測試版 (30 天),先玩玩看,到時候正式用才不會手忙腳亂!

Windows 7 IIS 設定

圖片
在 Windows 7 的環境下,若要利用 Visual Studio 2008 開發 ASP.NET 程式,則 控制台 | 程式集 | 開啟或關閉 Windows 功能 設定如下:

Windows Live Messenger 傳檔掃毒設定 (小紅傘)

工具 | 選項 | 檔案傳輸 勾選 使用下列軟體進行病毒掃描 瀏覽小紅傘的 " avscan.exe " 加上參數後變成 "C:\Program Files\Avira\AntiVir Desktop\avscan.exe" /GUIMODE=2 /PATH=%file% 勾選 自動拒絕傳輸已知為不安全的檔案類型 GUIMODE 參數說明 完整掃描視窗 簡易掃描視窗 背景執行無視窗

Windows 7 與 PDA 的邂逅

圖片
自從升級到 Windows 7 後,一直在煩惱我的 PDA 該怎麼辦!Windows XP 上熟悉的 ActiveSync 已不復支援,尋尋覓覓後終於讓我發現了 Windows Mobile 裝置中心 ,而且不用從 Microsoft Download (要驗證),只要利用 USB Cable 連接 PDA 就會自動安裝了 (不過 xx 版應該還是沒辦法吧)

電腦重灌之路

最近公司為了提倡正版軟體,以前在 WinXP 上使用的種種軟體已不能再使用 (如果堅持要用,被抓到就自己負責吧) 所以我就很 "愉快" 地轉換到 Windows 7 上來了,為了避免下次重灌時漏東漏西的,就順便做一下記錄,凡走過必留下痕跡嘛

Ubuntu 溫度監控

炎炎夏日又來了,為了怕電腦掛掉,還是需要監控一下溫度,所以就找了以下這一篇文章按圖操作,安裝完記得要重開機,否則裝好的東東不會出現喔! [分享]配置CPU温度.风扇转速,硬盘温度监控(附加Athlon/Duron系统安全度夏指南) 重點: sudo apt-get install lm-sensors sensors-applet 先安裝 Sensors,安裝完後運氣好的話,加入面板的 Hardware Sensors Monitor 就可以看了 sudo sensors-detect 如果沒有,就做一次掃瞄的動作吧,掃瞄完會把這些設定寫入 /etc/modules sudo apt-get install xsensors 或者ksensors(KDE中推荐使用ksensors) sudo apt-get install gdesklets gkrellm Computer Temperature Monitor 以上都是顯示監控值的程式,視需要安裝,不過我用系統的 Hardware Sensors Monitor 就可以了 sudo apt-get install hddtemp 安裝硬碟監控的 Sensor (不過執行第 1 項安裝時就出現過了) 在終端機打 sensors 就可以查看所有的溫度了

"我的文件" 存取被拒

圖片
在 Windows 多使用者的環境下,如果當初設定時選擇加密,則 "我的文件" 只有自己能看得到,換成其他使用者時,會出現以下的錯誤訊息 看一下它的存取權限只有本人能夠存取

Outlook 再度當機

圖片
不知道是那一個更新,再度造成 Outlook 在切換輸入法時當機 再度地 Google 使用以下方法解決 (加回新注意輸入法) 微軟你就饒了我吧,不要讓我一直做重複的事情啊!

SQL Server 資料庫損毁

圖片
昨天要修改 XFX Server 的程式時,才發現 aspnetdb 資料庫損毁,無法使用,錯誤訊息如下:

C# 列舉型別的位元旗標

C# 的列舉型別加上 [Flags] 屬性後,就可以做位元運算,真是太神奇了 [Flags] enum Days2 { None = 0x0, Sunday = 0x1, Monday = 0x2, Tuesday = 0x4, Wednesday = 0x8, Thursday = 0x10, Friday = 0x20, Saturday = 0x40 } class MyClass { Days2 meetingDays = Days2.Tuesday | Days2.Thursday; }   參考: 列舉型別 (C# 程式設計手冊)

myADL

為了避免 ADL 改版時,要將之前寫好的程式再改一次,因此想將自己寫好的程式從 ADL 中獨立出來。 原本是想用繼承的方式,但 ADL 為 static class ,無法繼承,死路一條。 後來發現 partial class 可以達成我的目的,只要將原本的 ADL class 加上 partial 關鍵字 ,而我自己寫的程式 (放在另外獨立的檔案) 也加上 partial 關鍵字,編譯時就可以合成一個 class 了。讚!

WORD 選取 "區塊" 的文字

圖片
如果我們要選擇一個區塊的範圍,照一般滑鼠拖曳的方式會得到如下的結果: 但如果加上 ALT 鍵呢?就會得到我們想到的結果如下: 所以 WORD 還是有一點人性的!

Ubuntu 更新再度 @#$%$*&^

距離上次更新掛掉還不到半個月,今天更新再度中獎了。不過這次學聰明了,照著以下的步驟就搞定了: 開機後按著 SHIFT 直到 GRUB 選單出現 進入修復模式,然後以 Safe mode 進入系統 移除 CompizConfig 移除 ATI Driver (位於 /usr/share/ati) 重開機 安裝 ATI Driver 重新開機 (比較保險) 系統 | 偏好設定 | 外觀,在 "視覺效果" 的標籤頁,設定為 "使用額外的特效" 安裝 CompizConfig 打完收工!

Play MIDI

圖片
自從買了 USB MIDI 的線,加上 Ubuntu 上一堆音樂編輯軟體,於是就開始玩起 MIDI 了。不過因為家裡有電子琴當作 MIDI device,所以使用上不成問題,但在公司的話,只好用主機板上的音效來模擬了。 目前的作法是安裝 timidity,然後在終端機使用 $ timidity -iA 指令,接著開啟 RoseGarden 後,在 MIDI device 就可以看到如下所示: 於是就可以發出聲音,真是太棒了!不過音色不是很好,而且有些樂器沒有聲音,可能要改用別的 Soundfont (參考: Using FluidR3_GM.sf2 in TiMidity++ ),以及如何永久使用 Timidity,而不是每次都要用終端機執行啊!

DoubleCAD 輸入中文

由於該軟體是英文的版本,似乎沒有考慮到中文的輸入,因此中文怎麼輸就怎麼當。因此解決之道: 先在別處輸入 Copy & Paste 大小也無法調整,因此輸入完畢後,再以物件 Property 的方式修改即可

Ubuntu 更新問題

自從使用 10.04 後,昨天第一次因為更新又掛了,畫面就停在橘色的 Ubuntu 動也不動,有時則是閃一下就黑屏了。 怪的是連 GRUB 的選單也沒出現,後來才發現原來這一台還沒有灌 Windows,只有 Ubuntu 一個 OS,所以才沒有出現,如果要的話,就在開機時按 Shift,或者直接修改設定檔 /etc/default/grub 吧 (參考: Grub2 集中討論 )。 經過一連串的嘗試救援仍宣告不治後,只好重裝。不過重裝時我選擇原有的 Partition 未格式化,結果東西都還在,只是恢復到初始設定,所以只要把我要的 AP 重裝就好了。 不過目前碰到一個問題,就是安裝 ATi driver 後,無法使用 compiz 啟用桌面特效,不管裝那一個版本都一樣,更慘的是連 Ubuntu 內建的版本都被我弄不見了。 後來想到可能是 compiz 的關係,所以就先把它徹底移除,然後再裝 ATi driver,接著外觀設定就可以開啟桌面特效,再安裝一次 compiz 就可以正常使用,真是太神奇了。 梅子與牧童叔: Ubuntu 更新問題

SketchUp 如何列印 1:1 圖檔

圖片
首先,為了讓圖檔比較清晰,請點選 " 視窗 | 樣式 ",選擇預設樣式的線框 假設外框尺寸為 A4 (190x270mm) 畫完後,點選工具列的 " 縮放範圍 " 放大至全螢幕 最後列印時選擇 1:1,此時左右會各有一頁空白頁,因此列印時選擇第 2 頁即可。此外列印時選擇 " 高精確度 " 才會列印出比較高解析度的圖檔

常用單位換算

1 inch = 25.4 mm = 1000 mil 1 mm = 100 條 公制螺絲標示 M3*0.5 表示外徑 3mm 牙距 0.5mm (參考: ISO metric screw thread ) 美規螺絲標示 #4-40 表示外徑 4 號 (0.1120" = 2.8448mm) 每英吋 40 牙 (參考: Unified Thread Standard )   螺絲基本規格定義與認識 & 六角板手的號碼

Boxee 中文化

Boxee 源自 xbmc,因此中文化的步驟有些許相似,實驗結果如下: 取得中文字型檔,例如 Windows 的標楷體 (C:\WINDOWS\Fonts\ KAIU.TTF ) 將檔案複製到 D:\Program Files\Boxee\skin\boxee\Fonts 下,並取代 MuseoSans_500.ttf 與 MuseoSans_700.ttf 兩個檔案 (一個是使用者介面用,一個是檔案名稱用) 到 SETTINGS | APPEARANCE | Region,將 Language 設定為 Chinese (Traditional) 即可 系統設定 | 影片 | 字幕設定 下的字型 boxee.ttf (位於 D:\Program Files\Boxee\media\Fonts) 應該是字幕的字型 (目前尚未用到此功能) 有機會再實驗 目前碰到的問題是有些地方字型太大, 例如右上角的時間會蓋到溫度顯示,而且家裡 1024x768 的解析度下,中文字會破圖,需要再研究一下調整字型大小的地方

我的 CAD 之路

圖片
終於又要開始畫鐵片了,不過以前是用 AutoCAD,而現在則是轉到 Ubuntu 的作業系統上,經過一番搜尋後,決定用 QCad (雖然商業版不再 Free,但目前的版本應該夠用了)。以下是設定的過程中所碰到的一些問題,記錄一下,以便將來重裝時有所依據: ##CONTINUE## 讀取舊檔:QCad 只支援 DXF 的格式,但以前 AutoCAD 畫的檔案都是 DWG 的格式,所以第一步就是格式轉換。目前採用  Lx-Viewer ,因 Ubuntu 的版本一直試不成功,只好退而求其次改用 Windows 的版本 0.99e 。隨便找一個以前畫的鐵片,轉換後已可以 QCad 中正常開啟了。 問題:安裝完 qcad-doc 後,在 QCad 中仍無法使用,錯誤訊為為『 File does not exist: /qcaddoc.adp Profile '/qcaddoc.adp' does not exist! (Package qcad-doc installed?) 』目前的解法只能將 /usr/share/doc/qcad/html 底下的 qcaddoc.adp 做一個連結檔到 / (指令為 sudo ln qcaddoc.adp / ),則 Help 可使用,但 Index、Search 仍無法使用 (無法連結到正確的 html 檔案),只能用內文的 Hyperlink 連結 (PS:連結檔必須用 Hard link,Soft link 無效) 列印成 PDF:若廠商無法讀取 DXF 檔案格式,則可能必須要轉換成 PDF,因此安裝了 Ubuntu 軟體中心的 cups-pdf,它是印表機 Driver 的格式,所以只要能列印就可以轉成 PDF 了 問題:安裝 cups-pdf 後的 PDF Driver 在 QCad 中看不到,Help 中說明可利用 Print to file 存成 PS 格式,然後利用 Document Viewer 開啟後,列印成 PDF 格式即可。 不過又衍生出 PDF 檔案不正常 (以預設的 Document Viewer 觀看),但在 Windows 下觀看是正常的,於是只好在 Ubuntu 下安裝 Adobe Acrobat Reader,並在檔案瀏覽器中,任選一個 PDF 檔案按滑

印表機佇列有刪不掉的文件怎麼辦?

控制台 | 系統管理工具 | 服務 將 Print Spooler 服務 停止 ,再 啟動 即可 (直接按 重新啟動 無效) 參考: 印表機有刪不掉的任務,怎麼辦?

gcin 嘸蝦米輸入法

wget http://edt1023.sayya.org/gcin/noseeing-12.tar.gz (檔案已放到 Dropbox Zip 子目錄下) tar zxvpf noseeing-12.tar.gz sudo cp noseeing.gtab /usr/share/gcin/table/ 刪除解壓縮後的檔案

移除硬體的圖示不見了

那就直接把它叫出來吧 RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll 參考  工作列上的「安全地移除硬體」不見了如何處理?

暫時提升使用者權限

圖片
受限的使用者無法執行與系統操作相關的程式,因此常要登出後,以 Admin 使用者的權限登入,然後執行完相關的作業後,再切回原先的使用者 實際上並不需要這麼麻煩,在執行程式上按滑鼠右鍵,選擇執行身分,就可以暫時用管理者的身分執行程式了 (好像 Ubuntu 的 sudo 指令一樣) 或者也可以在捷徑的進階設定中,勾選以其他身分執行

受限使用者的遠端登入問題

圖片
日前為了安全性的考量,將平常使用的 Windows 帳戶改為受限的使用者,避免病毒的侵擾。 但之前在開會時,突然發現無法利用遠端登入自己的電腦,後來上網才找到以下的解法 解法很簡單,就是把受限的使用者加入清單中就可以了

移除 nVidia driver 失敗

在移除完 driver 重新開機後,總是會出現 fail to load nvcpl.dll 的錯誤訊息,到 regedit 中去刪除還是一樣 後來發現原來是 sw20.exe 程式造成的,這個程式是 MSI 顯示卡的一個公用程式 (以前測試有安裝過),後來到 regedit 將 sw20.exe 與 sw24.exe 兩個開機啟動程式刪除後就正常了,Key 如下 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

建立連結 ln (Windows 捷徑)

Unix link 分成以下兩種 Hard link 語法:ln source_file hard_link_file 兩者指向相同的 inode,因此修改其中任何一個檔案,則另一個檔案會跟著變更 (包含檔案的屬性)。由於兩者指向相同的 inode,所以不能跨硬碟分割區,而且不能使用在目錄上 Soft link (Symbolic link) 語法:ln -s source_file soft_link_file 以指標的方式指向 source_file,因此兩者的 inode 並不相同。修改其中任何一個檔案,則另一個檔案會跟著變更,但 soft_link_file 的屬性並不會變,而且兩個檔案可以跨硬碟分割區存放
Ubuntu 9.10 可加入以下 軟體來源 ,以便在 Synaptic 套件管理程式中安裝 Dropbox deb http://linux.dropbox.com/ubuntu karmic main deb-src http://linux.dropbox.com/ubuntu karmic main 但缺乏驗證用的公錀,可用 以下 的方式匯入 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5044912E

C# 傳遞參數的方式

前置詞 說明 Call by Value ref Call by Reference, Input and Output out Call by Reference, Output only

定時關機

昨天要下班時,電腦還在下載,只好設定定時關機,還滿好用的,不過昨天檔案還是下載失敗 C:\>AT 19:30 shutdown -s -t 180 以上新增一個排程在 19:30 執行 shutdown 程式關機,其中 -t 180 是等待 3 分鐘後再關機,以便讓 Windows 將開啟程式關閉

從 WPF 呼叫 NVAPI & ADL

WPF 使用 C# ,是屬於 Managed Code 而 NVAPI & ADL 是使用 C/C++ ,屬於 Unmanaged Code 所以必須透過橋樑來處理 第一步: 由 Using Unmanaged code and assembler in C# 知道 C# 可以透過 DllImport 來呼叫 DLL 中的 Function ,不過糟糕的是 NVAPI 是採用 Static Lib Link ,我們要使用的 Function 並沒有 Export 出來,因此折衷的辦法是在 NVAPI 外面再包一層 DLL ,然後將我們需要的 Function Export 出來給 C# 呼叫 ( 先試著直接呼叫,等比較熟後看是包成自訂控制項或其它方式 ) PS : 字串的處理記得在 DllImport 中設定 CharSet 的參數,否則 ANSI 與 UNICODE 未設定正確將產生錯誤 偵錯工具類型要設為 "混合",否則在 Managed Project 中無法偵錯 Unmanaged code NVAPI 採用 __cdecl、而 C# DllImport 預設是採用 __stdcall。我們的 DLL 是採用 Static Link 的方式呼叫 NVAPI,所以沒問題;但 C# 是用 Dynamic Link 方式呼叫 DLL,所以兩邊的 Calling Convention 必須一致,否則會產生堆疊錯誤。因此我們包的 DLL 要沿用 NVAPI 採用 __cdecl?還是配合 C# 採用 __stdcall 呢?暨然是 DLL,還是照慣例用 __stdcall 吧 Calling Convention cdecl 參數由右到左放入堆疊、呼叫端清除 (C/C++) MFC stdcall 由右到左、自行清除 (Win32) DLL pascal 由左到右、自行清除 (VC++2.0 & Win16) Borland Delphi fastcall 由左到右、自行清除 ( 前三個參數 EAX, EDX, ECX 剩下才放 Stack) Microsoft fastc

WPF 新一代使用體驗開發實務 範例疑問

6.8 整合:建立可收合、停駐、調整大小的 Visual Studio 式窗格 (Page 177) 該程式在右邊有兩個按鈕,分別是 Toolbox 與 Solution Explorer,如果滑鼠移到該按鈕上方,則會暫時出現對應的視窗;如果滑鼠移開,則視窗自動隱藏 而視窗出現時,右上角會有一個按鈕提供視窗停駐的功能。 目前的問題是:Toolbox 與 Solution Explorer 的視窗位置是固定的,也就是 Toolbox 在左邊、Solution Explorer 在右邊。如果 Solution Explorer 先停駐,則滑鼠移到 Toolbox 上方時,出現的視窗在是 Solution Explorer 左邊,此時如果想將 Toolbox 視窗停駐,將因為中間隔了一個視窗而無法達成。因為滑鼠從按鈕上移開後,尚未到達 Toolbox 的停駐按鈕,視窗就消失了。 目前問題有兩種狀況: 如果先停駐 "T" 與 "S",然後再取消停駐 "T",此時就會有上述的問題 如果只停駐 "S",則 "T" 會在按鈕旁邊,可正常操作 Why? 2010/03/25 找到原因了,問題出在 UndockPane() 函式中,當要 Undock Pane1 時,除了 layer0 要移除 column1CloneForLayer0 外,還要檢查 Pane2 的狀態。如果 Pane2 是停駐的,則 layer1 也要移除 column2CloneForLayer1 (也就是跟 DockPane() 函式要對稱)。否則下次使用 Pane1 時,就變成有一個隱藏的 column2CloneForLayer1 存在,所以 Pane1 就被移到 Pane2 的左邊了 (請參考書本第 181 頁,圖 6.34)

Ubuntu 刪除舊核心

Ubuntu 每次更新後,就會多一堆核心出來,不僅佔空間,GRUB 的選單也愈來愈多。所以 先到 系統 | 管理 | Synaptic 套件管理程式 ,搜尋 linux-image ,將不需要核心移除 (像我目前是保留最新 2.6.31-20 與最舊 2.6.31-14 兩個版本,其餘中間版本皆刪除) GRUB 會自動重建,如果是其它原因要再建一次的話,可以在開機時選擇任一版本的 Recovery mode ,進入 Recovery Menu 後選擇 grub ,就會再自動掃瞄一次目前所有的核心,然後重建 GRUB 開機選單了 PS : 昨天試家裡的還是不行,可能硬碟快掛了,所以不正常吧

Ubuntu 更新問題

之前核心更新時,偶爾會碰到重新開機後,視窗的標題列不見了,整個視窗嵌在工作列上,無法移動。 而當時的作法都是重新移除 / 安裝顯示卡的驅動程式,不過這實在是一項浩大的工程。 後來發現只要到 系統 | 偏好設定 | 外觀設定 重新執行一下就可以了。不過還沒確認,下次碰到時再實驗一下好了。 2010/03/23 果然今天更新完又再度掛了,重新開機後沒畫面,於是到 Recovery mode 下將 ATI driver 移除,移除後已可 Login 進入系統,不過變成畫面全白 (啊是怎樣?一下全黑、一下全白) 後來在網路上找到 請教關於 ATI X700 Driver 的安裝 ,在 Console 模式下,執行下列兩個指令 sudo apt-get update sudo apt-get install xorg-driver-fglrx 已可正常進入系統,不過還是有視窗標題列不見的問題,用上述的方法確實可解決。接著就是重裝 ATI Driver 了。

日本自由行

日本真的是一個非常乾淨跟有禮貌的國家,不管是在城市或是鄉下地區,都給人非常熱心的感覺。像我們不清楚日本的地址怎麼找,問了一個人後,她不曉得,還拉著我們去找別人問,那像我們碰到老外問路,一句不清楚就混過去了,真的是差很多。 另外在日本也很少聽到車子按喇叭,人們走在路上也不用擔心車子突然衝過來。反而回到台灣後,還真有點不習慣。 我想要有這麼高的生活品質,一定是從小教育培養起。我們沒辦法改變我們的社會,但至少先從改變自己開始吧!

刪除重覆的書籤

自從使用 Xmarks 同步書籤後,莫名其妙多了一堆重覆的書籤出來,想刪又沒時間比對,只好求助網路了,請參考以下 Firefox 的擴充套件 CheckPlaces ( 我竟然有 2500 多個書籤啊 ) CheckPlaces 輕鬆檢查刪除 Firefox 3.x 瀏覽器裡的重複、無效書籤網址   CheckPlaces Firefox Extension 官網

Yahoo POP3 收信

以往 Yahoo 奇摩信箱是付費的 VIP 才能享用 POP3 收信的功能,但在網路上搜尋發現『 台灣Yahoo!奇摩信箱開放「免費POP收信」功能! 』,已經在 Windows Live Mail 上測試成功,重點如下: 先 按這裡 開啟 POP3 收信功能 ,選擇『網頁 & POP 收信』後儲存設定 設定資訊如下 伺服器 網  址 連接埠(Port) 安全連線(SSL) 內送郵件伺服器 (POP3) pop.mail.yahoo.com.tw 995 是 外寄郵件伺服器 (SMTP) smtp.mail.yahoo.com.tw 465 是 文章中提到寄 e-mail 有問題 ,但我實際測試是 OK 的,這樣就可以統一在 Live Mail 中收郵件,而不用跑到奇摩信箱中了,感謝 2011/8/17 Yahoo 信箱突然不能收信,查 Windows Live Mail設定方式 才發現是設定改了 ( 網頁上的 SMTP Port 有誤 ) 伺服器 網  址 連接埠(Port) 安全連線(SSL) 內送郵件伺服器 (POP3) pop.mail.yahoo.com.tw 110 否 外寄郵件伺服器 (SMTP) smtp.mail.yahoo.com.tw 465 是

換雨刷

由於雨刷已經年久失修,刷起玻璃總是吱吱喳喳,於是昨天在家樂福終於敗了一組新的雨刷,並在下班後安裝完畢。 可是今天在上班的時後下毛毛雨,結果新的雨刷好慘,都刷不乾淨,刷完後一堆水痕留在上面,害我開車都一直分心,好不容易開到公司檢查一下,才發現上面有一層白白的塑膠套,原本昨天裝的時候以為是新的材質,結果是雨刷的保護套。 現在把它拆掉了,希望晚上使用正常,真糗!
以下 ConnectionString 的寫法都 OK <add name="WFLog" connectionString="Data Source= . ;initial Catalog=WFPer;Integrated Security=SSPI;"/> <add name="WFLog" connectionString="Data Source= localhost ;initial Catalog=WFPer;Integrated Security=SSPI;"/> <add name="WFLog" connectionString="Data Source= (local) ;initial Catalog=WFPer;Integrated Security=SSPI;"/> 就是不能寫 <add name="WFLog" connectionString="Data Source= (localhost) ;initial Catalog=WFPer;Integrated Security=SSPI;"/>

條件與規則

通常在 Workflow 中以下列的方式設定屬性 private Double _OrderValue; public Double OrderValue { get { return _OrderValue; } set { _OrderValue = value; } } 但在條件或規則的運算式中,應使用 this._OrderValue 來運算 若使用 this.OrderValue 則會產生無法預期的結果。 原來雖然我們把欄位 _OrderValue 設定成跟屬性 OrderValue 一樣 但對程式來說還是不一樣的東西,因此運算式在評估時就會產生錯誤的結果 目前有實驗過全部改成屬性也沒問題,所以只要不混用即可 不過效能上應該還是直接取用欄位比較快吧 補充:C# 設定屬性用以下的方式就可以了 public Double OrderValue { get; set; }

"10.2 WF 呼叫 WCF" 範例記事

Windows Workflow Foundation 新一代工作流程開發實務 Page 292 在實作此範例時,一直不成功,後來才發現 Visual Studio 2005 針對 WCF 所產生的 App.config 中 <endpoint address="" binding=" basicHttpBinding " contract="service.IEchoAble"> 而 Visual Studio 2008 則是 <endpoint address="" binding=" wsHttpBinding " contract="service.IEchoAble"> 兩者差別如上,有空再研究一下

"9.3.1 單一的客製化活動" 範例記事

Windows Workflow Foundation 新一代工作流程開發實務 Page 274 在實作此範例時,Solution、Project、Activity 名稱都叫做 MyActivity 當此活動 Build 完成,要在 Workflow 中引用時,若是一般的工作流程則沒問題 但如果選用程式碼另外置放的工作流程時,編譯卻會產生錯誤 我想原因應該是 Namespace 錯亂了 後來把 Solution、Project、Activity 的名稱都分開後就正常了

RichTextBoxExtended

圖片
"Windows Workflow Foundation 新一代工作流程開發實務" 第 8 章的範例 ReminderTextEditor (Page 255) 中控制項 RichTextBoxExtended 來自 CodeProject,編譯完成後會產生 RichTextBoxExtended.dll ##CONTINUE## 將該檔案移到要使用該控制項的 Project 的目錄中 (若要發行應該是要安裝到 Windows 的目錄中吧),若要在工具箱中新增該控制項,請依下列的步驟: 在 "工具箱" 按滑鼠右鍵,選擇 "加入索引標籤" 輸入標籤名稱 "RichTextBoxExtended" 後,在標籤中的空白處按滑鼠右鍵,選擇 "選擇項目" 在 "選擇工具箱項目" 對話盒中,點選 "瀏覽" 指到檔案 "RichTextBoxExtended.dll" 勾選 "RichTextBoxExtended" 控制項 最後控制項會出現在標籤中,即可像一般控制項一樣拖放至表單中使用了