今天居然夢見ㄚ公,ㄚ公在15年前就過世了,我記得只有一次或從來沒夢見過他
夢裡,他從一個臺階上走下來,因為臉上的皺紋變得更多,看起來更老了
就像是8~90歲該有的樣子,但身體依然硬朗
他用一個喉嚨中似乎有痰的低沉聲音說了一聲:ㄚ翰阿
然後我看了一下左手邊,ㄚ嬤躺在那裡側臥著睡覺
接著ㄚ公對我說:那邊有一粒西瓜,拿去剖一剖
我看了一下我的右手邊,有一個平台上面放了一顆大西瓜
那顆西瓜大概長50公分直徑30公分左右,我上了前去看一看
然後將那西瓜往自身的方向轉了一下,發現西瓜已經被橫切了一片起來
(一般正常情況下我們會順著西瓜心的方向下去切),看了一下旁邊已經有幾片西瓜切起來放在那了。黃色的肉,是小玉西瓜,好大一顆的小玉西瓜,從沒看過這麼大的。
接著聽到阿公說:那邊有刀子
我轉過身後發現ㄚ嬤不見了,應該進去屋子裡面睡了吧!
往ㄚ公所說的方向走去,看見了一把短短可摺疊收納的刀子
刀身的長度就只有普通訂書機的長度。正在想說這麼小的刀子該怎麼切,轉過頭準備要問ㄚ公的時候,發現ㄚ公坐在那跟一個人聊天。
看了一下原來那個人也是ㄚ公,是6~70歲的ㄚ公,年輕的ㄚ公跟老的ㄚ公在互相對話,當我在計算我揪竟有幾個ㄚ公的時候,才猛然驚覺他們是同一人,不同時空的ㄚ公居然再互相交談
就當我覺得很神奇的情況下...夢醒了
2009年12月15日 星期二
2009年11月15日 星期日
2009年11月8日 星期日
ubuntu 9.10 開機啟動 number lock (Num Lock)
這裡有教學
但是在 /etc/X11/ 底下已經找不到gdm資料夾,因為他被移至到 /etc/底下
因此在終端機中操作順序如下:
但是在 /etc/X11/ 底下已經找不到gdm資料夾,因為他被移至到 /etc/底下
因此在終端機中操作順序如下:
sudo apt-get install numlockx //先安裝numlockx這個小程式,用來開關number lock
sudo cp /etc/gdm/Init/Default /etc/gdm/Init/Default_backup //此行只是為了備份可有可無
sudo gedit /etc/X11/gdm/Init/Default //編輯Default設定檔
然後在此文字檔中找到exit 0這一行,將以下文字加到此行之前,儲存後重新開機即可
if [ -x /usr/bin/numlockx ]; then
/usr/bin/numlockx on
fi
2009年10月25日 星期日
DirectCompute examples compile 失敗
出現 fatal error LNK1104: 無法開啟檔案 'dxerr9.lib'
因為裝的是 Microsoft DirectX SDK (August 2009) 版本的SDK
在 http://www.microsoft.com/downloads/details.aspx?FamilyID=b66e14b8-8505-4b17-bf80-edb2df5abad4&displaylang=en 這裡,我們找到以下段話:
DXERR9 library removed from the DirectX SDK
The DXERR9 library has been removed from the DirectX SDK as of the August 2009 release. The DXERR9 error look-up library has been deprecated for some time in favor of DXERR which supports a broad range of DirectX and related error codes. The DirectX SDK Error Look-up Tool uses DXERR.
很好= = ! 讓我們回到visual studio 下
解決方法:
1. 在 nBodyCS專案下按右鍵 -> 屬性 -> 組態屬性 ->連結器 -> 輸入 -> 其他相依性 ,打開編輯視窗後,找到dxerr9.lib的地方,將它改為dxerr.lib,別以為這樣就結束了,在往下一點找到d3d11_beta.lib的地方,將它改為d3d11.lib,之後按下確定就OK了。
2. 在 SimpleParticlesCS專案下如同上面的操作方式,將dxerr9.lib及d3d11_beta.lib,改為dxerr.lib及d3d11.lib,再次compile後就順利成功了。
後記:
bulid出來的檔案執行後,不知道為什麼都沒有任何動作,還在找原因... 就先寫到這... 冏
因為裝的是 Microsoft DirectX SDK (August 2009) 版本的SDK
在 http://www.microsoft.com/downloads/details.aspx?FamilyID=b66e14b8-8505-4b17-bf80-edb2df5abad4&displaylang=en 這裡,我們找到以下段話:
DXERR9 library removed from the DirectX SDK
The DXERR9 library has been removed from the DirectX SDK as of the August 2009 release. The DXERR9 error look-up library has been deprecated for some time in favor of DXERR which supports a broad range of DirectX and related error codes. The DirectX SDK Error Look-up Tool uses DXERR.
很好= = ! 讓我們回到visual studio 下
解決方法:
1. 在 nBodyCS專案下按右鍵 -> 屬性 -> 組態屬性 ->連結器 -> 輸入 -> 其他相依性 ,打開編輯視窗後,找到dxerr9.lib的地方,將它改為dxerr.lib,別以為這樣就結束了,在往下一點找到d3d11_beta.lib的地方,將它改為d3d11.lib,之後按下確定就OK了。
2. 在 SimpleParticlesCS專案下如同上面的操作方式,將dxerr9.lib及d3d11_beta.lib,改為dxerr.lib及d3d11.lib,再次compile後就順利成功了。
後記:
bulid出來的檔案執行後,不知道為什麼都沒有任何動作,還在找原因... 就先寫到這... 冏
2009年9月19日 星期六
openSUSE 安裝 Firefox 安裝 flash-plugin
首先至http://www.moztw.org/下載linux版本的firefox
抓下來的檔案為 firefox-3.5.3.tar.bz2
打開終端機後輸入
sudo tar xf firefox-3.5.3.tar.bz2 解壓縮
sudo cp -r firefox /usr/share/ 將解壓後的資料夾複製到/usr/share目錄下
sudo ln -sf /usr/share/firefox/firefox /usr/bin/firefox 建立捷徑之後就可以由命令列呼叫
sudo ln -sf /usr/share/firefox/firefox /usr/bin/mozilla-firefox 建立捷徑之後就可以由命令列呼叫
爾後要開啟firefox只需要在命令列輸入firefox或mozilla-firefox即可
接下來要安裝flash-plugin, 因為無法直接由firefox安裝
所以必須到adobe官網 http://get.adobe.com/flashplayer/ 下載
下載時請選擇 .rpm 版本
抓下來的檔案為 flash-plugin-10.0.32.18-release.i386.rpm
打開終端機後輸入
sudo rpm -Uvh flash-plugin-10.0.32.18-release.i386.rpm 直接安裝套件
sudo cp /usr/lib/flash-plugin/libflashplayer.so /usr/share/firefox/plugins 將套件複製到firefox的plugins資料夾
OK! 重新開啟firefox後完成
抓下來的檔案為 firefox-3.5.3.tar.bz2
打開終端機後輸入
sudo tar xf firefox-3.5.3.tar.bz2 解壓縮
sudo cp -r firefox /usr/share/ 將解壓後的資料夾複製到/usr/share目錄下
sudo ln -sf /usr/share/firefox/firefox /usr/bin/firefox 建立捷徑之後就可以由命令列呼叫
sudo ln -sf /usr/share/firefox/firefox /usr/bin/mozilla-firefox 建立捷徑之後就可以由命令列呼叫
爾後要開啟firefox只需要在命令列輸入firefox或mozilla-firefox即可
接下來要安裝flash-plugin, 因為無法直接由firefox安裝
所以必須到adobe官網 http://get.adobe.com/flashplayer/ 下載
下載時請選擇 .rpm 版本
抓下來的檔案為 flash-plugin-10.0.32.18-release.i386.rpm
打開終端機後輸入
sudo rpm -Uvh flash-plugin-10.0.32.18-release.i386.rpm 直接安裝套件
sudo cp /usr/lib/flash-plugin/libflashplayer.so /usr/share/firefox/plugins 將套件複製到firefox的plugins資料夾
OK! 重新開啟firefox後完成
2009年9月7日 星期一
VirtualBox 變更解析度 for openSUSE
VirtualBox:v2.2.4 r47978 openSUSE:v11.1
在VirtualBox下安裝完openSUSE後,發現解析度只能選擇800x600
其實是因為還沒安裝顯卡的driver,但因為在VirtualBox下的顯卡是模擬出來的,因此必須安裝VirtualBox自帶的顯卡driver
在安裝driver之前,系統提示要先更新 linux kernel
依據以下步驟即可完成更新
1.首先在桌面按右鍵,接著點選"在終端機中開啟"
2.開啟終端機後,輸入 sudo zypper install gcc make automake autoconf kernel-source
3.接著輸入密碼(root的密碼),等待幾分鐘後即可完成kernel的更新
完成kernel更新後,可以開始安裝driver了
首先,先將VirtualBox工具掛上去
取消自動執行
回到剛剛的終端機畫面
輸入 cd /media 切換資料夾
再輸入 ls 可看到 VBOXADDITIONS_2.2.1_47978 資料夾
接著再輸入 cd VBOXADDITIONS_2.2.1_47978 切換到VBOXADDITIONS_2.2.1_47978 資料夾
再輸入 ls 可看到 VBoxLinuxAdditions-x86.run
接下來正式要安裝了
使用Intel CPU的人,請輸入 sudo sh ./VBoxLinuxAdditions-x86.run
使用AMD CPU的人,請輸入 sudo sh ./VBoxLinuxAdditions-amd64.run
安裝完之後請重新開機。
接著會發現無法進入X-Window了 ......
好吧! 先使用root帳號進去
接著輸入startx嘗試進入X-Window
結果根本進不去... 沒關係他有提示是xorg.conf設定檔出錯
好吧! 使用vim去修改囉
輸入 vi /etc/X11/xorg.conf
進入編輯器
利用方向鍵往下移,找到 InputDevice "VBoxMouse"的地方,然後按下鍵盤上的 i 鍵進入編輯模式(下方會出現 -- INSERT -- 字樣)
將 InputDevice "VBoxMouse" 這行字串刪除後,按ESC進入命令模式
然後輸入 :wq 存檔並離開編輯器
接著回到終端機命令列輸入 reboot 重新開機
順利的話應該可以成功進入X-Window了,接著看看解析度設定式窗
YA! 有三種解析度可以設定了,雖然最大只到1024x768 (聽說跟顯示器的頻率設定有關?)
不過已經很開心了
=================
今天偶然發現,可以由以下步驟更改解析度
1. 點選左下"電腦",選擇 "控制中心"
2. 點選"圖形配接卡與顯示器"
3. 輸入root密碼,進入X11設定
4. 恭喜,可以選用其他解析度了
在VirtualBox下安裝完openSUSE後,發現解析度只能選擇800x600
其實是因為還沒安裝顯卡的driver,但因為在VirtualBox下的顯卡是模擬出來的,因此必須安裝VirtualBox自帶的顯卡driver
在安裝driver之前,系統提示要先更新 linux kernel
依據以下步驟即可完成更新
1.首先在桌面按右鍵,接著點選"在終端機中開啟"
2.開啟終端機後,輸入 sudo zypper install gcc make automake autoconf kernel-source
3.接著輸入密碼(root的密碼),等待幾分鐘後即可完成kernel的更新
完成kernel更新後,可以開始安裝driver了
首先,先將VirtualBox工具掛上去
取消自動執行
回到剛剛的終端機畫面
輸入 cd /media 切換資料夾
再輸入 ls 可看到 VBOXADDITIONS_2.2.1_47978 資料夾
接著再輸入 cd VBOXADDITIONS_2.2.1_47978 切換到VBOXADDITIONS_2.2.1_47978 資料夾
再輸入 ls 可看到 VBoxLinuxAdditions-x86.run
接下來正式要安裝了
使用Intel CPU的人,請輸入 sudo sh ./VBoxLinuxAdditions-x86.run
使用AMD CPU的人,請輸入 sudo sh ./VBoxLinuxAdditions-amd64.run
安裝完之後請重新開機。
接著會發現無法進入X-Window了 ......
好吧! 先使用root帳號進去
接著輸入startx嘗試進入X-Window
結果根本進不去... 沒關係他有提示是xorg.conf設定檔出錯
好吧! 使用vim去修改囉
輸入 vi /etc/X11/xorg.conf
進入編輯器
利用方向鍵往下移,找到 InputDevice "VBoxMouse"的地方,然後按下鍵盤上的 i 鍵進入編輯模式(下方會出現 -- INSERT -- 字樣)
將 InputDevice "VBoxMouse" 這行字串刪除後,按ESC進入命令模式
然後輸入 :wq 存檔並離開編輯器
接著回到終端機命令列輸入 reboot 重新開機
順利的話應該可以成功進入X-Window了,接著看看解析度設定式窗
不過已經很開心了
=================
今天偶然發現,可以由以下步驟更改解析度
1. 點選左下"電腦",選擇 "控制中心"
2. 點選"圖形配接卡與顯示器"
3. 輸入root密碼,進入X11設定
4. 恭喜,可以選用其他解析度了
2009年6月24日 星期三
App.config 按右鍵找不到 Edit WCF Configuration
參考 http://dotnetframework.blogspot.com/2008/01/creating-wcf-service-how-to-create.html這篇文章學習WCF時,其中有一個部分是需要新增一App.config。
作者說在app.config上按右鍵,選擇Edit WCF Configuration,結果我按右鍵找不到 Edit WCF Configuration的選項。之後再上方"工具"->"WCF Service Configuration Editor" 按下之後會出現WCF Configuration編輯視窗,此時再到App.config上按右鍵就會出現Edit WCF Configuration的選項。
作者說在app.config上按右鍵,選擇Edit WCF Configuration,結果我按右鍵找不到 Edit WCF Configuration的選項。之後再上方"工具"->"WCF Service Configuration Editor" 按下之後會出現WCF Configuration編輯視窗,此時再到App.config上按右鍵就會出現Edit WCF Configuration的選項。
2009年6月10日 星期三
提升SQLite刪除速度
先前在SQLite下使用BeginTransaction,作INSERT的動作的確有效提升速度。今日使用DELETE時,刪除30筆記錄居然花費到4秒鐘的時間,結果處理的方式是在資料庫連線字串加入Synchronous=OFF。如下:
string strConnection = @"Data source=C:\Datebase.db;Synchronous=OFF;";
SQLiteConnection myConnection = new SQLiteConnection(strConnection);
結果速度馬上由4000ms 提升到 1ms,這真是太~神奇了傑克
string strConnection = @"Data source=C:\Datebase.db;Synchronous=OFF;";
SQLiteConnection myConnection = new SQLiteConnection(strConnection);
結果速度馬上由4000ms 提升到 1ms,這真是太~神奇了傑克
2009年5月22日 星期五
將某日期欄位與數值欄位相加後做條件判斷
假設有某一資料表為Schedule裡面有三個欄位分別為
AdName(廣告名稱),ShowDate(播放日期)和ShowDays(播放天數),內容如下
所以
廣告A 的期限到2009-05-20 00:00:00
廣告B 的期限到2009-05-20 00:00:00
廣告C 的期限到2009-05-23 00:00:00
假設我們要找尋2009-05-19還在播放的廣告,就可以使用以下語法:
SELECT * FROM Schedule
WHERE DATE_ADD(ShowDate,INTERVAL ShowDays DAY ) > DATE('2009-05-27 00:00:00')
AND DATE(ShowDate) <= DATE('2009-05-27 00:00:00')
AdName(廣告名稱),ShowDate(播放日期)和ShowDays(播放天數),內容如下
AdName | ShowDate | ShowDays |
廣告A | 2009-05-10 00:00:00 | 10 |
廣告B | 2009-05-15 00:00:00 | 5 |
廣告C | 2009-05-20 00:00:00 | 3 |
所以
廣告A 的期限到2009-05-20 00:00:00
廣告B 的期限到2009-05-20 00:00:00
廣告C 的期限到2009-05-23 00:00:00
假設我們要找尋2009-05-19還在播放的廣告,就可以使用以下語法:
SELECT * FROM Schedule
WHERE DATE_ADD(ShowDate,INTERVAL ShowDays DAY ) > DATE('2009-05-27 00:00:00')
AND DATE(ShowDate) <= DATE('2009-05-27 00:00:00')
2009年5月21日 星期四
在做資料SELECT時,順便將特定值轉換成要顯示的文字
有時候我們會將某些欄位以數字的資料形態來儲存
假設有一Table(Student)含有三個欄位1. Number(long) 2.Name(varchar) 3.Sex(bool)
內容如下:
Number Name Sex
9701001 Jim 1
9701002 Jack 1
9701003 May 0
我們希望Select出來的DataTable如下:
Number Name Sex
9701001 Jim 男
9701002 Jack 男
9701003 May 女
這時可以利用以下的語法來解決
SELECT Number,Name,CASE Sex WHEN '0' THEN '女' WHEN'1' THEN '男' END AS Sex FROM Student
假設有一Table(Student)含有三個欄位1. Number(long) 2.Name(varchar) 3.Sex(bool)
內容如下:
Number Name Sex
9701001 Jim 1
9701002 Jack 1
9701003 May 0
我們希望Select出來的DataTable如下:
Number Name Sex
9701001 Jim 男
9701002 Jack 男
9701003 May 女
這時可以利用以下的語法來解決
SELECT Number,Name,CASE Sex WHEN '0' THEN '女' WHEN'1' THEN '男' END AS Sex FROM Student
2009年4月20日 星期一
2009年4月12日 星期日
PICT 的使用方法
PICT必須在命令列底下執行
首先必須建立ModelFile檔案,然後將我們要生成測試用例的條件寫在裡面
先在c:底下建立一個文字檔(ex. test.txt)
編輯 test.txt 建立內容如下:
姓名:無,有
性別:無,女,男
生日:無,有
然後存檔
在command line底下輸入如下:
C:\>pict test.txt
就會出現
姓名 性別 生日
有 女 有
無 無 無
有 男 無
有 無 有
無 女 無
無 男 有
ps.在PICT的安裝目錄下有一說明文檔 PICTHelp.htm
ModelFile的詳細格式可參考說明文檔
首先必須建立ModelFile檔案,然後將我們要生成測試用例的條件寫在裡面
先在c:底下建立一個文字檔(ex. test.txt)
編輯 test.txt 建立內容如下:
姓名:無,有
性別:無,女,男
生日:無,有
然後存檔
在command line底下輸入如下:
C:\>pict test.txt
就會出現
姓名 性別 生日
有 女 有
無 無 無
有 男 無
有 無 有
無 女 無
無 男 有
ps.在PICT的安裝目錄下有一說明文檔 PICTHelp.htm
ModelFile的詳細格式可參考說明文檔
2009年4月11日 星期六
安裝TestLink時發生錯誤的處理
本次使用的版本
MySQL : 5.1.30
Apache : 2.2.11
PHP : 5.2.9-2
TestLink : 1.7.5
首先安裝MySQL 時,一切都很順利,接下來安裝 Apache時也很ok,再來安裝 PHP時發生 GetObject的錯誤,不過先不理他繼續裝完。
接下來要重新啟動Apache的時候發生問題,無法啟動伺服器。到 Apache 安裝目錄下的 conf 目錄,然後開啟 httpd.conf 檔。找到下面的地方
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "D:/app/PHP/"
Action application/x-httpd-php "D:/app/PHP/php-cgi.exe"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache2_2.dll"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache2.dll"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
將他們改成
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "D:/app/PHP/"
Action application/x-httpd-php "D:/app/PHP/php-cgi.exe"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache2_2.dll"
#PHPIniDir "D:/app/PHP/"
#LoadModule php5_module "D:/app/PHP/php5apache2.dll"
#PHPIniDir "D:/app/PHP/"
#LoadModule php5_module "D:/app/PHP/php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
存檔後,Apache就可以正常啟動了
將testlink放到 apache 上也很順利的開啟 testlink的安裝頁面了
繼續進行到 testlink 安裝條款確認的時候,又發生 httpd.exe 記憶體不能為read的錯誤
把PHP安裝路徑下的 libmysql.dll複製到 windows\system32 ,然後從新啟動 apache,再次執行testlink的安裝就順利完成了
MySQL : 5.1.30
Apache : 2.2.11
PHP : 5.2.9-2
TestLink : 1.7.5
首先安裝MySQL 時,一切都很順利,接下來安裝 Apache時也很ok,再來安裝 PHP時發生 GetObject的錯誤,不過先不理他繼續裝完。
接下來要重新啟動Apache的時候發生問題,無法啟動伺服器。到 Apache 安裝目錄下的 conf 目錄,然後開啟 httpd.conf 檔。找到下面的地方
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "D:/app/PHP/"
Action application/x-httpd-php "D:/app/PHP/php-cgi.exe"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache2_2.dll"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache2.dll"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
將他們改成
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "D:/app/PHP/"
Action application/x-httpd-php "D:/app/PHP/php-cgi.exe"
PHPIniDir "D:/app/PHP/"
LoadModule php5_module "D:/app/PHP/php5apache2_2.dll"
#PHPIniDir "D:/app/PHP/"
#LoadModule php5_module "D:/app/PHP/php5apache2.dll"
#PHPIniDir "D:/app/PHP/"
#LoadModule php5_module "D:/app/PHP/php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
存檔後,Apache就可以正常啟動了
將testlink放到 apache 上也很順利的開啟 testlink的安裝頁面了
繼續進行到 testlink 安裝條款確認的時候,又發生 httpd.exe 記憶體不能為read的錯誤
把PHP安裝路徑下的 libmysql.dll複製到 windows\system32 ,然後從新啟動 apache,再次執行testlink的安裝就順利完成了
2009年3月24日 星期二
於程式執行階段實現 Alt+Tab 切換視窗功能(使用Win32 API)
這裡做一個簡單的測試,我們用TestSwitch程式執行的一個名為Form1.exe的視窗程式,當Form1.exe啟動後我們利用Alt+Tab或其他方式,將Form1.exe的視窗蓋住了,這時我們希望在TestSwitch程式中將Form1.exe的視窗再帶到螢幕的最前面,該怎麼做呢?
//要使用Win32 API前需要先加入
using System.Runtime.InteropServices;
public class TestSwitch
{
//然後使用下面兩的API
[DllImport("user32.dll")]
static extern IntPtr SetActiveWindow(IntPtr hWnd);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
//用來存放下面Form1.exe程序的物件
private System.Diagnostics.Process formProc ;
//假設有一支名為 Form1.exe 的視窗程式
//先使用此方法執行(開啟)這支視窗程式
public void Run()
{
//指定要開啟的檔案名稱
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("Form1.exe");
//開啟檔案並回傳處理程序(之後需要此處理程序來取得Form1.exe的主視窗Handle值)
formProc = System.Diagnostics.Process.Start(startInfo);
}
//切換至指定的視窗(利用此方法將Form1.exe的視窗帶到螢幕的最前面)
public void Switch()
{
//切換視窗時需要該程序主視窗的Handle值(注意:是視窗的Handle不是程序的Handle)
//第一步將該視窗設為作用中
SetActiveWindow(formProc .MainWindowHandle);
//第二步將該視窗帶到最前面
SetForegroundWindow(formProc .MainWindowHandle);
//完成!
}
}
//要使用Win32 API前需要先加入
using System.Runtime.InteropServices;
public class TestSwitch
{
//然後使用下面兩的API
[DllImport("user32.dll")]
static extern IntPtr SetActiveWindow(IntPtr hWnd);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
//用來存放下面Form1.exe程序的物件
private System.Diagnostics.Process formProc ;
//假設有一支名為 Form1.exe 的視窗程式
//先使用此方法執行(開啟)這支視窗程式
public void Run()
{
//指定要開啟的檔案名稱
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("Form1.exe");
//開啟檔案並回傳處理程序(之後需要此處理程序來取得Form1.exe的主視窗Handle值)
formProc = System.Diagnostics.Process.Start(startInfo);
}
//切換至指定的視窗(利用此方法將Form1.exe的視窗帶到螢幕的最前面)
public void Switch()
{
//切換視窗時需要該程序主視窗的Handle值(注意:是視窗的Handle不是程序的Handle)
//第一步將該視窗設為作用中
SetActiveWindow(formProc .MainWindowHandle);
//第二步將該視窗帶到最前面
SetForegroundWindow(formProc .MainWindowHandle);
//完成!
}
}
2009年2月9日 星期一
MySQL Query Browser 無法編輯(Edit)資料列
使用MySQL Tools時,發現某些資料表無法直接使用GUI編輯,查了一下發現只要該資料表沒有設定任何Primary Key時就會無法編輯。所以只要想辦法設個Primary Key後,就可以編輯了。
2009年2月5日 星期四
2009年1月16日 星期五
2009年1月14日 星期三
搜尋時間區間內的所有區間
假設我們要搜尋Start與End時間點內所有的區間(3,4,5,6)
用法如下:
string expression = string.Format("(Start_DateTime<='{0}' AND End_DateTime>='{0}') OR (Start_DateTime<='{1}' AND End_DateTime>='{1}') OR (Start_DateTime>='{0}' AND End_DateTime<='{1}') OR (Start_DateTime<='{0}' AND End_DateTime>='{1}')", startTime, endTime);
DataRow[ ] rows = table.Select(expression);
//此時找到的會是 3,4,5,6 這四個區間
訂閱:
文章 (Atom)