精品久久香蕉国产线看观看亚洲,亚洲欧洲日产v特级毛片,亚洲精品第一国产综合精品http://m.tkk7.com/kemi/category/8727.html從前有座山zh-cnFri, 23 May 2008 15:09:39 GMTFri, 23 May 2008 15:09:39 GMT60(親測)對付惡心的加密pdf文件引起的無法復制的問題http://m.tkk7.com/kemi/archive/2008/05/23/202342.htmlKimiKimiFri, 23 May 2008 02:56:00 GMThttp://m.tkk7.com/kemi/archive/2008/05/23/202342.htmlhttp://m.tkk7.com/kemi/comments/202342.htmlhttp://m.tkk7.com/kemi/archive/2008/05/23/202342.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/202342.htmlhttp://m.tkk7.com/kemi/services/trackbacks/202342.html 下載 專業閱讀識別軟件 cajviewer
http://count.ddooo.com/redirect.asp?downurl=http://2.ddooo.com/uuauth//down/10/CAJViewer_9134.rar

工具-》選擇圖像截圖(文字區域截圖)
選好后,點 工具-》文字識別,幾秒后將出現你需要的那段文字,復制到剪貼板,識別率非常高,個別字不清楚的,自己修改一下就可以了。

123.JPG

223.JPG?
嘿嘿,任何東西沒有絕對的安全!


Kimi 2008-05-23 10:56 發表評論
]]>
chm文件無法正常顯示網頁問題的解決辦法http://m.tkk7.com/kemi/archive/2008/04/28/196721.htmlKimiKimiMon, 28 Apr 2008 03:07:00 GMThttp://m.tkk7.com/kemi/archive/2008/04/28/196721.htmlhttp://m.tkk7.com/kemi/comments/196721.htmlhttp://m.tkk7.com/kemi/archive/2008/04/28/196721.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/196721.htmlhttp://m.tkk7.com/kemi/services/trackbacks/196721.html???解決辦法:
?? 建立一個reg文件,輸入:
?? REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000003
?? 保存,加入注冊表中即可。

Kimi 2008-04-28 11:07 發表評論
]]>
socket---更多的關注底層http://m.tkk7.com/kemi/archive/2008/04/03/190511.htmlKimiKimiThu, 03 Apr 2008 00:56:00 GMThttp://m.tkk7.com/kemi/archive/2008/04/03/190511.htmlhttp://m.tkk7.com/kemi/comments/190511.htmlhttp://m.tkk7.com/kemi/archive/2008/04/03/190511.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/190511.htmlhttp://m.tkk7.com/kemi/services/trackbacks/190511.htmlhttp://202.120.127.201",也無法建立連接。現在,如果在這臺主機上運行一個FTP服務軟件(該軟件將打開一個Socket, 并將其綁定到21端口),再在這臺主機上運行一個Web 服務軟件(該軟件將打開另一個Socket,并將其綁定到80端口)。這樣,在另一臺主機或同一臺主機上執行ftp 202.120.127.201,FTP客戶軟件將通過21端口來呼叫主機上由FTP 服務軟件提供的Socket,與其建立連接并對話。而在netscape中輸入"http://202.120.127.201"時,將通過80端口來呼叫主機上由Web服務軟件提供的Socket,與其建 立連接并對話。
在Internet上有很多這樣的主機,這些主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個Socket,并綁定到一個端口上,不同的端口對應于不同的服務。Socket正如其英文原意那樣,象一個多孔插座。一臺主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。 客戶軟件將插頭插到不同編號的插座,就可以得到不同的服務。
? ?? ?-----
? ???1.什么是socket 所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求。 以J2SDK-1.3為例,Socket和ServerSocket類庫位于java.net包中。ServerSocket用于服務器端,Socket是建立網絡連接時使用的。在連接成功時,應用程序兩端都會產生一個Socket實例,操作這個實例,完成所需的會話。對于一個網絡連接來說,套接字是平等的,并沒有差別,不因為在服務器端或在客戶端而產生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。
???? 2.?常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對于面向連接的TCP服務應用;數據報式Socket是一種無連接的Socket,對應于無連接的UDP服務應用。

Kimi 2008-04-03 08:56 發表評論
]]>
編程基礎--計算機網絡回顧http://m.tkk7.com/kemi/archive/2008/03/31/189775.htmlKimiKimiMon, 31 Mar 2008 06:22:00 GMThttp://m.tkk7.com/kemi/archive/2008/03/31/189775.htmlhttp://m.tkk7.com/kemi/comments/189775.htmlhttp://m.tkk7.com/kemi/archive/2008/03/31/189775.html#Feedback2http://m.tkk7.com/kemi/comments/commentRss/189775.htmlhttp://m.tkk7.com/kemi/services/trackbacks/189775.html
1.? ?什么是計算機網絡

利用通信線路將分散在不同地方,具有獨立功能的計算機連接起來,并按照一定的通信規則實現這些計算機之間資源與數據的共享,這樣的一個計算機集合便稱為計算機網絡。

2.? ?網絡層次標準

現在的網絡都采用分層的方式進行工作,當前,通用的網絡層次標準有OSI和TCP/IP兩種。OSI是理論上的標準,TCP/IP是工業上的事實標準。

由于不同的局域網有不同的網絡協議,不同的傳輸介質也各有其電氣性能,為了使不同的網絡能夠互連,必須建立統一的網絡互連協議。為此,ISO(國際標準化組織)提出了網絡互連協議的基本框架,稱為開放系統互連(OSI)參考模型。它將整個網絡的功能劃分成七個層次。

TCP/IP協議(傳輸控制協議/互聯網協議)的縮寫。美國國防部高級研究計劃局DARPA為了實現異種網絡之間的互連與互通,大力資助互聯網技術的開發,于1977年到1979年間推出目前形式的TCP/IP體系結構和協議。它將網絡分為4個層次,TCP/IP協議使用范圍極廣,是目前異種網絡通信使用的唯一協議體系,適用于連接多種機型,既可用于局域網,又可用于廣域網,許多廠商的計算機操作系統和網絡操作系統產品都采用或含有TCP/IP協議。TCP/IP協議已成為目前事實上的國際標準和工業標準。

2.1? ?OSI參考模型和TCP/IP具體層次

網絡是分層的,每一層分別負責不同的通信功能。應用層,表示層,會話層,傳輸層被歸為高層,而網絡層,數據鏈路層,物理層被歸為底層。高層負責主機之間的數據傳輸,底層負責網絡數據傳輸。

OSI參考模型 ? ?? ?? ?? ??? 主要功能 ? ?? ?? ?? ?? ?? ?? ?常見協議??
? ? 應用層? ?? ? ------? ?? ?? ?提供應用程序間通訊;? ?? ?? ?? ? HTTP,FTP
? ? 表示層? ?? ? ------? ?? ?? ?處理數據格式,數據加密等;? ?? ? NBSSL,LPP
? ? 會話層? ?? ? ------? ?? ?? ?建立,維護,管理會話;? ?? ?? ???RPC,LDAP
? ? 傳輸層? ?? ? ------? ?? ?? ?建立主機端到端的連接:? ? ? ?? ? TCP,UDP
? ? 網絡層? ?? ? ------? ?? ?? ?尋址和路由選擇;? ?? ?? ?? ?? ???IP,ICMP
? ? 數據鏈路層? ?------? ?? ?? ?提供介質訪問和鏈路管理等;? ?? ? PPP
? ? 物理層? ?? ? ------? ?? ?? ?比特流傳輸;

TCP/IP網絡層次? ?? ?? ?? ?主要功能? ?? ?? ?? ?? ?? ?? ?? ? 常見協議
??應用層? ?? ?? ?-----? ? 提供應用程序接口;? ?? ?? ?? ?? ???HTTP,FTP
? ?傳輸層? ?? ?? ? -----? ? 建立端到端的連接;? ?? ?? ?? ?? ???TCP,UDP
? ?互聯網層? ?? ???-----? ? 尋址和路由選擇;? ?? ?? ?? ?? ?? ? IP,ICMP
? ?網絡接口層? ?? ?-----? ? 二進制數據流傳輸和物理介質訪問;? ?PPP

2.2? ?OSI和TCP/IP的層次對應關系

OSI? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?TCP/IP
應用層+表示層+會話層? ???----? ? 應用層
傳輸層? ?? ?? ?? ?? ?? ? ----? ? 傳輸層
網絡層? ?? ?? ?? ?? ?? ? ----? ? 互聯網層
數據鏈路層+物理層? ?? ???----? ? 網絡接口層

層與層之間的聯系是通過各層之間的接口來進行的,上層通過接口向下層提出服務請求,而下層通過接口向上層提供服務。兩個用戶計算機通過網絡進行通信時,除物理層之外,其余各對等層之間均不存在直接的通信關系,而是通過各對等層之間的通信協議來進行通信,只有兩物理層之間通過傳輸介質進行真正的數據通信。

2.3? ?TCP/IP原理

雖然OSI是最早提出的理論上的標準,但是在實際中我們多是采用TCP/IP協議分層標準。TCP/IP通常被認為是一個四層協議系統,TCP/IP協議族是一組不同的協議組合在一起構成的協議族。
?? ? ? ?
數據發送時是自上而下,層層加碼;數據接收時是自下而上,層層解碼。

當應用程序用TCP傳送數據時,數據被送入協議棧中,然后逐個通過每一層直到被當作一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部信息)。TCP傳給IP的數據單元稱作TCP報文段或簡稱為TCP段。I P傳給網絡接口層的數據單元稱作IP數據報。 通過以太網傳輸的比特流稱作幀(Frame)。數據發送時是自上而下,層層加碼;數據接收時是自下而上,層層解碼。如下圖1,

邏輯上的通訊是在同級上完成的

垂直方向的結構層次是當今普遍認可的數據處理的功能流程。每一層都有與其相鄰層的接口。為了通信,兩個系統必須在各層之間傳遞數據、指令、地址等信息,通信的邏輯流程與真正的數據流的不同。雖然通信流程垂直通過各層次,但每一層都在邏輯上能夠直接與遠程計算機系統的相應層直接通信。通訊實際上是按垂直方向進行的,但在邏輯上通信是在同級進行的。如下圖2,


Kimi 2008-03-31 14:22 發表評論
]]>
Avira AntiVir PersonalEdition Classic (個人免費C版)詳細使用指南 <轉>http://m.tkk7.com/kemi/archive/2008/03/14/186173.htmlKimiKimiThu, 13 Mar 2008 23:40:00 GMThttp://m.tkk7.com/kemi/archive/2008/03/14/186173.htmlhttp://m.tkk7.com/kemi/comments/186173.htmlhttp://m.tkk7.com/kemi/archive/2008/03/14/186173.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/186173.htmlhttp://m.tkk7.com/kemi/services/trackbacks/186173.html
Avira AntiVir PersonalEdition Classic (個人免費C版)詳細使用指南
作為一名小紅傘C版的普通用戶,很高興能夠把我自己對紅傘的一些理解和大家一起分享,希望在大家接觸紅傘C版的初期能夠給大家帶來一些幫助,快速的熟練使用:)
ps:此說明為Avira(紅傘)中國使用者服務論壇 www.avira.org.cn/bbs lanvin原創,如需轉載請注明出處
本說明一共分為4個部分,分別為:
A下載篇
B安裝篇
C設置篇
D實戰篇
下面我將就這四個部分給大家一一介紹紅傘C版的基本使用。

A下載篇
如果要下載的話最好還是去官方網站,因為那里的軟件相對來說是最新的,而其他的軟件網站一般般都會有稍稍的滯后。以下是德國avira官網的下載地址,分別是不同操作系統下的免費最新版:
Windows NT / 2000 / XP
下載地址:
http://www.free-av.com/down/wind ... tion_win7u_en_h.exe
Windows 98/Me
下載地址:
http://www.free-av.com/down/wind ... ation_win7_en_h.exe
? ?? ???
Linux / FreeBSD / Solaris
下載地址:
http://free-av.com/personal/en/u ... station-pers.tar.gz
當然我們去國內比較大的軟件網站華軍和天空也可以下載到C版紅傘,windows下的程序下載分別是:
華軍軟件園下載地址:
http://www.newhua.com/soft/2751.htm (Windows NT / 2000 / XP)
天空軟件下載地址:
http://www.skycn.com/soft/29050.html (Windows NT / 2000 / XP)

