2010年11月29日 星期一

Set Print Quality of Excel

Recently, Fox spent a few hours on changing print quality of Excel app. After googling some docs, Fox found that the set_PrintQuality of PageSetup API has the capability to do so.

In some examples, they all says that the correct way to call this API is "set_PrintQuality(new object[]{200, 200}, Type.Missing)".

After some testing, Fox found the following way works:
Worksheet wsSheet = (Worksheet)wbExcel.Sheets[0]; 
PageSetup psPrinter = wsSheet.PageSetup; 
psPrinter.set_PrintQuality(objMissing, new int[] { 200, 200 });
The first argument should be missing and put the int array in the second argument.

2010年11月20日 星期六

HTC Tattoo 刷進 Android 2.2 Froyo - 第二發=> SPQRom CM6

SPQRom CM6 也是在 xda 上一個較穩定且多人使用的一個 ROM,大家可以在這個網址中找到原始作者(ivendor)的文章:http://forum.xda-developers.com/showthread.php?t=767049。所以,這篇就會以他的 ROM 為主,刷進另一個版本的 Froyo。在開始這一篇之前,還請大家先參考一下前一篇,關於刷進 fyodor ROM 的流程,因為許多流程都跟它是一樣的。


0. 下載檔案

a. ROM: 從上面的那個網址中可以找到下載的網址,它是:http://www.multiupload.com/Y7CFP5XWAV。它的大小跟 fyodor 的差不多。
b. GApps: 跟前一篇一樣,網址在:http://forum.xda-developers.com/showthread.php?t=796696
c. Market v2: 老實說它是幹嘛的,福克斯也不知道,只是在 ROM 的網址中有看到 ivendor 有放出來,所以就一起下載回來刷了:http://forum.xda-developers.com/showthread.php?t=767049


1. 備份及清除 data 及 cache

最近在看文章,有些人是說刷進 Froyo 的時候,並不需要執行 wipe data/factory res 及 wipe Dalvik-cache 的行為。可是,福克斯認為,由於我們大家都不是 Android ROM 運作的專家,所以還是 wipe 一下會比較好。 wipe 這些東西的目的是在於清除先前 rom 所設定的預設值,及 Android 為了加快應用程式執行速度而產生的 cache。所以,這些東西,如果要刷進不同版本(1.6 => 2.x) 的時候,清除一下會比較好。

因為這邊的動作跟前一篇的方式一樣,所以就用一樣的照片囉... :p


Wipe:

2. 刷進 Android 2.2 Froyo - SPQRom CM6

跟之前的方式一樣,只需要選擇 SPQRom-0.6.zip 按下確定就開始囉,這個動作大約會耗掉 1 分 30 秒的時間可以完成。



3. 加刷 GApp-tiny 及 Market v2

老實說,福克斯在第一次刷的時候,忘了這件事,所以,又再補刷一次。不過,大家可以在刷完 Froyo 的時候,就直接刷這兩個 zip (這算是應用程式的安裝,並不算是 ROM 的更改)。

這個動作比較重要的是:一定要先刷 GApp 再刷 Market v2。因為 GApp 中有原版的 Market 程式,而 Market v2 一定是用來修改 Market 的設定,讓大家的 Tattoo 可以看到之前看不到的應用程式。

4. 重新開機=>第一次進入 Froyo

重新開機約 1 分鐘的時候,可以看到下面這個開機畫面:


大約過了 2 分 12 秒 (含先前的一分鐘),就可以第一次進入 Froyo 了。前面的設定畫面福克斯就不再多說了,不福克斯這次並沒有遇到鬼擋牆的情況就是了。下面這個畫面就是進入 Froyo 的畫面。


5. 總結

跟 fyodor 的版本相比,福克斯看來它有下面這三個特點:
a. 許多客製化的畫面,看起來還不錯。



b. 多了 ADWLauncher 及 CyanogenMod 兩個選單,還滿好的,只不過它只有英文版的畫面,對一些英文不好的朋友可能會有些不方便囉。



下面是在改語言的時候發現已經被灌了日文跟谷歌的輸入法:

c. 當啟動 Live Wallpaper 的時候,感覺用起來比 fyodor 的版本還慢。這不知道是不是因為兩個 ROM 預先安裝的應用程式不同的關係。所以這部份,還請大家自己去感受一下囉。