B安裝篇
下載完了之后可以立即安裝,這里我簡單的介紹一下windows操作系統下的c版紅傘的安裝,如果使用linux和solaris等操作系統的請依樣畫葫蘆:)
首先雙擊下載下來的exe文件,在彈出的窗口點accept(接受)

圖片附件: 1.PNG (2007-3-8 01:12, 26.66 K)


程序自解壓

圖片附件: 2.PNG (2007-3-8 01:12, 26.33 K)


點下一步

圖片附件: 3.PNG (2007-3-8 01:12, 37.69 K)


再點下一步

圖片附件: 4.PNG (2007-3-8 01:12, 18.73 K)


勾選下圖中用紅框框起來的選項,表明“我接受許可協議條款”,并點擊“下一步”

圖片附件: 5.PNG (2007-3-8 01:12, 17.8 K)


勾選下圖中用紅框框起來的選項,同意僅為個人使用,不用于商業用途,并點擊“下一步”

圖片附件: 6.PNG (2007-3-8 01:12, 16.74 K)


由于c版為免費版本,所以序列號將在安裝時軟件會隨機生成一個序列號并提交給avira,這個選項默認勾選,我們要做的只需要點擊“下一步”。

圖片附件: 7.PNG (2007-3-8 01:12, 16.88 K)


下面選擇“完整安裝”還是“自定義安裝”,系統默認為完整安裝,經過我的實驗,自定義安裝能分別自定義4個方面:
a.安裝文件夾的地址,默認為在program files;
b.選擇組件,可以自定義安裝主程序(Avira AntiVir PersonalEdition Classic),監控(AntiVir Guard)和界面擴展(shell extension)其中界面擴展就是添加右鍵掃描選項;
c.win32文件的啟發式掃描等級設置;
d.是否創立桌面圖標和在開始菜單安裝。
我個人認為這四個選項可以都不需要更改,所以我建議大家直接點complete完整安裝,win32的啟發水平可以等安裝完之后再根據需要更改。由于complete默認選擇,所以我們只需要點擊“下一步”。

圖片附件: 8.PNG (2007-3-8 01:12, 20.21 K)

安裝過程中......

圖片附件: 9.PNG (2007-3-8 01:12, 13.13 K)


點擊完成結束安裝

圖片附件: 10.PNG (2007-3-8 01:25, 37.51 K)


如果你是非教育網用戶(已經有直接可以連接國外的網絡連接),那你可以在隨后彈出的窗口上點擊yes進行升級。


圖片附件: 11.PNG (2007-3-8 01:28, 34.74 K)


安裝完后系統會自動進行掃描,在我的機器上掃描沒有病毒(未升級病毒庫和掃描引擎,即為安裝后的初始狀態)。
在我的機器上掃描沒有發現病毒,至少是當前的病毒庫:)

圖片附件: 12.PNG (2007-3-8 01:34, 71.24 K)


圖片附件: 13.PNG (2007-3-8 01:38, 81.33 K)


C.設置篇
點擊系統托盤的小紅傘,我們來看下基本界面。
界面非常的簡介大方,很有大家風范:)
雖然可以看的地方很多,但是對于我們一般用戶來說,只有我圈出的幾個地方我們會用到,比較重要的。
a. update:這里點擊可以直接在線升級或者通過manual update進行升級。manual update我們可以直接去官網或者華軍網站下載離線升級包,不過我本人不太推薦,因為畢竟在線升級易用性強很多。
b. Quarantine:隔離。掃描出的可疑文件被隔離在這里等待進一步分析。
c. Configuration:設置。這個下面我將詳細的介紹。
d. Start Update:直接在線升級,C版的升級一直是個問題,不過我們紅傘論壇的Jay 周版主給出了解決方案,具體可以參見
http://www.avira.org.cn/bbs/view ... &extra=page%3D1參看詳細的代理服務器地址
e. update to Premium:升級到帶郵件掃描和其他附加功能的P版,享受更好的安全服務

圖片附件: 14.PNG (2007-3-8 12:34, 44.03 K)

點configuration(設置),在彈出的窗口的左上角點expert mode(專家模式),掃描器的首頁無需更改任何設置,直接展開scan(掃描)來設置掃描器

圖片附件: 15.PNG (2007-3-8 01:45, 45.53 K)


action for concerning files 相關文件動作設置;默認即可,報警聲可以替換,但是文件格式必須是wav

圖片附件: 16.PNG (2007-3-8 01:47, 45.07 K)


壓縮存檔文件設置

圖片附件: 17.PNG (2007-3-8 01:49, 47.88 K)


排除文件設置
開高啟發掃描殺毒,如果擔心誤殺正常系統或程序文件(如現在的一鍵ghost),請在這里進行掃描殺毒的排除,這樣在殺毒時會跳過可能會誤殺的正常文件!

圖片附件: 18.PNG (2007-3-8 01:50, 59.22 K)


啟發式殺毒設置

圖片附件: 19.PNG (2007-3-8 14:04, 44.32 K)


report(日志記錄)直接默認就可以,跳到guard(監控)設置,點監控的scan,進行監控掃描設定

圖片附件: 20.PNG (2007-3-8 01:54, 48.06 K)


action for concerning files不用改,默認設置就可以,直接跳過點expertion設置排除

圖片附件: 21.PNG (2007-3-8 01:55, 72.84 K)


監控掃描的啟發可以參照掃描器的設置:)建議一般的用戶可以使用默認值,直接跳過就可以了。
同樣監控日志默認不用改。
展開general,點extended threat categories(額外威脅類別)進行設置。

圖片附件: 22.PNG (2007-3-8 01:57, 50.45 K)


security安全設置和update升級。
security安全設置是保護紅傘的設置和程序自身,建議把圖片上的兩個都選上。另,這個設置是對非管理員權限才起保護作用。jobfiles主要指程序自身。如果選上這個選項,在非管理員權限用戶下,無法結束紅傘進程。
update可以設置代理服務器,教育網和一些其他用戶可能需要進行設置,具體的請參照本論壇jay周版主的帖子,上面有提到

圖片附件: 23.PNG (2007-3-8 12:31, 48.91 K)


圖片附件: 24.PNG (2007-3-8 02:00, 50.44 K)





D.實戰篇
設置完紅傘后,建議立即更新病毒庫和殺毒引擎,然后對系統進行一次掃描。另可以把你設置好的掃描選項用快捷方式的圖標發送到桌面上,這樣以后想同樣掃描,可以直接在桌面上點擊快捷方式就可以直接掃描了。

圖片附件: 25.PNG (2007-3-8 02:06, 38.79 K)


圖片附件: 29.PNG (2007-3-8 14:04, 39.08 K)

小紅傘支持右鍵掃描,可以掃描單獨的文件,文件夾和驅動器(包括U盤)

圖片附件: 26.PNG (2007-3-8 02:06, 22.02 K)


注意小紅傘不監控壓縮包,所以壓縮包里的病毒需要在解壓縮,或者直接用掃描器掃描的時候才能發現。
但是壓縮包內的病毒不解壓是沒有辦法發作的,如果解壓就會被小紅傘發現并阻止,所以懷疑小紅傘為什么掃描全盤那么快的人現在得到答案了吧。??
發現病毒建議首先隔離。

圖片附件: 28.PNG (2007-3-8 02:06, 34.83 K)



Kimi 2008-03-14 07:40 發表評論
]]>
Rising.exe+Auto.exe 流氓病毒http://m.tkk7.com/kemi/archive/2007/09/28/148977.htmlKimiKimiFri, 28 Sep 2007 02:17:00 GMThttp://m.tkk7.com/kemi/archive/2007/09/28/148977.htmlhttp://m.tkk7.com/kemi/comments/148977.htmlhttp://m.tkk7.com/kemi/archive/2007/09/28/148977.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/148977.htmlhttp://m.tkk7.com/kemi/services/trackbacks/148977.html將收集到的資料放在這里,以備后患!


該病毒就是前些日子流行的“修改系統時間”的病毒之變種。此次變種可謂是集N種破壞性病毒之大成了。主要破壞功能有:
??????? 1.感染exe 并使得被感染的exe的公司等屬性變為“番茄花園”
  2.感染html asp 等文件 插入惡意代碼
  3.通過雙擊磁盤啟動
  4.下載木馬,盜取網游帳號
  5.修改注冊表 使系統無法顯示隱藏文件
  6.通過hook API 函數 導致任務管理器中 無法看見其進程

  分析報告如下:
?File: rising.exe
Size: 64775 bytes
File Version: 1.00
MD5: 86311B37D938BB35645E7B092014DD63
SHA1: 47C324A5A691DD31DC0410E51ADBD35065E6C7C3
CRC32: 88ABBD9B

rising.exe 運行后 首先釋放一個rising.eve的文件 然后由rising.exe啟動他
之后 釋放139CA82A.EXE 139CA82A.dll(隨機的8個數字字母組合成的文件名)到系統文件夾
注冊服務139CA82A.EXE
139CA82A.EXE控制winlogon進程 使得139CA82A.dll插入幾乎所有進程

釋放rising.exe 和autorun.inf 到每個分區 使得雙擊磁盤啟動
感染 除系統分區外的exe文件 使得其公司名全變為 番茄花園
感染 html asp 等文件 在其后面插入代碼
<iframe src="

修改系統時間 隨機把年份往前調 月,日不變
修改 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue:
值為 0x00000000
導致無法顯示臨時文件

rising.exe 還會hook 多個 API函數 使其進程在任務管理器中隱藏

使用Explorer.exe連接網絡 61.152.92.98:80下載木馬
下載的木馬一般為K117815XXXXX.exe
XXXXX代表隨機
到系統文件夾

由于 每臺機器上下載的木馬的名稱不同 但最后結果相同 所以中間釋放的過程省略
最后 這些木馬運行后分別釋放了如下文件
C:\WINDOWS\system32\buchehuo.exe(創建了服務inetsvr)

C:\WINDOWS\system32\cmdbs.dll
C:\WINDOWS\cmdbs.exe

C:\WINDOWS\system32\Kvsc3.dll
C:\WINDOWS\Kvsc3.exe

C:\WINDOWS\system32\mppds.dll
C:\WINDOWS\mppds.exe

C:\WINDOWS\system32\msccrt.dll
C:\WINDOWS\msccrt.exe
C:\WINDOWS\system32\winform.dll
C:\WINDOWS\winform.exe

C:\WINDOWS\system32\winsock.exe

臨時文件夾下 釋放upxdnd.exe和upxdnd.dll


  解決辦法:

  安全模式下(開機后不斷 按F8鍵 然后出來一個高級菜單 選擇第一項 安全模式 進入系統)

  首先把系統日期 改回來
  然后打開sreng(可到down.45it.com下載)
  啟動項目 注冊表 刪除如下項目

?<upxdnd><C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\upxdnd.exe> []
<msccrt><C:\WINDOWS\msccrt.exe> []
<cmdbs><C:\WINDOWS\cmdbs.exe> []
<mppds><C:\WINDOWS\mppds.exe> []
<Kvsc3><C:\WINDOWS\Kvsc3.exe> []
<winform><C:\WINDOWS\winform.exe> []

  “啟動項目”-“服務”-“Win32服務應用程序”中點“隱藏經認證的微軟項目”,
  選中以下項目,點“刪除服務”,再點“設置”,在彈出的框中點“否”:

?139CA82A / 139CA82A
Wireless Zero Conflguration / inetsvr


把下面的 代碼拷入記事本中然后另存為1.reg文件

?Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"RegPath"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
"Text"="@shell32.dll,-30500"
"Type"="radio"
"CheckedValue"=dword:00000001
"ValueName"="Hidden"
"DefaultValue"=dword:00000002
"HKeyRoot"=dword:80000001
"HelpID"="shell.hlp#51105"

  雙擊1.reg把這個注冊表項導入注冊表

  然后雙擊我的電腦-工具-文件夾選項-查看-顯示所有文件和文件夾,把“隱藏受保護的系統文件”的勾去掉。

  右鍵 點擊C盤 點擊右鍵菜單中的“打開”打開C盤 (千萬不要雙擊)(如圖)
  刪除 如下文件

?C:\rising.exe
C:\autorun.inf
C:\WINDOWS\system32\buchehuo.exe
C:\WINDOWS\system32\cmdbs.dll
C:\WINDOWS\cmdbs.exe
C:\WINDOWS\system32\Kvsc3.dll
C:\WINDOWS\Kvsc3.exe
C:\WINDOWS\system32\mppds.dll
C:\WINDOWS\mppds.exe
C:\WINDOWS\system32\msccrt.dll
C:\WINDOWS\msccrt.exe
C:\WINDOWS\system32\winform.dll
C:\WINDOWS\winform.exe
C:\WINDOWS\system32\winsock.exe
C:\WINDOWS\unspapik.txt
C:\WINDOWS\wiasevct.txt
C:\WINDOWS\wiasvctr.txt
C:\WINDOWS\ganran.txt
C:\WINDOWS\system32\139CA82A.DLL(隨機的8個數字字母組合成的文件名)
C:\WINDOWS\system32\139CA82A.EXE(隨機的8個數字字母組合成的文件名)
C:\WINDOWS\system32\K117815XXXXX.exe(XXXXX代表隨機數字)
清空C:\Documents and Settings\用戶名\Local Settings\Temp
  右鍵 點擊分別打開系統分區以外的分區 還是點擊右鍵菜單中的“打開” (千萬不要雙擊)

  刪除每個分區下面的autorun.inf和rising.exe文件

Kimi 2007-09-28 10:17 發表評論
]]>
<原創> WAP 傳遞參數的例子http://m.tkk7.com/kemi/archive/2007/08/16/137319.htmlKimiKimiThu, 16 Aug 2007 08:34:00 GMThttp://m.tkk7.com/kemi/archive/2007/08/16/137319.htmlhttp://m.tkk7.com/kemi/comments/137319.htmlhttp://m.tkk7.com/kemi/archive/2007/08/16/137319.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/137319.htmlhttp://m.tkk7.com/kemi/services/trackbacks/137319.html index.jsp

<?xml version="1.0" encoding='utf-8'?>
<%@ page contentType="text/vnd.wap.wml;charset=UTF-8"%>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="java.sql.Statement"%>
<%@ page import="com.telecom.dao.DBLinker"%>
<%@ page import="com.telecom.dao.linkman.DepSupport"%>
<%@ page import="com.telecom.common.form.DepForm"%>
<%@ page import="com.telecom.common.form.UserForm"%>
<%@ page import="java.util.ArrayList"%>
<wml>
<card id="main" title="企信機聯系人" newcontext="true">
<p>
?<%
??java.util.Enumeration emu = request.getHeaderNames();
??String e = new String();
??String s = new String();
??String mobile = new String();
??int i = 0;
??while (emu.hasMoreElements()) {
???i++;
???e = (String) emu.nextElement();
???if (e.equals("x-up-calling-line-id")) {
????mobile = request.getHeader(e);
???}
???System.out.println(i + e);
???s = request.getHeader(e);
???System.out.println(s);

??}

??//DepSupport ds=new DepSupport();
??Connection conn = (Connection) DBLinker.linkDB();
??String sql = "select * from tbDepartment where intParentID=0 and intType=1 and intEnable=1";
??ResultSet rs = null;
??Statement sta = conn.createStatement();
??rs = sta.executeQuery(sql);
??while (rs.next()) {
???String dep_name = rs.getString("strName");
???int dep_id = rs.getInt("intID");
?%>

?<%=dep_name%>
?

?<br />
?<%
???String sql2 = "select a.intID userID,b.intID memberID,a.strName uname,b.intDepID depID from tbUser a,tbUserDep b where a.intEnable=1 and a.intOpen=1 and b.intEnable=1 and a.intID=b.intUserID? ";
???System.out.println(sql2);
???ResultSet rs2 = null;
???Statement sta2 = conn.createStatement();
???rs2 = sta2.executeQuery(sql2);
???while (rs2.next()) {
????String addrName = rs2.getString("uname");
????int addrID = rs2.getInt("userID");
????int depnum = rs2.getInt("depID");
????int dep_id2 = new DepSupport().GetTopID(conn, depnum);
????if (dep_id2 == dep_id) {
?%>
?<img alt=":)" src="../img/bullet.gif" />
?<anchor>
?<%=addrName%>
?<go href="eim.jsp" accept-charset="UTF-8">
?<postfield name="getter" value="<%=addrName%>"/>
?<postfield name="getterID" value="<%=addrID%>"/>
?<postfield name="type" value="企業用戶"/>
?<postfield name="mobile" value="<%=mobile%>"/>
?</go>
?
?</anchor>
?<br />
?<%
???}
???}
?%>
?<br />
?<%
?}
?%>
?<%
??String sql3 = "select * from tbAddressType where intEnable=1 and intUserID=1";
??Statement sta3 = conn.createStatement();
??ResultSet rs3 = sta3.executeQuery(sql3);
??;
??while (rs3.next()) {
???String gName = rs3.getString("strName");
???int gID = rs3.getInt("intID");
?%>
?<%=gName%>
?<br />
?<%
???String sql4 = " select strName ,intID from tbUser where intID in(select intUserID from tbAddressMember where? intEnable=1 and intType=1 and intAddressTypeID= "
???+ gID + ")";
???Statement sta4 = conn.createStatement();
???ResultSet rs4 = sta4.executeQuery(sql4);
???;
???while (rs4.next()) {
????String iName = rs4.getString("strName");
????int iID=rs4.getInt("intID");
?%>
?<img alt=":)" src="../img/bullet.gif" />
?<anchor>
?<%=iName%>
?<go href="eim.jsp" >
?<postfield name="getter" value="<%=iName%>"/>
?<postfield name="getterID" value="<%=iID%>"/>
?<postfield name="type" value="企業用戶"/>
?<postfield name="mobile" value="<%=mobile%>"/>
??</go>
?</anchor>
?<br />
?<%
???}
???String sql5 = " select strName,intID from tbExtraPerson where intID in(select intUserID from tbAddressMember where? intEnable=1 and intType=2 and intAddressTypeID= "
???+ gID + ")";
???Statement sta5 = conn.createStatement();
???ResultSet rs5 = sta5.executeQuery(sql5);
???;
???while (rs5.next()) {
????String oName = rs5.getString("strName");
????int oID=rs5.getInt("intID");
?%>
?<img alt=":)" src="../img/bullet.gif" />
?<anchor>
?<%=oName%>
?<go href="eim.jsp" >
?<postfield name="getter" value="<%=oName%>"/>
?<postfield name="getterID" value="<%=oID%>"/>
?<postfield name="type" value="非企業用戶"/>
?<postfield name="mobile" value="<%=mobile%>"/>
??</go>
?</anchor>
?<br />
?<%
?}
?%>
?<br />

?<%
?}
?%>

?

</p>
</card>


</wml>

2. EIM.jsp
??<?xml version="1.0" ?>
<%@ page contentType="text/vnd.wap.wml;charset=UTF-8"%>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"
<%
?
?String getter = new String( request.getParameter("getter").getBytes("iso8859-1"),"UTF-8");
?int getterID = Integer.parseInt(request.getParameter("getterID"));
?String type = request.getParameter("type");
?type=new String( type.getBytes("iso8859-1"),"UTF-8");
?String mobile=request.getParameter("mobile");
%>
<wml>
<card id="main" title="WAP業務" newcontext="true">
<p mode="nowrap">
?發送對象:
?<%=getter%>
?<br />
?<br />
?類型:
?<%=type%>
?<br />
?<br />
?信息內容:
?<input name="content" type="text"? maxlength="70"
??size="32" />

?<br />
?<br />
?<anchor>
?發送短信
?<go href="downSMS.jsp" >
?<postfield name="content" value="$(content)" />
?<postfield name="getterID" value="<%=getterID%>" />
?<postfield name="type" value="<%=type%>" />
??</go>
?</anchor>
?<anchor>
?<br />
?<br />
?呼叫對方
?<go href="downVoice.jsp" >
?<postfield name="getterID" value="<%=getterID%>" />
?<postfield name="type" value="<%=type%>" />
?<postfield name="sender" value="<%=mobile%>" />
??</go>
?</anchor>
</p>
</card>

?

</wml>


??????????????????????


?




Kimi 2007-08-16 16:34 發表評論
]]>
(轉) WAP開發細節問題http://m.tkk7.com/kemi/archive/2007/08/14/136734.htmlKimiKimiTue, 14 Aug 2007 09:22:00 GMThttp://m.tkk7.com/kemi/archive/2007/08/14/136734.htmlhttp://m.tkk7.com/kemi/comments/136734.htmlhttp://m.tkk7.com/kemi/archive/2007/08/14/136734.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/136734.htmlhttp://m.tkk7.com/kemi/services/trackbacks/136734.html 1)wap多選框
<card id="phones" title="組信息">
<do type="prev" name="Prev" label="Back">
<go href="meeting.wml"></go></do>
<do type="accept"><go href="servlet_wap?serviceID=0124">
<postfield name="scity" value="1"/>
<postfield name="members" value="$members"/>
</go></do>
<p mode="nowrap">**選擇會議成員**
<select name="members" multiple="true">
<option value="138345657678">88(138345657678)</option>
<option value="1383456576786">88886(1383456576786)</option>
<option onpick="meeting.wml">[返回]</option>
</select>
</p>
</card>
2)wap單選框
<card>
<p>Please choice your favourite Web.<br/>
 <select name="X">
  <option value="S">sina</option>
  <option value="Y">yahoo</option>
 </select>
<p>
</card>
3)有關左右軟按鍵)(由手機瀏覽器自動解析為menu菜單,在手機的右鍵出現;)
<do type=".options." label="確認" optional="false">
    <go href="/wapapp/servlet_yxtwap?serviceID=0214"/>
  </do>
代表右軟按鍵,一個“確定”按鈕;
<do type=".Accept." label="返回" optional="false">
    <go href="../servlet_yxtwap?serviceID=0201"/>
  </do>
代表左軟按鍵,一個“返回”按鈕;

最好是這樣:
<do type="options" name="Prev" label="返回"><go href="indexmember.wml"></go></do>
<do type="Accept" label="確定">
<go href="/wapapp/servlet_yxtwap?serviceID=0401">
<postfield name="name" value="$name"/>
<postfield name="nick" value="$nick"/>
<postfield name="call" value="$call"/>
</go>
</do>
返回剛才上頁:
<do type="options" name="Prev" label="返回"><prev/></do>

<do type="options" name="Prev" label="返回"><go href="index.wml"></go></do>
<do type="accept" label="確定">
<go href="/wapapp/servlet_wap" method="post">
<!-- go href="/servlet/wap86test" -->
<postfield name="serviceID" value="0002"/>
<postfield name="phone" value="$(phone:e)"/>
<postfield name="passwd" value="$(passwd:e)"/>
</go>
</do>

4)有關軟連結的友好提示
<a title = "確定" href="announce.wml">網站聲明</a><br/>
加入title屬性,可以在手機的左鍵顯示title里面所放置的提示語。

"<do type=\"options\" name=\"Prev\" label=\"返回\"><go href=\"index.wml\"></go></do>"+
<do type="options" name="Prev" label="返回"><go href="index.wml"></go></do>

5)ipnut輸入框自動換行
<p mode="nowrap">**姓名昵稱**<br/>
姓名:
<input name="name" tabindex="1" maxlength= "32" />
注意:Ⅰ、p的mode屬性為nowrap;
Ⅱ、input里沒有size屬性;