來一張撥 YouTube 的畫面當作結束:

2010年11月15日 星期一

HTC Tattoo 刷進 Android 2.2 Froyo - fyodor ROM


刷 2.2 的文章又來了,沉漠了一段時間。福克斯真的很忙,忙到一整個不行。最近,福克斯又開始刷機器了。從 XDA 的大神們那邊,福克斯找到了一些 2.2 的 ROM。所以,最近有時間的話,會開始一系列刷進各種不同版本的文章。

首先,第一個要刷的是對岸的高手 fyodor 的版本,他也是第一個將 android 2.2 帶進 tattoo 的高手。所以,就以他的 ROM 當作開始....


0. 準備檔案

下載 ROM:http://forum.xda-developers.com/showthread.php?t=644616 (福克斯下載的是 0.7.2c的版本)

下載 gapp:http://forum.xda-developers.com/showthread.php?t=796696 (每個版本都行,但福克斯等下用的是 tiny 版)

1. 進入 recovery mode 進行備份


跟先前一樣,要按下 [Home] + [Power] 鍵進入 Recovery Mode。

接著從 [Back/Restore] 中進行 Nand 的備份。

2. 刷進 Android 2.2 Froyo

跟上次一樣,在刷進去之前,也要先 wipe 一下 data/cache等等...

接著,就進入刷機選單,福克斯之前先把 v0.7.2 的 rom 改成 update.zip,所以這邊先選擇 update.zip 檔(約1m 17s):

接著刷 gapps 檔(約10s):

3. 重新開機進入 Froyo

接著就是重新開機了。

大約等待約 1m 大家就可以看到紅眼的畫面了:

總共等了快 2 分鐘後就可以進入安裝畫面,老實說,福克斯也不知道為什麼會出現這個畫面,應該是 gapps tiny 版搞的鬼。因為之前福克斯有刷過沒有 gapps 的版本,不會出現這個畫面。

在福克斯選擇 [Setup Wizard] 後就出現傳統的 Google Account 的設定畫面了,相信大家應該知道怎麼操作,在此就不再多做介紹了:

在這次的安裝中,福克斯遇到鬼擋牆的事情,也就是這個 Google Account 設定畫面一直重複出現,後來遇到這個 Setup Wizard Crash 的大好良機,就讓福克斯逃離這個鬼擋牆的問題。不過,老實說,福克斯這個版本刷了三次,只有一次遇到這個情況,逃離後,也沒有對使用造成任何的影響。

接著就是進入 Froyo 了....真是爽啊....

看一頁版本畫面是一定要的啦:

4. Live Wallpaper

進到 Froyo 後,當然要啟動一下它的 Live Wallpaper 了。在啟動前,福克斯設定了一下 WIFI 進入 Android Market 下載了一個免費的 Live Wallpaper。


啟動後的畫面,真是一整個爽啊,大家看,那顆地球會自已轉哦,而且還能用手去讓它轉快一點(當然福克斯知道這是一張靜態的畫面啦,大家看不出來的囉)。

5. 總結

這個版本算是已經出來很久的版本,而且很穩定,經過 XDA 的大神們的測試,只有 Camera 及 FM 不能用,其它的功能都能用。

效能面來看的話,這版本的速度真是沒話說,一個字『快』(尤其是沒有安裝 gapps 的情況下,真是快到一整個不行)。不過,啟動 Live Wallpaper 後,它的速度就跟 Android 1.6 的差不多了。

Bluetooth 部份,照 XDA 的大神描述,它是可以使用的功能。可是福克斯試了一下傳檔的功能,它會出現經常性的斷線情況,所以無法正常傳檔。

打電話的部份,福克斯有跟福克嫂在她不知情的情況下通過電話,她也沒發現福克斯已經把手機昇級到 Android 2.2 了(穩定)。

下載 Android Market 上的應用程式部份,這也是順到一整個不行,而且它不會出現 Android 1.6 中福克斯遇到無法下載的問題。

3G 上網部份,由於福克斯沒有 3G 門號,所以也沒辦法測試。這邊還請大家自己試試看囉....