6)<p mode="nowrap">將菜單項顯示在同一行中,而不是分行顯示,如果是文字的話,可以實現滾動文本代替換行文本;
所以
<p mode="wrap">**用戶登錄**<br/>
輸入手機號碼:<br/>
<input name="phone" format="*N" tabindex="1" maxlength="11" size = "11"/><br/>
輸入密碼:<br/>
<input name="passwd" format="*N" tabindex="2" maxlength="6" size = "7"/>
</p>
就可以達到固定頁面的效果;

7)正確的url連接
String strAddressList = WapUtil.gbk2unicode("通訊錄");
WapUtil.encode("通訊錄", strAddressList)

String groupName = request.getParameter("groupname");//(1)
groupName = WapUtil.togbk(groupName); //(2)
String unicgpName = WapUtil.gbk2unicode(groupName); //(3)
WapUtil.encode(groupName,unicgpName) //(4)如果是帶中文參數連接的話,應該這樣做為參數

8)作為提交數據的字段碼制信息需要:
下面例子為將url中取的已經轉碼的中文連接字段做為提交字段,提交給servlet處理
(1) String groupName = request.getParameter("groupname");
groupName = WapUtil.togbk(groupName); //(1)
(2) String unicgpName = WapUtil.gbk2unicode(groupName);
(3) "<go href=\"servlet_wap?serviceID=0213\" accept-charset=\"GB2312\">\n" +
"<postfield name=\"omgroupname\" value=\"" + unicgpName + "\"/>\n" +
首先將已經encode的url中的連接字段取得,并用gb2312處理;
然后將該已經轉成中文的字段轉成unicode碼制;
最后將該字段放入一個瀏覽器與服務器之間收發信息的字符集類型為gb2312的提交url,
完成

9)將輸入框中的字段清空
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>
</head>
<card id="card1" title="群呼群聊">
<onevent type="onenterforward">
<refresh>
<setvar name="mgroupname" value=""/>
</refresh>
</onevent>
<do type="options" name="Prev" label="返回"><go href="/wapapp/servlet_wap?serviceID=0203&groupname=11%B2%BB%B6%ED%B6%F8dd&groupcode=6"></go></do>
<do type="accept" label="確定"><go href="/wapapp/servlet_wap?serviceID=0213" method="get" accept-charset="GB2312">
<postfield name="omgroupname" value="11不俄而dd"/>
<postfield name="groupcode" value="6"/>
<postfield name="mgroupname" value="$mgroupname" />
</go></do>
<p mode="wrap">**修改組**<br/>
輸入新組名:<br/>
<input name="mgroupname" tabindex="1" maxlength="64"/>
</p>
</card>
</wml>
其中<onevent></onevent>這段代碼要放在card后面。

有關于輸入框value值的預定義解決方案:
在card里面增加newcontext屬性,并且為true;
如:<card id="card1" newcontext="true" title="test">


Kimi 2007-08-14 17:22 發表評論
]]>
開始WAP開發了,呵呵http://m.tkk7.com/kemi/archive/2007/08/10/135866.htmlKimiKimiFri, 10 Aug 2007 08:43:00 GMThttp://m.tkk7.com/kemi/archive/2007/08/10/135866.htmlhttp://m.tkk7.com/kemi/comments/135866.htmlhttp://m.tkk7.com/kemi/archive/2007/08/10/135866.html#Feedback2http://m.tkk7.com/kemi/comments/commentRss/135866.htmlhttp://m.tkk7.com/kemi/services/trackbacks/135866.html先就這么多,有什么好的例子再放給大家,期待更新!

Kimi 2007-08-10 16:43 發表評論
]]>
visio 2003 +sp2 下載說明http://m.tkk7.com/kemi/archive/2007/08/01/133786.htmlKimiKimiWed, 01 Aug 2007 05:41:00 GMThttp://m.tkk7.com/kemi/archive/2007/08/01/133786.htmlhttp://m.tkk7.com/kemi/comments/133786.htmlhttp://m.tkk7.com/kemi/archive/2007/08/01/133786.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/133786.htmlhttp://m.tkk7.com/kemi/services/trackbacks/133786.html
????? 下載地址:?????http://software.zsedu.net/圖文處理/visio2003.iso
???? ?文件大小:???? 348.76MB
????? 注意事項:???? 文件中包含有SN文件,安裝時填入即可。

第二步:升級Microsoft Visio 2003

??????前面安裝的軟件是初期的Visio,眾所周知,微軟的東西不需要打補丁的產品還沒出現過,所以我們要安裝相應的補丁。

????? Visio 2003 Service Pack 2 在安全性方面有了顯著增強,并在穩定性和性能方面進行了改進。SP2 中包含的某些修復程序此前已作為單獨的更新發布。此 Service Pack 將它們合并到一個更新中。 此 Service Pack 還包括以前發布的 Visio 2003 更新:
???????????? Visio 2003 Service Pack 1
???????????? Visio 2003 安全更新:KB838345
???????????? Visio 2003 法語拼寫檢查器和同義詞庫更新:KB892293


????? 補丁下載地址:http://download.microsoft.com/download/e/3/d/e3d6fb0f-6f41-4b68-9cbf-b4fa98bfb429/Visio2003SP2-KB887622-FullFile-CHS.exe
????? 補丁文件大小:31.84MB
????? 注意事項:直接安裝就可以了,不會有什么亂七八糟的東西出現。
?????????????????????????

第三步:Microsoft Visio 2003 的附件

??????通過之前的兩個步驟,Visio 2003 已經可以使用了,不過如果你使用Visio的程度更專業,那有一些專業模版在手上,使用起來就會更輕松啦。

??????模版下載地址:http://download.microsoft.com/download/5/6/4/564eaaf5-3e20-473e-a219-dc6fd431dee1/VisioSam.exe
????? 模版文件大小:3.74MB
????? 注意事項:下載下來的直接是個壓縮包,解壓縮后就可以使用了。由于Visio不支持從模版打開,所以沒有特定的存放位置。
?????????????????????????此下載包括 20 個與支持和銷售演示相關的 Visio 2003 圖表示例:
???????????????????????????????????? Active Directory 圖表 – ActvDir.vsd
????????????????????????????????????基本流程圖 – Bflowcht.vsd
??????????????????????????????????? 建筑平面圖 – BldgPlan.vsd
??????????????????????????????????? 基本網絡圖 – Bnetwork.vsd
??????????????????????????????????? 集體討論圖 – Brainstm.vsd
??????????????????????????????????? 日歷 – Calendar.vsd
??????????????????????????????????? 數據庫圖表 – Database.vsd
??????????????????????????????????? 詳細網絡圖 – Dnetwork.vsd
??????????????????????????????????? 電氣工程控制圖表 – EECtrl.vsd
??????????????????????????????????? 流體動力圖 – FluidPwr.vsd
??????????????????????????????????? 會議室布局 – MeetRoom.vsd
??????????????????????????????????? 組織結構圖 – OrgChart.vsd
??????????????????????????????????? 工藝流程圖 – ProcEng.vsd
??????????????????????????????????? IT 架構圖 – Rack.vsd
??????????????????????????????????? 時基圖 – Timeline.vsd
??????????????????????????????????? UML 圖表 – UML.vsd
??????????????????????????????????? Web 設計圖表 – WebDsgn.vsd
??????????????????????????????????? 網站圖表 – WebSite.vsd
??????????????????????????????????? 窗體 UI 圖表 – WinUI.vsd
??????????????????????????????????? 框圖模板 - BlkDiagm.vsd




Kimi 2007-08-01 13:41 發表評論
]]>
從某牛人處盜來的關于處理 TextArea的焦點問題 (轉)http://m.tkk7.com/kemi/archive/2007/05/08/115992.htmlKimiKimiTue, 08 May 2007 09:04:00 GMThttp://m.tkk7.com/kemi/archive/2007/05/08/115992.htmlhttp://m.tkk7.com/kemi/comments/115992.htmlhttp://m.tkk7.com/kemi/archive/2007/05/08/115992.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/115992.htmlhttp://m.tkk7.com/kemi/services/trackbacks/115992.html  function getPos(obj)
  {
  obj.focus();
  var workRange=document.selection.createRange();
  obj.select();
  var allRange=document.selection.createRange();
  workRange.setEndPoint("StartToStart",allRange);
  var len=workRange.text.length;
  workRange.collapse(false);
  workRange.select();

  return len;
  }

  這時候問題出來了,在obj.select()的時候,會造成閃爍,并且滾動條也無法歸位。于是小弟根據自己的需要,將其改寫如下:

function getCaret(ZysrID)
{
?var txb = document.getElementById(ZysrID);//根據ID獲得對象
?var pos = 0;//設置初始位置
?txb.focus();//輸入框獲得焦點,這句也不能少,不然后面會出錯,血的教訓啦.
?var s = txb.scrollTop;//獲得滾動條的位置
?var r = document.selection.createRange();//創建文檔選擇對象
?var t = txb.createTextRange();//創建輸入框文本對象
?t.collapse(true);//將光標移到頭
?t.select();//顯示光標,這個不能少,不然的話,光標沒有移到頭.當時我不知道,搞了十幾分鐘
?var j = document.selection.createRange();//為新的光標位置創建文檔選擇對象
?r.setEndPoint("StartToStart",j);//在以前的文檔選擇對象和新的對象之間創建對象,媽的,不好解釋,我表達能力不算太好.有興趣自己去看msdn的資料
?var str = r.text;//獲得對象的文本
?var re = new RegExp("[\\n]","g");//過濾掉換行符,不然你的文字會有問題,會比你的文字實際長度要長一些.搞死我了.我說我得到的數字怎么總比我的實際長度要長.
?str = str.replace(re,"");//過濾
?pos = str.length;//獲得長度.也就是光標的位置
?r.collapse(false);
?r.select();//把光標恢復到以前的位置
?txb.scrollTop = s;//把滾動條恢復到以前的位置
}

//設置光標函數

function setCaret(id,pos)
{
  var textbox = document.all(id);
  var r = textbox.createTextRange();
  r.collapse(true);
  r.moveStart(@#character@#,pos);
  r.select();
}



Kimi 2007-05-08 17:04 發表評論
]]>
windows 時間同步http://m.tkk7.com/kemi/archive/2007/03/16/104139.htmlKimiKimiFri, 16 Mar 2007 01:10:00 GMThttp://m.tkk7.com/kemi/archive/2007/03/16/104139.htmlhttp://m.tkk7.com/kemi/comments/104139.htmlhttp://m.tkk7.com/kemi/archive/2007/03/16/104139.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/104139.htmlhttp://m.tkk7.com/kemi/services/trackbacks/104139.html



圖3



Kimi 2007-03-16 09:10 發表評論
]]>
HTML 的框架釋疑 (轉)http://m.tkk7.com/kemi/archive/2007/02/08/98690.htmlKimiKimiThu, 08 Feb 2007 03:02:00 GMThttp://m.tkk7.com/kemi/archive/2007/02/08/98690.htmlhttp://m.tkk7.com/kemi/comments/98690.htmlhttp://m.tkk7.com/kemi/archive/2007/02/08/98690.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/98690.htmlhttp://m.tkk7.com/kemi/services/trackbacks/98690.html ■ 框架標記

<FRAMESET> <FRAME>
<NOFRAMES>
<IFRAME>

  欲明白本篇【HTML徹底剖析】之標記分類,請看 【標記一覽】。
  也請先明白圍堵標記與空標記的分別,請看 【HTML概念】。

■ 框架概念 :

  謂框架便是網頁畫面分成幾個框窗,同時取得多個 URL。只需要 <FRAMESET> <FRAME> 即可,面所有框架標記需要放在一個總起的 html 檔,這個檔案只記錄了該框架如何分割 ,不會顯示任何資料,所以不必放入 <BODY> 標記,瀏覽這框架必須讀取這檔案 面不是其他框窗的檔案。<FRAMESET> 是用來劃分框窗,每一窗框由一個 <FRAME> 標 記所標示,<FRAME>必須在 <FRAMESET> 范圍中使用。如下例:

  <frameset cols="50%,*"> <frame name="hello" src="up2u.html"> <frame name="hi" src="me2.html">
  </frameset>

  此例中 <FRAMESET> 把畫面分成左右兩相等部分,左便是顯示 up2u.html,右邊則會顯示 me2.html 這檔案,<FRAME> 標記所標示的框窗永遠是按由上而下、由左至右的次序。

<FRAMESET> <FRAME> :

  以上所述只是最簡單的框架設定,若希望達到更合適的效果請加入或修改以下各參數。

  標記:<FRAMESET>
  例子:<frameset rows="90,*" frameborder="0" border=0 framespacing="2" border="2" bordercolor="#008000"></frameset>
  功用:宣告HTML文件為框架模式,并設定視窗如何分割。

  參數:

  • COLS="90,*"
    垂直切割畫面(如分左右兩個畫面),接受整數值百分數* 則代表占用剩余的空間。數值的個數代表分成的視窗數目且以逗號分隔。例如 COLS="30,*,50%" 可以切成三個視窗,第一個視窗是 30 pixels 的寬度,為一絕對分割,第二個視窗是當分配完第一及第三個視窗后剩下的空間,第三個視窗則占整個視窗畫面的 50% 寬度為一相對分割。你可自己調整數字

  • ROWS="120,*"
    這是橫向切割,將畫面上下分開,數值設定同上。 COLS 與 ROWS 兩參數盡量不要放在同一個 <FRAMESET> 標記中,因 Netacape 偶然不能顯示這類型的框架,盡量采用多重分割,如以上各例。

  • frameborder="0"
    設定框架的邊框,其值只有 0 和 1 , 0 表示不要邊框, 1 表示要顯示邊框。

  • border="0"
    設定框架的邊框厚度,以 pixels 為單位。

  • bordercolor="#008000"
    設定框架的邊框顏色。顏色值請參考【調色原理】。

  • framespacing="5"
    表示框架與框架間保留的空白的距離。

  標記:<FRAME>
  例子:<frame name="top" src="a.html" marginwidth="5" marginheight="5" scrolling="Auto" frameborder="0" noresize framespacing="6" bordercolor="#0000FF">
  功能:設定每一個框窗內的參數屬性。
  參數:

  • SRC="a.html"
    設定此框窗中要顯示的網頁檔案名稱,每個框窗一定要對應一個網頁檔案。

  • NAME="top"
    設定這個框窗的名稱,這樣才能指定框架來作鏈接,必須但任意命名。

  • frameborder=0
    設定框架的邊框,其值只有 0 和 1 , 0 表示不要邊框, 1 表示要邊框。

  • framespacing="6"
    表示框架與框架間的保留的空白的距離。

  • bordercolor="#008000"
    設定框架的邊框顏色。

  • scrolling="Auto"
    設定是否要顯示卷軸,YES 表示要顯示卷軸,NO 表示無論如何都不要顯示卷軸,AUTO 視情況而定。

  • noresize
    設定不讓使用者可以改變這個框框的大小,如沒有設定此參數,使用者可隨意地拉動框架改變其大小。

  • marginhight=5
    表示框架高度部分邊緣所保留的空間。

  • marginwidth=5
    表示框架寬度部分邊緣所保留的空間。
  以下是一些例子:

例子HTML Code
?
?
<frameset rows="80,*">
<frame name="top" src="a.html">
<frame name="bottom" src="b.html">
</frameset>
例子HTML Code
?
?
?
<frameset rows="80,*,80">
<frame name="top" src="a.html">
<frame name="middle" src="b.html">
<frame name="bottom" src="c.html">
</frameset>
例子HTML Code
??
?
<frameset cols="150,*">
<frameset rows="80,*">
<frame name="upper_left" src="a.html">
<frame name="lower_left" src="b.html">
</frameset>
<frame name="right" src="c.html">
</frameset>
例子HTML Code
?
??
<frameset rows="80,*">
<frame name="top" src="a.html">
<frameset cols="150,*">
<frame name="lower_left" src="b.html">
<frame name="lower_right" src="c.html">
</frameset>
</frameset>
例子HTML Code
??
?
<frameset cols="150,*">
<frame name="left" src="a.html">
<frameset rows="80,*">
<frame name="upper_right" src="b.html">
<frame name="lower_right" src="c.html">
</frameset>
</frameset>

<NOFRAMES> :

  當別人使用的瀏覽器太舊,不支持框架功能時,他看到的將是一片空白。為了避免這種情況,可使用 <NOFRAMES> 這個標記,當使用者的瀏覽器看不到框架時,他就會看到 <NOFRAMES></NOFRAMES> 之間的內容,而不是一片空白。這些內容可以是提醒瀏覽者采用新的瀏覽器的字句,也可以是一個沒有框架的網頁或切換到沒有框架的版本的鏈接都可。

  應用方法:
  在<frameset> 標記范圍加入 </NOFRAMES> 標記,以下是例子:

<frameset rows="80,*">
<noframes>
<body>
很抱謙,您使用的瀏覽器不支持框架功能,請采用新版本的瀏覽器。
</body>
</noframes>
<frame name="top" src="a.html">
<frame name="bottom" src="b.html">
</frameset>

  若瀏覽器支持框架,那么它不會理會 <noframes> 中的內容,但若瀏覽器不支持框架,由于不認識所有框架標記,不明的標記被略過,標記包圍的內容便被解讀出來,所以在 <noframes>范圍內的文字被顯示。

<IFRAME> :

  這標記只適用于 IE。 它的作用是在一頁中間插入一個框窗以顯示另一個文件。它是一個圍堵標記,但圍堵著的字句只有在瀏覽器不支持 iframe 標記時才顯示,如<noframes> 一樣,可以放一些提醒的字句之類。通常 iframe 配合一個辯認瀏覽器的的 Java Script 會更好,若于 JavaScript 認出該瀏覽器并非 Internet Explorer 便會切換到另一個版本。

  <iframe> 的參數如下:
  例子: <iframe src="iframe.html" name="test" align="MIDDLE" width="300" height="100" marginwidth="1" marginheight="1" frameborder="1" scrolling="Yes">

  • src="iframe.html"
    欲顯示于此框窗的文件來源除檔案名稱,必要加上相對或絕對路徑。
  • name="test"
    此框窗名稱,這是鏈接標記的 target 參數所需要的,
  • align="MIDDLE"
    可選值為 left, right, top, middle, bottom,作用不大
  • width="300" height="100"
    框窗的寬及長,以 pixels 為單位。
  • marginwidth="1" marginheight="1"
    該插入的文件與框邊所保留的空間。
  • frameborder="1"
    使用 1 表示顯示邊框, 0 則不顯示。(可以是 yes 或 no)
  • scrolling="Yes"
    使用 Yes 表示允許卷動(內定), No 則不許。

例子:

原代碼
<center><iframe src="iframe.html" name="test" align="MIDDLE" width="300" height="100" marginwidth="5" marginheight="5" frameborder="1">
很抱謙,您的瀏覽器并不支持 IFrame,不能正常瀏覽我的網頁。</iframe>
</center>
顯示結果



Kimi 2007-02-08 11:02 發表評論
]]>
Nokia PC 套件與藍牙適配器連接教程(轉)--個人推薦http://m.tkk7.com/kemi/archive/2006/12/15/87878.htmlKimiKimiFri, 15 Dec 2006 02:27:00 GMThttp://m.tkk7.com/kemi/archive/2006/12/15/87878.htmlhttp://m.tkk7.com/kemi/comments/87878.htmlhttp://m.tkk7.com/kemi/archive/2006/12/15/87878.html#Feedback1http://m.tkk7.com/kemi/comments/commentRss/87878.htmlhttp://m.tkk7.com/kemi/services/trackbacks/87878.html在一個干凈的操作系統上,安裝藍牙適配器驅動后,只要藍牙適配器已經被作為成功的識別為系統設備。我們繼續安裝諾基亞PC套件,這樣一點問題也沒有,PC套件會很順利的通過藍牙適配器識別出手機。PC套件提示“配對” 手機上輸入相同的“配對”碼,一氣呵成,連接成功。

  安裝步驟:

  1、安裝藍牙適配器驅動;

  2、安裝諾基亞PC套件;

  3、啟動手機藍牙,配對,連接;

  以上是連接順利的情況,但是事實并非總是那么輕松,也許我們買回藍牙適配器之前,電腦上早已裝好了諾基亞PC套件了。這時的安裝步驟應該是:

  1、安裝藍牙適配器驅動;

  2、卸載原諾基亞PC套件;

  3、卸載Nokia PC Connectivity Solution,卸載Nokia Connectivity Cable Driver(這是本文的重點,也是之前的相關玩家心得中沒有提及的地方,卸載原諾基亞PC套件并不會自動卸載這兩項,卸載這兩項需要在“添加/刪除程序”中進行);

  4、安裝諾基亞PC套件;

  5、啟動手機藍牙功能,配對,連接;

  卸載Nokia PC Connectivity Solution的原因是,Nokia PC Connectivity Solution 在安裝時會自動掃描本機中存在的藍牙適配器驅動(并且只有在安裝時才掃描系統中存在的藍牙適配器驅動),通常默認的是微軟藍牙驅動的連接選項(大家都用Win XP吧,呵呵)如果有Widcomm的驅動存在,諾基亞連接管理器中就啟用Widcomm藍牙驅動的連接選項;如果有IVT BlueSoleil驅動存在,諾基亞連接管理器中就啟用Widcomm藍牙驅動的連接選項。

  安裝了不同的藍牙驅動后,Nokia PC Connectivity Solution 一定要先卸載,然后再重裝諾基亞PC套件,覆蓋安裝是沒有用的,諾基亞連接管理器要么不能顯示該藍牙適配器的連接選項,要么不能成功連接。



Kimi 2006-12-15 10:27 發表評論
]]>
(轉)用Carbide+Vs.net開發Symbian程序http://m.tkk7.com/kemi/archive/2006/11/05/79175.htmlKimiKimiSun, 05 Nov 2006 03:20:00 GMThttp://m.tkk7.com/kemi/archive/2006/11/05/79175.htmlhttp://m.tkk7.com/kemi/comments/79175.htmlhttp://m.tkk7.com/kemi/archive/2006/11/05/79175.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/79175.htmlhttp://m.tkk7.com/kemi/services/trackbacks/79175.html 使用Carbide.vs與VS.NET2003構建Symbian開發平臺-S60 平臺

1.簡介

???? 在過去的幾年里從事Symbian OS/C++的開發,選擇什么樣的IDE開發環境是一件很讓人郁悶的事。微軟的Visual C++ 6.0 缺乏人性化的設計,而VS.NET卻不能很好地支持Symbian Os/C++的開發,Borland C++ BuilderX Mobile Edition 還有Metrowerks CodeWarrior也并不是每個人都會喜歡的,幸運的是自從諾基亞的Carbide.vs出現后,開發Symbian OS/C++的應用程序變得非常方便與簡單。

???? 什么是Carbide.vs呢,正確地說Carbide.vs并不是一個類似 VS.NET或Codewarrior 一樣的IDE開發環境,Carbide.vs是一個插件,一個能夠處理Symbian OS Sdk命令行并改善VS.NET編寫的Symbian os c++ 應用程序代碼的一個插件,同時Carbide.vs也很好地集成到了VS.NET的IDE開發環境中,有了Carbide.vs我們編寫起Symbian os c++應用程序將會變得更容易、更方便、更快捷。

???? 本文適合于想學習Symbian C++ 應用程序開發的的初學者,如果你對SDK還有IDE的選擇感到疑惑或者你已經對VS.NET的集成開發環境很熟的話,建議你采用Carbide.vs,你會發現Carbide.vs+VS.NET 2003的搭配開發起來會更順手,更容易。

?2.準備工作