總結:如果大家不大需要 FM and Camera 的話,福克斯強烈建議大家刷進 android 2.2 試試,真的滿好的。

2010年5月29日 星期六

mojoPortal Image Gallery(圖庫) 中 Silverlight 無法使用之問題

今天福克斯設定了一個 Image Gallery(圖庫) 在某個頁面上。設定的時候,福克斯發現,裡面居然有一個用 Silverlight 來呈現圖片的功能。

福克斯當然很開心地把它給勾選起來,可是,試了再試,怎麼試都是一遍黑,什麼東西都沒有。

最後福克斯只好放棄,打開它的 HTML 原始碼起來看,並且一一做測試。

在測試的過程中發現,它的 Silverlight 的 binary 是放在:ClientBin/Vertigo.SlideShow.xap。可是,福克斯用 browser 就是無法找到它。

後來,福克斯想起來, Windows 2003 如果沒有設定 MIME Type,它將無法被下載回去。

所以,只要打開 IIS 6 在本機電腦的項目上按右鍵,選擇內容,並在 MIME Type 上加入: .xap => application/x-silverlight-app 的對應。它就可以正常運作了。

ps. 通常 Server 都不會灌這種 Silverlight 或 Flash 的東西,所以即使福克斯的電腦有灌,還是沒辦法在 mojoPortal 中看到的.....

2010年5月26日 星期三

mojoPortal - 開啟 SMTP 設定值

mojoPortal 的 SMTP 設定是在 web.config 中進行設定。可是,一般的 CMS 都有辨法在使用者介面中進行設定,為什麼 mojoPortal 為行呢?

其實,它也是可以的,不過,要使用比較 tricky 的方法。在 web.config 中,有一個參數叫 EnableSiteSettingsSmtpSettings,它可以讓每一個站台有自己的 SMTP 設定。把這個值改成 "true" 之後,就可以在設定畫面中,可以找到專屬的 SMTP 設定。範例如下:

<add key="EnableSiteSettingsSmtpSettings" value="true"/>

其中,這裡的『每一個站台』是指,mojoPortal 可以建立多重站台的功能。當我們把這個值改成 "true" 時,每一個站台都能設定專屬的 SMTP 了。

如果大家想要固定 SMTP 的設定值的話,也可以修改 web.config 的下面設定:
<add key="SMTPServer" value="localhost/">
<add key="SMTPRequiresAuthentication" value="false"/>
<add key="SMTPUseSsl" value="false"/>
<add key="SMTPPort" value="25"/>
<add key="SMTPUser" value="UserName"/>
<add key="SMTPPassword" value="UPassword"/>
<add key="SMTPTimeoutInMilliseconds" value="30000"/>



讓 Windows Application 變成一個 Service

要讓一個 Windows Application 變成一個 Windows Service 可以使用 Windows Resource Kits。由於福克斯是使用 Windows 2003 Server,所以可以從這裡找到載點。

最主要的方式是使用 InstSrv.exe 跟 SrvAny.exe 這兩個程式。完整的流程可以參考 Microsoft 的這個網頁:http://support.microsoft.com/kb/137890在這個網頁中,我們可以依照順序建立一個 service,不過卻無法指定執行的路徑及程式的參數。這個問題可以在 registry 中加入下面兩個字串值即可:

AppDirectory:程式執行路徑
AppParameters:程式的參數

使用 SrvAny 來建立 Windows Service 其實還有另一個大問題:無法得知停止服務的訊號。這部份福克斯還正在測試當中,如果有什麼好消息會發在另一篇文章之中。

2010年5月25日 星期二

mojoPortal - 將 Administration, 文件管理等項目從頁面中移除

最近,福克斯在學習如何使用 mojoPortal。當然,這也是跟公司的事情有關係。mojoPortal 具備還算完整的功能,只不過,有些項目的畫面中文化並不完全。

另外,也由於時間的關係,福克斯無法深入研究 mojoPortal 的修改方式。所以,只好使用無敵大絕招:把一些不安全的項目從選單中移除。

移除的方法其實很簡單,因為 mojoPortal 是使用 Master Page 的方式。

所以,我們只需要修改一下 skin 中的 layout.Master ,將下面項目註解起來就可以了:

<!--
<portal:adminmenulink id="lnkAdminMenu" runat="server">
<portal:filemanagerlink id="lnkFileManager" runat="server">
-->

2010年5月12日 星期三

IIS7 Microsoft VBScript runtime error '800a01ad'

Fox met this problem this morning. After some investigations, Fox found that it is caused by the 64bis and 32bits.

This problem will happen only if you install a 32bits component in a 64 bits machine. To solve it can be done by changing the "Application Pool" setting of your webapp or website to support 32 bits(right click on your application pool and choose advanced settings).

2010年4月19日 星期一

HTC Tattoo 刷 XDA Eclair 2.1 Step by Step

自從福克斯刷完 XDA Eclair 2.1 的 ROM 後,陸陸續續就有人來問福克斯是如何完成這件事。所以,應大家要求,福克斯把完整的刷機流程寫出來:

0. 下載 Image

大家可以在這個網址(http://forum.xda-developers.com/showthread.php?t=662339)中找到載點,並將它放到 SD 卡的根目錄中。

1. 重新開機進 Recovery Mode


要進 Recovery Mode 的方法有很多種,福克斯最常用的就是按 Home + 撥號鍵,如下圖:

如果大家無法正常進入 Recovery Mode,而是出現一個『驚嘆號』的話或者不是跟這個畫面一樣的話,那代表各位沒有安裝官版 Recovery Image,完整流程請參考 http://forum.xda-developers.com/showpost.php?p=5927964&postcount=1 。注意哦,這邊福克斯採用的 Recovery Image 是別人從官版中改來的,而非先前教大家的那個 Custom Recovery Image 哦。

另外,這個 Recovery Image 的回上一層是:Volume Down。由於字型的關係,某些字會看不到;確定按鈕是上、下、左、右鍵中間的按鈕。記得,下面的說明,每一個新項目都是要回到最上層選單再開始選擇,並且按下中間的按鈕當作確定哦。

2. 進行 Nand 備份

選擇 Backup/Restore

選擇 Nand backup

備份中

備份完成(按 Volume Down 數次回到最上層)

3. 清除資料

由於刷新的 ROM 並不會把 data 全部 format 掉,所以要先進行資料的清除:

選擇 Wipe

選擇 Wipe data/factory reset

清除資料完成(按 Volume Down 數次回到最上層)

4. 安裝 Eclair 2.1

選擇 Flash zip from sdcard

選擇 XDAECLAIRv2.zip 檔(是的,福克斯還刷過 fyodor 的 ROM,不過這裡是以 XDAECLAIR 為主)

刷機中,約 1 分 53 秒可完成

刷機完成準備重新開機


5. 第一次開機

第一次開機確實要等很久,約 1 分 02 秒才能看到下面這個畫面

預設介面為英文,可選擇 Change Language 來選成中文

中文在最下面

由於福克斯經費不夠,並沒有申辨任何 3G 門號,所以只能在有無線網路的地方進行設定。下一步按下去後,它會要求設定 google account,因沒有網路,就暫時先按略過。反正,等一下也可以再重新設定上去。

開機後的畫面

關於手機的資訊

6. 後悔了嗎?沒關係復原回去就好了

在之前的那篇文章中有提供,這個 ROM 感覺起來是 workable,但是一些小細節還沒很完整。所以,如果大家後悔刷進這個 ROM 沒關係,因為我們在前面的步驟有進行備份。刷回去的方式,也是先關機,進入 Recovery Mode,選擇 Backup/Restore

選擇 Nand restore

選擇一個很奇怪的資料夾(Hxxxxx 開頭的),再選擇最後一個項目

再等待一段時間後,就可以選擇重新開機的按鈕,就可以復原到原本的世界了。


7. 相關資訊:

第一次開機 Tattoo => Nexus One 開機畫面約: 1 分 02 秒

第一次開機總時間約: 4 分 06 秒

2010年4月16日 星期五

HTC Tattoo 刷 ROM 經驗談 - XDA Eclair 2.1 (Android 2.1 哦)

最近因為同事們紛紛開始刷機,福克斯也決定拿出自己的 Tattoo 試刷一些 ROM 來用用看。

XDA Eclair 2.1 是 XDA 上另一個較為火紅的 ROM,從它的名子看起來,它會是一個 Android 2.1 的 ROM(Android 2.1 的名子就叫 Eclair)。刷完證實它是 Android 2.1。網址如下:http://forum.xda-developers.com/showthread.php?t=662339&page=2

用起來的感覺如下:
1. 第一次開機速度很慢。
2. 操做起來的速度還不錯,比官方的 ROM 快多了。
3. Android 2.1 的動態桌面可以正常運作。
4. GPS, Wifi, Compass, 通話都可以使用,但是相機無法使用。
5. 可用 Bluetooth 收檔,但不可傳檔。
6. Android Market 不知道連結到何處,很多應用程式都找不到了。
7. 中文可正常顯示,但無中文輸入法,需額外安裝。
8. 很多功能都具備半透明校果,看起來很爽,不過不知有何用處。

結論:用起來整體感覺很不錯,不過完整性還不大夠。

照片如下(因為我找不到 ShootMe,只好用另一隻手機拍它了。):

開機畫面

第一次使用之設定畫面

動態桌面

待機畫面

2010年3月23日 星期二

HTC Tattoo Custom ROM - fyodor ROM

經過一段時間的發展,Tattoo Custom ROM 似乎是以 fyodor ROM 較為火熱。

fyodor ROM 主要是做了一些修改,目標是讓 Tattoo 的執行速度加快。所以,他將 HTC 的所有元件都拿掉,並且重新連結了一些項目。

說真的,fyodor 來自對岸(中國大陸),他的 ROM 目前是最多人在討論的 ROM 之一。現在似乎有許多人已經開始著手進行刷機的行為。不過,在此,福克斯還是覺得,目前,並沒有任何刷機的需要。最主要的原因是:

目前的 ROM 多是
1. 以加快速度為主、
2. 加入一些較為方便的 ap 或 linux command 、
3. 真正較核心的問題尚未解決:bluetooth, android 2.1, etc.、

不過,如果大家真的對 Custom ROM 有興趣,福克斯還是推薦大家先試試 fyodor ROM,網址如下: http://forum.xda-developers.com/showthread.php?t=644616

2010年3月18日 星期四

Flex 透明背景之應用程式

要讓 Flex 的應用程式能在 HTML 上有一個透明的背景,主要是透過下面這兩個方式的組合:

1. Flash 的參數設定
Adobe 在設計 Flash platform 的時候,就有想到這一點,所以,當我們使用 embed 或 object 的方式來叫起 Flash 程式的時候,可以加入 wmode 的參數。

wmode 這個參數可以有三種設定值:window, opaque, transparent, direct, gpu。針對這裡的應用,我們要使用 transparent。不過,在舊版的 Flash player 中,wmode 的設定值會影響到 Flash platform 在執行時的效能。另外,wmode 的預設值是 window。其它相關的資訊,大家可以參考下面這個網址:http://www.adamia.com/blog/visualizing-flash-wmode-options

2. Application 的背景設定
當有了一個透明背景的 Flash player 後,下一步就是設定 application 讓它有一個透明的背景。最主要的方式 ,就是修改它的:backgroundAlpha 屬性,讓它有個不同的透明度。


2010年3月15日 星期一

HTC Tattoo Android Market 昇級(其實是破解)版

各位使用 HTC Tattoo 的同好們,你們是否常發生在 android market 上找不到想要的程式呢?

取得 root 權限的好處又多了一個了:那就是能在 android market 上搜尋到更多的程式了!!

XDA 的大師(moneytoo) 已經幫我們重新修改好 android market,讓 tattoo 可以搜尋到原本搜尋不到的程式。他的改法主要是:
1. 讓 HTC Tattoo 具備一個假的 320x480 的螢幕設定檔。嚴格來說,他其實是在送出 android market 查詢式時,加入了一個 320x480 的參數。
2. 讓 HTC Tattoo 具備一個假的 auto focus 的相機。嚴格來說,他也是加入另一個 auto focus 的參數。


在修改之前,還請大家先上一下上面的網頁下載 Tattoo-Market-patched-v2.zip 檔案。完整的修改步驟如下:

1. 取得 root 權限
2. 接上手機
3. adb pull /system/app/Vending.apk Vending_Old.apk
(用來備份舊的 android market)
4. adb push Vending-Tattoo-patched.apk /system/app/Vending.apk
(用新 android market 來取代舊的)
5. adb rm -r /data/data/com.android.vending
(清除原本的 android market 的 cache )
6. 進入『設定』->『語言(地區)與文字』->『選取語言(地區)』-> English
(這個步驟很重要,因為如果沒有設定的話,android market 會一直在 EULA 的頁面,無法按「我接授」)
7. adb reboot
(重開 HTC Tattoo)
8. 打開 android market 在 EULA 中按下「我接受」,這樣就搞定了。

老實說,moneytoo 有提到,改完後可以搜尋到 google goggles 及 twidroid。不過,福克斯對這兩個應用程式並沒有什麼興趣,所以改完之後,似乎也沒什麼多大的用處就是了。


2010年3月10日 星期三

HTC Tattoo Custom ROM 的近況

自從可以 root 以來,福克斯一直很關心 custom rom 的狀況。過了一週,目前的 custom rom 並沒有什麼較突破性的發展。

以目前的狀況來說,有下面三個 custom rom 的出現:




其中,以 AzusaROM 及 5faif ROM 最為有名。

不過,福克斯目前還沒有想要刷進任何的 rom 裡面。

因為,這兩個 rom 似乎都沒有什麼比較特殊之處,像第一個 rom 是一個測試用的 rom,不知道作者會不會針對版友的回應,做一些的修改。而第二、三個 rom 雖然看起來很不錯,不過除了原先我們可以自己加的功能外,似乎又沒有加入什麼新功能。

所以,還請各位 Tattoo 的同好們,等待、等待、再等待了....

2010年3月8日 星期一

HTC Tattoo 安裝 Recovery Image

Recovery Image 是放置在 recovery partition 中,用來備份或復原系統的程式。進入這個模式(Recovery Mode)的方法是:

1. 關機
2. 按住 Home(房子鍵) + Power 開機

大家可以先試看看,看是不是能順利進入這個模式。嚴格來講,這個 image 預設的情況下,應該要存在,可是,福克斯的 tattoo 就是找不到這個 image。後來,福克斯才發現,原來它根本就不存在。

Recovery mode 最主要的功用是:當大家在刷機的過程中,如果遇到問題,使用 recovery image 就可以順利地將原本的磁區還原回去。

目前,在 XDA 中最常用的 recovery image 是 mainfram3 所做的 custom recovery image,網址是:http://forum.xda-developers.com/showthread.php?t=639486

所以,這篇的重點在於教大家如何安裝 recovery image。

1. 取得 root 權限,如果大家忘了怎麼做,請參考 http://abev66.blogspot.com/2010/02/rooting-tattoo.html。其中,最重要的是,一定要有 tattoo-hack.ko 檔,如此才能修改檔案系統。

2. 下載下列檔案
a. TCRI.alpha.zip(可從上面的網址中找到),解開後得到: TCRI.alpha.img。
b. flash_image.zip(可從上面的網址中找到),解開後得到:flash_image。

3. 執行下列指令:
========= In you machine =============
adb push TCRI.alpha.img /sdcard/
adb push flash_image /data/local/bin/
adb shell
(進入 Tattoo 手機的命令列模式)
========= In Android phone ===========
$ su
# insmod /data/local/bin/tattoo-hack-ko
# chmod 755 /data/local/bin/flash_image
# /data/local/bin/flash_image recovery /sdcard/TCRI.alpha.img
(一切搞定)
4. 關機,按住 Home + Power 開機,進入 recovery mode。當成功,可以看到像下面畫面的影像。


5. 插上 USB 使用 adb shell 進入手機,進行備份。
========= In you machine =============
adb shell
(進入 Tattoo 手機的命令列模式)
========= In Android phone ===========
/ # backup.sh
(執行後可以看到下面的訊息)
/sdcard is not mounted. Mounting... Dumping boot partition Dumping system partition Skipping cache partition Dumping userdata partition All done. Backup stored in /sdcard/Backup/{DATE_TIME}
(一切搞定)

6. 如果需要復原可以執行下面指令
/ # restore.sh