???? 在你準備編寫此教程的實驗時,請確保你的電腦滿足了以下的軟件環境(開發symbian os c++ 必備)

? 1.Microsoft Visual Studio.Net 2003 :
?????????? 這個是必備的,我們將會使用VC++.NET 2003進行Symbian os c++的開發,所以VC++.NET是必裝項目。

??2. Java JRE:
????????????Carbide.vs和Symbian os 的SDK都要求要Java JRE的運行環境 ,不然無法安裝,請到
http://sun.java.com 下載最新版本的JRE

?3.ActivePerl:
?????????? 必備的軟件 請到
http://www.activestate.com/Products/ActivePerl/ 下載

?4.Symbian OS Series 60 SDK:
?????????????
這個是最重要的,SDK自帶了Symbian 的手機模擬器與編譯連接環境,至于選擇哪個版本的SDK要具體看你要開發的手機機型 ,如果不清楚要選擇哪個SDK的話,請到 http://www.forum.nokia.com/devices 查看機型對應的SDK并進行下載,在這里,我們面向的是 Series 60 第二版的SDK。在這里可以下載到S60系列的所有SDK http://forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html

??5.Carbide.vs:
????????????
們的主角,請到 http://forum.nokia.com/carbide 選擇Carbide.vs下載


?在用VS.NET 2003開發Symbian 項目的時候可能有些人會碰到 類似 “Error Spawning CL.exe” 的錯誤,可以通過這種方法來解決 ,依次打開菜單 工具->選項->->項目->VC++目錄 在右邊可執行目錄中確保
C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\tools
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE
三項的存在,如果不存在的話,請添加進去(請對應SDK與VS.NET的路徑進行修改)

3.開始使用carbide.vs

?打開VS.NET 2003 依次打開菜單 文件 新建->項目 在項目名稱里填入 HelloWorld ,選擇合適的保存目錄,請注意保存的目錄路徑中不能有空格的存在,并且最好把項目保存在跟Symbian os sdk 相同的驅動器下,最后按確定

??? ?接下來你會看到Carbide.vs的設置向導 在這里。你可以設置要使用的SDK,本教程里是使用S60 2.X FP2的SDK,主要是面向操作系統是Symbian os 8.0a 的手機開發的,你可以選擇特定的SDK開發平臺開發你的應用。在此向導里,你還可以設置此程序的其它參數,比如項目名稱,項目的目錄結構,UID等等信息。在這里我們選擇了S60 2.X FP2的SDK并用了 S60 Viewed based application的項目模板,用于開發多視圖的s60 應用程序。



??? ?運行向導設置完畢后按Finish按鈕,Carbide.vs就幫我們把項目相關的文件生成好了并顯示在VS.NET 2003的項目資源管理器中了,想看看運行效果?按F5,VS.NET便開始幫你生成應用程序并自動調用手機模擬器,打開后定位到HelloWorld軟件,打開,是不是一個簡單的多視圖S60應用程序出現了,恭喜你,你現在已經開始你的Symbian os c++軟件開發之旅了。

?在這里我要說明一下,也許有網友會問我UID是什么東西,UID其實就是標識一個軟件的一種序列號,關于UID的說明不在教程范圍內,請在網上搜索相關的資料。
?
?也有人會問我怎么他的模擬器跟我的很不一樣啊?他那個是默認的藍色的很單調的模擬器,而且也是沒有主題的。而我卻是有一個諾基亞6630的模擬器而且也帶了漂亮皮膚的,Symbian sdk的模擬器其實是可以換膚的,至于模擬器內部操作系統的主題也可以更換,具體請瀏覽本站的相關文章 給Symbian的模擬器換皮膚(換成我們喜歡的手機皮膚) 下載此你所喜歡的皮膚并配置模擬器,再次啟動時你就可以看到新的皮膚界面了,以后就不用再對著那又藍又丑的模擬器界面了。呵呵呵

4.在HelloWorld里面顯示圖像

?接下來我們將讓HelloWorld項目顯示一個簡單的圖像。第一步,制作 一張 bmp 的圖像文件,并保存到你的項目的路徑下的 data 目錄下,在教程里的項目是保存在C:\Symbian\Dev\HelloWorld\中的,所以我們制作 了一張 名為 Picture.bmp 的圖像文件并保存在 C:\Symbian\Dev\HelloWorld\data 目錄下,或者你可以直接通過打開VS.NET 2003的項目資源管理器,在data目錄上右擊選擇 添加->添加現有項->選擇Picutre.bmp以添加到項目中去。

?對于位圖文件,Symbian 建議把所有的位圖都打包進一種擴展名為 *.mbm 的文件里面,*.mbm 其實是一種位圖集文件,里面可以包含很多的位圖,類似于windows平臺的資源文件,將程序里要用到的位圖打包進 *.mbm 文件里后,我們在程序里就可以很方便 地使用這些位圖文件。在還沒有第三方輔助工具的應用前,要打包位圖生成 *.mbm 需要自己編寫腳本去實現,現在有了Carbide.vs我們可以很方便地將我們的位圖打包進 *.mbm 文件里面,只要我們在 項目名.mmp (在教程里是HelloWorld.mmp) 文件上點擊右鍵選擇。Bitmap Collection Tool ,打開后選擇 Current Directory 指定你的data目錄,就會在左下角的Available bitmaps 列表中顯示可用的位圖文件,然后再把你所需要的位圖文件移到右邊的 Selected bitmaps 中,Display size:在這里我們設置成了 176 x 208 因為我們是要生成S60 2.x的應用程序,所以我們選擇 176 x 208的分辨率

????? 編輯完成后編譯生成一下項目,這樣就會在SYMBIAN 的模擬器目錄中生成 一個所謂的 HelloWorld.mbm 與 HelloWorld.mbg 文件,在SYMBIAN的SDK目錄下搜索找到? HelloWorld.mbg并用記事本打開,你可以看到以下的類似內容
?
?enum TMbmHelloworld
?{
?EMbmHelloworldPicture
?};
?
?????? 這個枚舉類型TMbmHelloworld就是HelloWorld項目的位圖定義了,剛才我們已經添加了一個名為Picutre.bmp的位圖文件,EMbmHelloworldPicture就是對應了我們的那個Picutre.bmp位圖文件,接下來我們的任務就是讓HelloWorld顯示這個位圖。

?在這之前我們提過HelloWorld.mbm文件,其實這個才我們程序里真正要載入的位圖資源文件。打開HelloWorldContainer.h,在CEikLabel類的定義前面輸入以下代碼
??
?#include "HelloWorld.mbg"
?_LIT(KMbmFileName,"HelloWorld.mbm");

????? ?剛看到 _LIT 很多人會問起這是一個什么函數啊,其實這個不是函數,這個是一個預定義宏,在這里我們通過_LIT宏將"HelloWorld.mbm"這個字串賦值給KMbmFileName常量,其實在Symbian 里面沒有類似windows平臺的字符串類型(string),取得代之的是被稱做 描述符(descriptor)的對象 。關于描述符的更多幫助請查看相關的資料。

????? Symbian os 手機操作系統的文件系統與windows的文件系統是類似的,所以只給出一個"HelloWorld.mbm"文件不足以讓程序找到這個文件的具體位置并裝載進程序里,此時我們需要取得這個文件在操作系統里的絕對路徑,請打開 HelloWorldContainer.cpp 文件,在CHelloWorldContainer::ConstructL 函數里添加以下的代碼,
?
?TFileNamefullName(KMbmFileName);
?CompleteWithAppPath(fullName);//自動為文件名添加文件路徑

???????在這里我們創建了一個標準的可修改標識符fullName,包含了我們的mbm文件名,接下去的第二行代碼則把應用程序的路徑添加到這個fullName中,使fullName成為一個絕對的文件路徑。估計到這里,你應該可以猜出ConstructL函數是什么意思了吧?呵呵,好了,讓我們編譯一下程序,跟蹤一下fullName是一個什么路徑吧,按上F5,等待............不是吧,出錯了,VS.NET報出了
error C3861: “CompleteWithAppPath”: 即使使用參數相關的查找,也未找到標識符 的錯誤,有過一定編程基礎的人會想到肯定是哪個文件或庫沒有給引進來,猜對了,我們需要把一個 aknutils.h 的頭文件包含進我們的源代碼中,請打開 HelloWorldContainer.h 并加入 #include "aknutils.h"。加完后再試試,是不是已經不會報錯了?

??????? 如果你想知道fullName到底會是一個什么樣的值,你可以在?CompleteWithAppPath(fullName);的下一行代碼處設置一個斷點,按F5編譯生成并運行模擬器,打開你的程序,運行到了斷點處時,程序會停下來,光標定位在了IDE窗口,通過IDE的自動窗口我們可以看到fullName此時的值 。

???????????? 此時我們發現fullName的值為 Z:\System\Apps\helloworld\HelloWorld.mbm,(如果你沒有發現以上的窗口,請依次打開VS.NET的菜單 調試->窗口->自動窗口)。在這里 Z 代表了手機模擬器的驅動器,當你安裝到了目標手機上后,這個驅動器就會變成C,或者是E了。

????????????? 好了,接下來我們來讓程序顯示出我們添加的位圖。首先我們在HelloWorldContainer.h 頭文件中添加以下代碼

?CFbsBitmap* iImage;

?????????? 接著定位到HelloWorldContainer.cpp 的ConstructL函數中,在我們之前編寫的代碼下面輸入

?iImage = new (ELeave) CFbsBitmap();
?User::LeaveIfError(iImage->Load(fullName,EMbmHelloworldPicture));
?
?????????? 再定位到 HelloWorldContainer.cpp 的Draw()函數 并在最后面輸入

?gc.BitBlt(TPoint(0,0),iImage);

???????????這樣就通過了圖形上下文(graphics context,gc)將你的位圖復制到了屏幕的左上角。

????????? 編譯一下,OH,MY GOD ,又出錯。具體錯誤信息為

?HelloWorld error LNK2019: 無法解析的外部符號 "public: __thiscall CFbsBitmap::CFbsBitmap(void)" (??0CFbsBitmap@@QAE@XZ) ,該符號在函數 "public: void __thiscall CHelloWorldContainer::ConstructL(class TRect const &)" (?ConstructL@CHelloWorldContainer@@QAEXABVTRect@@@Z) 中被引用

?HelloWorld error LNK2019: 無法解析的外部符號 "public: int __thiscall CFbsBitmap::Load(class TDesC16 const &,long,int)" (?Load@CFbsBitmap@@QAEHABVTDesC16@@JH@Z) ,該符號在函數 "public: void __thiscall CHelloWorldContainer::ConstructL(class TRect const &)" (?ConstructL@CHelloWorldContainer@@QAEXABVTRect@@@Z) 中被引用

??????????? 還是同樣的原理, 我們要引入一個庫文件才能解決這個問題,請在項目資源管理器中右擊項目->屬性->配置屬性->鏈接器->命令行 ,在右邊的 附加選項 中輸入 fbscli.lib?

???????? 再次編譯,OK了,好現在我們運行這個程序,哈哈,圖像在我們的程序里顯示出來啦。好高興。
?

??????? 可是當我們退出程序時卻出現了程序已關閉的錯誤。

??????? 我的天哪,怎么會這樣呢,為什么我的程序不能正常退出呢,遺憾的是模擬器只提示了很簡單的錯誤提示,并沒有更詳細的錯誤報告,我們可以通過在 C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\wins\c\System\Bootdata 下創建一個 ErrRd 的空文件以讓模擬器顯示詳細的錯誤信息(請在相應的SDK目錄下操作),此時我們再次運行模擬器打開HelloWorld并關閉它,現在是不是提示信息多了一點呢?

????? ?模擬器報出了 ALLOC:17B18158 的錯誤,像這種類型的錯誤大多數情況下是因為我們使用了某個對象后忘記關閉它并釋放此對象的內存導致的,為了保證程序的正常運行,我們要在使用一個對象后及時將它刪除掉,于是我們定位到了HelloWorldContainer.cpp的~CHelloWorldContainer (析構函數) 中 輸入以下代碼
?
?delete iImage;

?? ?當我們再次編譯運行程序后,就不會再出現那討厭的出錯對話框了。

?

5.讓我們添加一些功能
?
?我們已經實現了在程序里顯示位圖的功能了,接下來我們將實現一個登陸框的功能,到時將會用到資源文件。

5.1 為菜單添加項目
?打開 HelloWorld.loc 文件,定義菜單的文本
?
?#define qtn_view1_login_item "Login"

?打開HelloWorld.hrh ,修改THelloWorldCommandIds 的枚舉定義,改成以下
?enum THelloWorldCommandIds
?{
???? EHelloWorldCmdAppTest = 1,
???? EHelloWorldCmdLogin
? };

?EHelloWorldCmdLogin其實就是對應了菜單項 "Login"

?程序的菜單資源定義在了 HelloWorld.rss 文件中,我們打開這個文件,找到以下的定義
?
RESOURCE MENU_PANE r_helloworld_app_menu
??? {
??? items =
??????? {
??????? MENU_ITEM { command = EHelloWorldCmdAppTest; txt = qtn_appl_option_item; },
??????? MENU_ITEM { command = EAknCmdExit; txt = qtn_appl_exit; }
??????? };
??? }

?把EHelloWorldCmdAppTest 替換成EHelloWorldCmdLogin,再把qtn_appl_option_item替換成qtn_view1_login_item ,這樣我們就把程序選項菜單的第一項替換成 "Login" 了。

?

?

5.2 創建登陸框
?
??????????? 在這里我們要創建一個登陸框,用于生成用戶名和密碼的對話框,按照傳統的Symbian OS C++開發,我們本來應該在HelloWorld.rss 里定義資源,但是有了Carbide.vs后我們卻可以利用 Carbide.vs提供的功能非常方便地生成我們所要的資源,請打開 HelloWorld.rss 定位到文件的最后,點擊右鍵->Add Fragment 將會出現Carbide.vs提供的生成資源窗口,在Template 處選擇 S60 Multiline query dialog ,在下方會出現此對話框的效果圖,就是我們所要的登陸框樣子,按下一步,指定一個比較有效的名字,r_login_query ,最后按Finish生成資源,你將會發現HelloWorld.rss多了幾行內容,這就是r_login_query的資源定義。

?RESOURCE DIALOG r_login_query {
??flags = EGeneralQueryFlags;
?buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
?items = {
??DLG_LINE {
???type = EAknCtMultilineQuery;
???id = EMultilineFirstLine;
???control = AVKON_DATA_QUERY {
????layout = EMultiDataFirstEdwin;
????label = "Username:";
????control = EDWIN { maxlength = 8; };
???};
??},
??DLG_LINE {
???type = EAknCtMultilineQuery;
???id = EMultilineSecondLine;
???control = AVKON_DATA_QUERY {
????layout = EMultiDataSecondSecEd;
????label = "Password:";
????control = SECRETED { num_letters = 8; };
???};
??}
?};
}

?為了要讓程序更通用,本地化起來,我們有必要將UserName與Password的值定義到.loc文件中,打開HelloWorld.loc文件,加入以下定義:
?
?
?#define qtn_username "UserName:"

?#define qtn_password "Password:"

??接下來我們來編寫代碼讓這個登陸框顯示出來,請打開HelloWorldView.h 先加下以下文件的引用

?#include <AknQueryDialog.h>
?#include <aknnotewrappers.h>
?#include <StringLoader.h>
?#include "HelloWorld.hrh"

?再加入處理函數的聲明
?
?void HandleLoginL();

?接著打開HelloWorld.loc 我們還要定義一些要顯示的文本
?
?#define qtn_login_success "Congretulation You Have Loged in"

?#define qtn_login_fail "Sorry you have the wrong username or password"

?#define qtn_login_cancel "You have canceled the login"

?分別定義了登陸成功,登陸失敗,與取消登陸的三種顯示文本

?打開HelloWorld.rss文件,加入資源定義
?
?RESOURCE TBUF r_login_success { buf = qtn_login_success; }

?RESOURCE TBUF r_login_fail { buf = qtn_login_fail; }

?RESOURCE TBUF r_login_cancel { buf = qtn_login_cancel; }

?這樣我們就能在程序中動態裝入這些資源了,繼續打開HelloWorldView.cpp文件,實現HandleLoginL函數的定義


?void CHelloWorldView::HandleLoginL()
?{
???? _LIT(KCorrectLogin,"bention");//定義正確的用戶名
?????_LIT(KCorrectPwd,"123456");//定義正確的密碼

???? //顯示對話框
???? TBuf<8>?username(_L(""));
???? TBuf<8>?password(_L(""));
???? CAknMultiLineDataQueryDialog* dialog=CAknMultiLineDataQueryDialog::NewL(username,password);//聲明登陸對話框對象

?????if (dialog->ExecuteLD(R_LOGIN_QUERY)) {//調用登陸對話框
???????? if (username.Compare(KCorrectLogin)==0 && password.Compare(KCorrectPwd)==0) {
???????//登陸成功
???????CAknConfirmationNote* note = new (ELeave) CAknConfirmationNote();//定義一個信息提示框
???????HBufC* notePrompt=StringLoader::LoadLC(R_LOGIN_SUCCESS);//裝載R_LOGIN_SUCCESS文本資源,以顯示登陸成功信息
???????note->ExecuteLD(*notePrompt);//打開對話框
???????CleanupStack::PopAndDestroy(notePrompt);
????}
???else {
?????? //登陸失敗
???????CAknErrorNote* note = new (ELeave) CAknErrorNote();//定義一個錯誤提示框
???????HBufC*? notePrompt=StringLoader::LoadLC(R_LOGIN_FAIL);//裝載R_LOGIN_FAIL文本資源,以顯示登陸失敗信息
???????note->ExecuteLD(*notePrompt);
???????CleanupStack::PopAndDestroy(notePrompt);
???}
?}
?else {
??????//取消登陸
??????CAknWarningNote* note = new (ELeave) CAknWarningNote();//定義一個警告提示框
????? HBufC* notePrompt=StringLoader::LoadLC(R_LOGIN_CANCEL);//裝載R_LOGIN_CANCEL文本資源,以顯示取消登陸警告信息
??????note->ExecuteLD(*notePrompt);
??????CleanupStack::PopAndDestroy(notePrompt);
??}
?}

?接下去我們還差啥?就差把HandleLoginL放在處理菜單命令的函數中了,定位到HandleCommandL 中,HandleCommandL 是用來專門處理事件的,我們在switch結構中加入
?case EHelloWorldCmdLogin:
??{
???HandleLoginL();
???break;
??}
?其中的EHelloWorldCmdLogin 就是我們的登陸按鈕啦,這樣就實現了當我們點擊了Login按鈕后就會調用HandleLoginL去做相應的處理。

?好了編譯一下,我頂,又出錯,呵呵,別急,你還得在項目里引入? commonengine.lib 文件呢,具體做法與 引入fbscli.lib 文件一樣,記得要跟fbscli.lib之間隔開一個空格喲。
?
?好了,大功告成,現在再次編譯,成功,運行,打開軟件,點擊Login菜單項,輸入,是不是成功了?興奮?郁悶?

?

?

?????? 現在我們的程序全都是英文的,或許有人會問我為什么不用中文的啊,比如UserName為什么不寫成用戶名?呵呵,說實在的,我蠻懶 的,因為我們不能直接在資源文件里直接定義一個中文文本,在我寫的文章中有一篇關于在Symbian中如何顯示中文的文章, 關于SymbianSeries?60開發的中文顯示問題 有興趣的可以查看 ,按照文章的步驟去做相應的修改后你的程序就直接顯示中文啦。至此,本文的實戰代碼也到一段落了。

6.導入已有的Symbian os c++項目

?利用 Carbide.vs我們可以很方便 地導入現有的Symbian os c++項目,在打開VS.NET 2003后我們依次點擊 文件->Import Symbian Project .出現 導出向導,只要選擇項目的 .mmp 文件就可以導入了,剩下的不用我廢話了吧,聰明的你一定可以非常輕易地完成 。

7.后記

?Carbide.vs的確是一個非常不錯的VS.NET 2003輔助開發Symbian Os c++ 應用的工具,有了它,你還會用vc++ 6.0 嗎,讓我很爽的一點是用Carbide.vs基本上不用去手動配置SDK路徑了與EPOCROOT此類變量了。用Carbide.vs懶得有理,哈哈,寫起應用來也非常方便 。希望大家在看了本文后會喜歡上這個工具。

8.項目源文件下載

為了方便大家查看, 我把這 個helloworld項目的所有源文件打包供大家下載,大家在使用時只要導入mmp文件就可以使用了。

代碼下載:點擊下載此文件

?聲明:本文是我在參考了《Getting Started with Nokia's Carbide.vs 2.0 Development Tools》? Andreas Jakl / Mopius 寫的英文教程后自己修改了部分東西并翻譯成中文而寫成的,原版大家可以到http://www.mopius.com 下載。寫這份教程是為了方便不喜歡E文或E文水平不高的同學方便學習的,由于本人表達能力有限,不足之處請大家多多指教

轉載請注明出處,謝謝合作。

Made in 藍色憂郁(Bention,翁培鋮?



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1355561



Kimi 2006-11-05 11:20 發表評論
]]>
簡單的網絡配置http://m.tkk7.com/kemi/archive/2006/09/26/71904.htmlKimiKimiTue, 26 Sep 2006 02:02:00 GMThttp://m.tkk7.com/kemi/archive/2006/09/26/71904.htmlhttp://m.tkk7.com/kemi/comments/71904.htmlhttp://m.tkk7.com/kemi/archive/2006/09/26/71904.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/71904.htmlhttp://m.tkk7.com/kemi/services/trackbacks/71904.html Windows XP的網上鄰居有許多差強人意的地方:訪問速度慢,無法訪問其他主機……其實這些問題通過簡單的設置都可以很好地解決。

在這之前先確保能夠互相PING通。

1.開啟guest賬戶。

2.允許Guest用戶訪問本機 :打開組策略編輯器,依次選擇“計算機配置→Windows設置→安全設置→本地策略→用戶權利指派”,刪除“拒絕從網絡訪問這臺計算機”策略中的“GUEST”賬號。

3.更改網絡訪問模式:打開組策略編輯器,依次選擇“計算機配置→Windows設置→安全設置→本地策略→安全選項”,雙擊“網絡訪問:本地賬號的共享和安全模式”策略,將 “僅來賓—本地用戶以來賓身份驗證”改為“經典:本地用戶以自己的身份驗證”。

4.解除空口令限制:在系統“安全選項”中停用“賬戶:使用空白密碼的本地賬戶只允許進行控制臺登錄”策略。

5.網絡鄰居看不到計算機:打開“控制面板→性能和維護→管理工具→服務”,啟動里面的“Computer Browser”服務。

6.增加共享文件權限選項:依次打開“我的電腦→工具→文件夾屬性→查看→高級設置”,將 “簡單文件共享(推薦)”前面的選擇取消,若還有“Mickey Mouse”項也將其取消。

7.網絡鄰居不響應或者反應慢,關掉WinXP的計劃任務服務(Task Scheduler) 到“控制面板/管理工具/服務”中打開“Task Scheduler”的屬性對話框,停止該服務,再將啟動類型設為“手動”。

關掉自動搜索的網絡文件夾和打印機,到“網上鄰居/文件/文件夾選項”中,點擊查看最后一項,關閉自動搜索的網絡文件夾和打印機這項。



Kimi 2006-09-26 10:02 發表評論
]]>
WEB 服務器學習(轉)http://m.tkk7.com/kemi/archive/2006/08/03/61521.htmlKimiKimiThu, 03 Aug 2006 07:47:00 GMThttp://m.tkk7.com/kemi/archive/2006/08/03/61521.htmlhttp://m.tkk7.com/kemi/comments/61521.htmlhttp://m.tkk7.com/kemi/archive/2006/08/03/61521.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/61521.htmlhttp://m.tkk7.com/kemi/services/trackbacks/61521.html 在UNIX和LINUX平臺下使用最廣泛的免費HTTP服務器是W3C、NCSA和APACHE服務器,而Windows平臺NT/2000/2003使用IIS的WEB服務器。在選擇使用WEB服務器應考慮的本身特性因素有:性能、安全性、日志和統計、虛擬主機、代理服務器、緩沖服務和集成應用程序等,下面介紹幾種常用的WEB服務器。
  
① Microsoft IIS

Microsoft的Web服務器產品為Internet Information Server (IIS), IIS 是允許在公共Intranet或Internet上發布信息的Web服務器。IIS是目前最流行的Web服務器產品之一,很多著名的網站都是建立在IIS的平臺上。IIS提供了一個圖形界面的管理工具,稱為 Internet服務管理器,可用于監視配置和控制Internet服務。
  
IIS是一種Web服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器,分別用于網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作為擴展Web服務器功能的編程接口;同時,它還提供一個Internet數據庫連接器,可以實現對數據庫的查詢和更新。
② IBM WebSphere ?

WebSphere Application Server 是 一 種功能完善、開放的Web應用程序服務器,是IBM電子商務計劃的核心部分,它是基于 Java 的應用環境,用于建立、部署和管理 Internet 和 Intranet Web 應用程序。 這一整套產品進行了擴展,以適應 Web 應用程序服務器的需要,范圍從簡單到高級直到企業級。
  
WebSphere 針對以 Web 為中心的開發人員,他們都是在基本 HTTP服務器和 CGI 編程技術上成長起來的。IBM 將提供 WebSphere 產品系列,通過提供綜合資源、可重復使用的組件、功能強大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸縮運行時環境,來幫助這些用戶從簡單的 Web 應用程序轉移到電子商務世界。
③ BEA WebLogic

BEA WebLogic Server 是一種多功能、基于標準的web應用服務器,為企業構建自己的應用提供了堅實的基礎。各種應用開發、部署所有關鍵性的任務,無論是集成各種系統和數據庫,還是提交服務、跨 Internet 協作,起始點都是 BEA WebLogic Server。由于 它具有全面的功能、對開放標準的遵從性、多層架構、支持基于組件的開發,基于 Internet 的企業都選擇它來開發、部署最佳的應用。
  
BEA WebLogic Server 在使應用服務器成為企業應用架構的基礎方面繼續處于領先地位。BEA WebLogic Server 為構建集成化的企業級應用提供了穩固的基礎,它們以 Internet 的容量和速度,在連網的企業之間共享信息、提交服務,實現協作自動化。BEA WebLogic Server 的遵從 J2EE 、面向服務的架構,以及豐富的工具集支持,便于實現業務邏輯、數據和表達的分離,提供開發和部署各種業務驅動應用所必需的底層核心功能。
  
④ IPlanet Application Server

作為Sun與Netscape聯盟產物的iPlanet公司生產的iPlanet Application Server 滿足最新J2EE規范的要求。它是一種完整的WEB服務器應用解決方案,它允許企業以便捷的方式,開發、部署和管理關鍵任務 Internet 應用。該解決方案集高性能、高度可伸縮和高度可用性于一體,可以支持大量的具有多種客戶機類型與數據源的事務。
  
iPlanet Application Server的基本核心服務包括事務監控器、多負載平衡選項、對集群和故障轉移全面的支持、集成的XML 解析器和可擴展格式語言轉換(XLST)引擎以及對國際化的全面支持。iPlanet Application Server 企業版所提供的全部特性和功能,并得益于J2EE系統構架,擁有更好的商業工作流程管理工具和應用集成功能。
⑤ Oracle IAS

Oracle iAS的英文全稱是Oracle Internet Application Server,即Internet應用服務器,Oracle iAS是基于Java的應用服務器,通過與Oracle 數據庫等產品的結合,Oracle iAS能夠滿足Internet應用對可靠性、可用性和可伸縮性的要求。
  
Oracle iAS最大的優勢是其集成性和通用性,它是一個集成的、通用的中間件產品。在集成性方面,Oracle iAS將業界最流行的HTTP服務器Apache集成到系統中,集成了Apache的Oracle iAS通信服務層可以處理多種客戶請求,包括來自Web瀏覽器、胖客戶端和手持設備的請求,并且根據請求的具體內容,將它們分發給不同的應用服務進行處理。在通用性方面,Oracle iAS支持各種業界標準,包括 JavaBeans、CORBA、Servlets以及XML標準等,這種對標準的全面支持使得用戶很容易將在其他系統平臺上開發的應用移植到Oracle平臺上。
⑥ Apache

Apache源于NCSAhttpd服務器,經過多次修改,成為世界上最流行的Web服務器軟件之一。Apache是自由軟件,所以不斷有人來為它開發新的功能、新的特性、修改原來的缺陷。Apache的特點是簡單、速度快、性能穩定,并可做代理服務器來使用。本來它只用于小型或試驗Internet網絡,后來逐步擴充到各種Unix系統中,尤其對Linux的支持相當完美。
  
Apache是以進程為基礎的結構,進程要比線程消耗更多的系統開支,不太適合于多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充群集節點而不是增加處理器。到目前為止Apache仍然是世界上用的最多的Web服務器,世界上很多著名的網站都是Apache的產物,它的成功之處主要在于它的源代碼開放、有一支開放的開發隊伍、支持跨平臺的應用(可以運行在幾乎所有的Unix、Windows、Linux系統平臺上)以及它的可移植性等方面。
⑦ Tomcat

Tomcat是一個開放源代碼、運行servlet和JSP Web應用軟件的基于Java的Web應用軟件容器。Tomcat Server是根據servlet和JSP規范進行執行的,因此我們就可以說Tomcat Server也實行了Apache-Jakarta規范且比絕大多數商業應用軟件服務器要好。
  
Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技術的標準實現,是基于Apache許可證下開發的自由軟件。Tomcat是完全重寫的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代碼,特別是Apache服務適配器。隨著Catalina Servlet引擎的出現,Tomcat第四版號的性能得到提升,使得它成為一個值得考慮的Servlet/JSP容器,因此目前許多WEB服務器都是采用Tomcat。



Kimi 2006-08-03 15:47 發表評論
]]>
今天用上了FLASH,記下點東東http://m.tkk7.com/kemi/archive/2006/05/16/46419.htmlKimiKimiTue, 16 May 2006 07:44:00 GMThttp://m.tkk7.com/kemi/archive/2006/05/16/46419.htmlhttp://m.tkk7.com/kemi/comments/46419.htmlhttp://m.tkk7.com/kemi/archive/2006/05/16/46419.html#Feedback0http://m.tkk7.com/kemi/comments/commentRss/46419.htmlhttp://m.tkk7.com/kemi/services/trackbacks/46419.htmlPORTAL FLASH INDEX:
<?xml version='1.0' encoding='GBK'?>
<jsp:root xmlns:jsp=" http://java.sun.com/JSP/Page " version="2.0"
????????? xmlns:h="
http://java.sun.com/jsf/html "
????????? xmlns:f="
http://java.sun.com/jsf/core "
????????? xmlns:afh="
http://xmlns.oracle.com/adf/faces/html "
????????? xmlns:af="
http://xmlns.oracle.com/adf/faces ">
? <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
????????????? doctype-system="
http://www.w3.org/TR/html4/loose.dtd "
????????????? doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
? <jsp:directive.page contentType="text/html;charset=GBK"/>
? <f:view>
??? <html>
????? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
??????? <title>Business Home Page</title>
????? </head>
????? <body><h:form>
????????? <f:verbatim>
??????????? <table border="0" cellpadding="0" cellspacing="0" width="100%"
?????????????????? height="100%" align="center">
????????????? <tr align="center" style="background-color:#EAEAEA">
??????????????? <td>
????????????????? <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
????????????????????????? codebase="
http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0 "
????????????????????????? width="700" height="430" id="dfmGuide" align="middle">
??????????????????? <param name="allowScriptAccess" value="sameDomain"/>
??????????????????? <param name="movie" value="kemi.swf"/>
??????????????????? <param name="quality" value="high"/>
??????????????????? <param name="scale" value="exactfit"/>
??????????????????? <param name="bgcolor" value="#8473E0"/>
??????????????????? <embed src="kemi.swf" quality="high" scale="exactfit"
?????????????????????????? width="1004" height="620" name="dfmGuide"
?????????????????????????? align="middle" allowScriptAccess="sameDomain"
?????????????????????????? type="application/x-shockwave-flash"
?????????????????????????? pluginspage="
http://www.macromedia.com/go/getflashplayer"/ >
????????????????? </object>
??????????????? </td>
????????????? </tr>
??????????? </table>
??????????? <table border="0" cellpadding="0" cellspacing="0" width="100%"
?????????????????? height="100%" align="center">
????????????? <tr align="center" style="background-color:#EAEAEA">
??????????????? <td align="center">
????????????????? <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
????????????????????????? codebase="
http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0 "
????????????????????????? width="700" height="50" id="dfmGuide" align="middle">
??????????????????? <param name="allowScriptAccess" value="sameDomain"/>
??????????????????? <param name="movie" value="flowbar.swf"/>
??????????????????? <param name="quality" value="high"/>
??????????????????? <param name="scale" value="exactfit"/>
??????????????????? <param name="bgcolor" value="#FFFFFF"/>
??????????????????? <embed src="flowbar.swf" quality="high" scale="exactfit"
?????????????????????????? width="1004" height="620" name="dfmGuide"
?????????????????????????? align="middle" allowScriptAccess="sameDomain"
?????????????????????????? type="application/x-shockwave-flash"
?????????????????????????? pluginspage="
http://www.macromedia.com/go/getflashplayer"/ >
????????????????? </object>
??????????????? </td>
????????????? </tr>
??????????? </table>
??????????? <table align="center">
????????????? <tr align="center">
??????????????? <td style="font-size:18px;color:red;">Welcome to Prime Success
????????????????????????????????????????????????????? Portal</td>
????????????? </tr>
??????????? </table>
????????? </f:verbatim>
??????? </h:form></body>
??? </html>
? </f:view>
</jsp:root>


下載SWF文件后,可以使用破譯軟件,如閃客精靈轉變為FLASH能打開的.FLA文件。
注意幀,關鍵幀的作用。
另外,韓國FLASH做的就是好!


Kimi 2006-05-16 15:44 發表評論
]]>
主站蜘蛛池模板: 日韩免费高清视频网站| 国产AV无码专区亚洲Av| 一级毛片在播放免费| 亚洲国产精品久久久久网站| 一个人看www在线高清免费看| 羞羞视频在线免费观看| 亚洲国产香蕉碰碰人人| 日韩免费视频播播| 免费精品一区二区三区第35 | 国产成人免费片在线观看| 中文字幕免费视频精品一| 亚洲一区二区三区亚瑟| 精品国产亚洲一区二区在线观看 | 久久99青青精品免费观看| 久久精品亚洲日本波多野结衣| 亚洲AV综合色一区二区三区| 女性无套免费网站在线看| 在线观看片免费人成视频无码| 日韩亚洲不卡在线视频中文字幕在线观看 | 久久久久亚洲AV成人片| 免费在线观看黄网站| 日本人的色道免费网站| 国产在线国偷精品免费看| 亚洲日韩国产一区二区三区在线| 亚洲成色在线综合网站| 亚洲AV成人潮喷综合网| 成人免费激情视频| 久久国产免费观看精品| 曰批全过程免费视频观看免费软件| 亚洲中文无码线在线观看| 亚洲国产精品嫩草影院在线观看 | 亚洲精品自产拍在线观看| 国产精品自在自线免费观看| 精品国产污污免费网站aⅴ | 亚洲一区视频在线播放| 性色av免费观看| 免费看污成人午夜网站| 99热这里有免费国产精品| 国产综合免费精品久久久| 一本一道dvd在线观看免费视频| 亚洲精品国产国语|