[ 精選文章 ]
自行車 入門 Escape 3 , Snap 21 , Revel
最近周末想運動 , 平日想通勤 , 想買台自行車 , 把自己找的資料跟大家分享 , 如果你是玩家級的 就不用看了 這是給跟我一樣的新新新手 參考的 騎車半年後的補充: 如果你有把握你是真的有時間有興趣會一直騎,建議還是存點錢買好一點的彎把公路車, 或是可以考慮買2手的自...
2016年1月29日 星期五
2016年1月28日 星期四
Checked Build ACPI.sys for Win10 TH2 (10586)
ACPI Checked Build for Win10 TH2 (10586) : MEGA
基本知識 :
TrustedInstaller它是一個Windows的Services,而它的服務名稱為Windows Modules Installer.它的工作是模擬一個虛擬的權限,並且可在檔案中被賦予.這個服務是從Windows Vista開始,而在Windows7以後被大量使用.
微軟開發這個功能,是基於過去很多電腦被感染病毒,或重要系統檔案遭竄改刪除,主要是這些惡意程式拿到擁有最高權限的管理者帳號密碼,才能對電腦任意的發動攻擊而TrustedInstaller的出現,就是要防止這種事情發生.
在Windows7以後的版本中微軟對於重要的系統檔,不管是System或Administrator帳號,只賦予讀取的功能.而完整的控制功能,則交給TrustedInstaller這個虛擬帳號.
因此你會發現,雖然你是系統的最高管理員,但是在Windows忠想要修改或刪除某些系統檔,它會出現拒絕存取檔案的訊息.
要解決這個問題,首先必須將檔案的擁有權拿回來,再將檔案控制權交給你想要使用的帳號.
Location : C:\Windows\System32\drivers\ACPI.SYS
原始的 ACPI.sys 位置 |
Checked build ACPI.sys for Win10 TH2
內容 - 安全性 - 進階 -> 修改擁有者 (點選變更)
輸入 USERS 點選 檢查名稱
或是使用尋找
授予權限 , 選擇稽核 - 新增
2016年1月21日 星期四
ReleasePackage.2016 v02
Note : Please Install Winrar before use this package
Brief : the Release package first try to locate the winrar.exe in program files , if not found , ask for user input. after WinRAR.exe is located , Generate the packed EXE file for easy release.
use the packed EXE file (named "ReleasePackage.exe") to build the release package
File Requires:
1.Changes.txt For JY Release package use , the bios release history
2.Bios , EC release note and BVT Report in XLS or XLSX format
3.xxxCTnnA.bin EC binary file
4.xxxKTnnA.8MB BIOS 8MB File
5.xxxKTnnA.CAP BIOS 6MB File
6.TC-xxx.rom OA2 File , location : "ReleasePackage\MFG\OA2\TC-xxx.bin"
7.Informations in \ReleasePackage\MFG\SMBIOS\DOS\DMI.bat must update manually
File Descriptions:
ReleasePackage.2016.02.7z : Main Package file
DEMO File.7z : for DEMO release
Usage:
1. Uncompress "ReleasePackage.2016.02.7z" to a Folder
2. You MUST put your own OA2 file before next step (Can be skip if for DEMO only)
Double click BUILD.BAT
3.If there is no Winrar installed in "C:\Program Files\WinRAR\WinRAR.exe" , will skip this step is winrar already installed in program files.
4.Please input the path for your WINRAR.EXE
(eg , my Winrar is in D:\utility\WinRAR\WinRAR.exe)
If the WinRAR.exe is found , the screen will back to Black , and closed soon.
5.Now the Package is Generated , named "ReleasePackage.exe"
6.Copy "ReleasePackage.exe" to another folder to try to release
7. Uncompress the DEMO File.7z to the folder
8.Double click "ReleasePackage.exe" , the release package is generated once you see the dos prompt as below
1.Check the OA2 Binary is the one you need (Can be ignored for DEMO)
2.Please update informations in \ReleasePackage\MFG\SMBIOS\DOS\DMI.bat
3.Generate the HASH code for JY package
4.Check if the release note is correct
9.Please Do ALL the test in the package
Brief : the Release package first try to locate the winrar.exe in program files , if not found , ask for user input. after WinRAR.exe is located , Generate the packed EXE file for easy release.
use the packed EXE file (named "ReleasePackage.exe") to build the release package
File Requires:
1.Changes.txt For JY Release package use , the bios release history
2.Bios , EC release note and BVT Report in XLS or XLSX format
3.xxxCTnnA.bin EC binary file
4.xxxKTnnA.8MB BIOS 8MB File
5.xxxKTnnA.CAP BIOS 6MB File
6.TC-xxx.rom OA2 File , location : "ReleasePackage\MFG\OA2\TC-xxx.bin"
7.Informations in \ReleasePackage\MFG\SMBIOS\DOS\DMI.bat must update manually
File Descriptions:
ReleasePackage.2016.02.7z : Main Package file
DEMO File.7z : for DEMO release
Usage:
1. Uncompress "ReleasePackage.2016.02.7z" to a Folder
2. You MUST put your own OA2 file before next step (Can be skip if for DEMO only)
Double click BUILD.BAT
3.If there is no Winrar installed in "C:\Program Files\WinRAR\WinRAR.exe" , will skip this step is winrar already installed in program files.
4.Please input the path for your WINRAR.EXE
(eg , my Winrar is in D:\utility\WinRAR\WinRAR.exe)
If the WinRAR.exe is found , the screen will back to Black , and closed soon.
5.Now the Package is Generated , named "ReleasePackage.exe"
6.Copy "ReleasePackage.exe" to another folder to try to release
7. Uncompress the DEMO File.7z to the folder
8.Double click "ReleasePackage.exe" , the release package is generated once you see the dos prompt as below
1.Check the OA2 Binary is the one you need (Can be ignored for DEMO)
2.Please update informations in \ReleasePackage\MFG\SMBIOS\DOS\DMI.bat
3.Generate the HASH code for JY package
4.Check if the release note is correct
9.Please Do ALL the test in the package
2016年1月18日 星期一
Visual Studio 2015 繁中 ISO
http://download.microsoft.com/download/D/7/0/D709701D-500F-443A-A432-E62184C77926/vs2015.pro_cht.iso
中文專業版 連結檔名為 vs2015.pro_cht.iso
繁中Pro
簡中社區版 改連結檔名為 vs2015.com_chs.iso
簡中社區版 改連結檔名為 vs2015.com_chs.iso
English Enterprise
繁中企業版 SHA1: D9B76AC7021CCCCB1E427CF2161C297AA9C820C1
繁中專業版 SHA1: 7F51CBF6BA98D4B40E911A477D9112AFA7F96750
From Visual Studio 2015 序號
繁體中文專業版序號 HMGNV-WCYXV-X7G9W-YCX63-B98R2
Visual Studio Enterprise 2015 ENT:
HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
2XNFG-KFHR8-QV3CP-3W6HT-683CH
繁中企業版 SHA1: D9B76AC7021CCCCB1E427CF2161C297AA9C820C1
繁中專業版 SHA1: 7F51CBF6BA98D4B40E911A477D9112AFA7F96750
From Visual Studio 2015 序號
繁體中文專業版序號 HMGNV-WCYXV-X7G9W-YCX63-B98R2
Visual Studio Enterprise 2015 ENT:
HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
2XNFG-KFHR8-QV3CP-3W6HT-683CH
2016年1月7日 星期四
批次檔 基本變數
@echo off
@echo *** 可從檔案總管拖檔案到這個 bat 看效果... ***
@echo _
@echo 用 "^" 可以串接及顯示多行^
這是第二行^
這是第三行
@echo _
@echo 目前日期時間: %Date% %Time%
@echo 目前目錄: %CD%
@echo 目前磁碟: %CD:~0,2%
@echo 取子字串的方式: %Date:~2,8%
@echo _
@echo 本批次檔是 %0
@echo 加上 ~ 會移除包起來的 quotas : %~0
@echo 第 1 個參數是 "%~1"
@echo 第 2 個參數是 "%~2"
@echo 第 3 個參數是 "%~3"
@echo _
@echo 本批次檔所在路徑 (要呼叫同目錄下的執行檔時需要): %~dp0
@echo 像是這樣呼叫 (加上 "" 才保險): "%~dp0OtherProgram.exe" "%1"
@echo 本批次檔所在磁碟: %~d0
@echo _
@echo f d p n x s a t z ※ 可複合使用:
@echo f (檔案路徑): %~f0
@echo d (所在磁碟): %~d0
@echo p (檔案目錄): %~p0
@echo n (純 檔 名): %~n0
@echo x (附 加 名): %~x0
@echo s (短 檔 名): %~s0
@echo a (檔案屬性): %~a0
@echo t (檔案時間): %~t0
@echo z (檔案大小): %~z0
@echo _
@echo 複合例: %~dp1
@echo 複合例: %~nx1
@echo 複合例: %~fs1
@echo ($PATH: 會搜尋路徑裡符合的檔) 呼叫例:"%~f0" cmd.exe
@echo 複合例: %~fs$PATH:1
@echo 複合例: %~ftza1
@echo _
@echo 電腦名稱: %ComputerName%
@echo _
@echo pause 是用來暫停, 等待按下任意鍵.
@pause
@echo *** 可從檔案總管拖檔案到這個 bat 看效果... ***
@echo _
@echo 用 "^" 可以串接及顯示多行^
這是第二行^
這是第三行
@echo _
@echo 目前日期時間: %Date% %Time%
@echo 目前目錄: %CD%
@echo 目前磁碟: %CD:~0,2%
@echo 取子字串的方式: %Date:~2,8%
@echo _
@echo 本批次檔是 %0
@echo 加上 ~ 會移除包起來的 quotas : %~0
@echo 第 1 個參數是 "%~1"
@echo 第 2 個參數是 "%~2"
@echo 第 3 個參數是 "%~3"
@echo _
@echo 本批次檔所在路徑 (要呼叫同目錄下的執行檔時需要): %~dp0
@echo 像是這樣呼叫 (加上 "" 才保險): "%~dp0OtherProgram.exe" "%1"
@echo 本批次檔所在磁碟: %~d0
@echo _
@echo f d p n x s a t z ※ 可複合使用:
@echo f (檔案路徑): %~f0
@echo d (所在磁碟): %~d0
@echo p (檔案目錄): %~p0
@echo n (純 檔 名): %~n0
@echo x (附 加 名): %~x0
@echo s (短 檔 名): %~s0
@echo a (檔案屬性): %~a0
@echo t (檔案時間): %~t0
@echo z (檔案大小): %~z0
@echo _
@echo 複合例: %~dp1
@echo 複合例: %~nx1
@echo 複合例: %~fs1
@echo ($PATH: 會搜尋路徑裡符合的檔) 呼叫例:"%~f0" cmd.exe
@echo 複合例: %~fs$PATH:1
@echo 複合例: %~ftza1
@echo _
@echo 電腦名稱: %ComputerName%
@echo _
@echo pause 是用來暫停, 等待按下任意鍵.
@pause
VBScript 語法彙總
http://ycchen.im.ncnu.edu.tw/www2000/html/h.htm
網際網路應用--附錄H VBScript 語法彙總
附錄 H VBScript 語法彙總
H.1 VBScript
VBScript 是微軟公司程式語言 Visual Basic (VB) 家族的一個新的成員,對
於 active scripting 提供多樣的環境,包括客戶端的 IE 瀏覽器以及伺服器
端的 PWS、IIS 伺服器。
有關 VBScript 在 HTML 裡的使用方法,您可選按瀏覽器的的功能
檔案 (F) | 開啟舊檔 (O)...
選 vbstutor.htm 網頁,該網頁提供簡要的說明。
C:\Program Files\WEBSVR\DOCS\ASPDocs\ref\vbs\vbscript\vbstutor.htm
有關 VBScript 的語法 (Language Reference),可參考 vbstoc.htm 網頁。
C:\Program Files\WEBSVR\DOCS\ASPDocs\ref\vbs\vbscript\vbstoc.htm
本小節對 VBScript 只提供彙總性之說明。
在說明 VBScript 語法之前先對於撰寫 VBScript 程式的一些習慣稍作說明。
● 常數命名習慣
以大寫字母命名,字組間以底線隔開。例如:
LINE_COUNT、MAX_NUMBER 等。
● 變數命名習慣
變數名稱前加上表示資料型態的字頭,例如:
intQuantity 表示整數數量。
lngDistance 表示長整數距離。
strMyName 表示我的名子識字串。
● 文件說明
函數或程序之前應該有簡短的說明。
H.2 資料型態
VBScript 只有一種 Variant 資料型態。依使用的情形,可包含各種資料,稱
為 Variant 型態的次型態 (subtype)。函數所傳回來的也是 Variant 型態。
VBScript 型態 Variant 的次型態如表 H.1 所示。您可使用 VarType() 函
數傳回指定變數的次型態。
表 H.1 型態 Variant 的次型態
次型態 說明
-------- ----------------------------------------------------
Empty 沒設定初值。數值變數值為 0,字串變數值為空字串。
Null 不含正確資料。
Boolean 包含 True 或 False。
Byte 包含整數 0 至 255。
Integer 包含整數 -32768 至 32767。
Currency 包含整數 -922,337,203,685,477.5808
至 922,337,203,685,477.5807。
Long 包含整數 -2,147,483,648 至 2,147,483,647。
Single 包含單精度值。
負值 -3.402823E38 至 -1.402823E-45。
正值 1.401298E-45 至 3.402823E38。
Double 包含雙精度值。負值
-1.79769313486232E308 至 -4.94065645841247E-324。
正值 4.94065645841247E-324 至 1.79769313486232E308。
Date January 1, 100 至 December 31, 9999。
Time January 1, 100 至 December 31, 9999。
String 包含變長字串,最長可達 2 百萬字元。
Object 包含物件。
Error 包含錯誤編號。
H.3 變數
變數可存放數值,該數值可隨您的意思改變,故稱為變數。您可使用 Dim 敘
述明確宣告,變數名稱之間以逗號隔開。例如:
Dim A, B, C, D
宣告 A、B、C、D 為變數。變數名稱必須以 alphabetic character 英文字母
起頭,不能包含句點 (period),不能超過 255 個字元。變數值可用指定敘述
指定,例如:
A=2
B=5
陣列變數也使用 Dim 宣告,但在變數名稱之後加上一組小括號,以說明元素
個數,例如:
Dim K(3)
宣告 K 是一個陣列變數,包含 K(0)、K(1)、K(2)、K(3) 共四個元素。K 稱
為一維陣列,因為它只有一個索引值,0 至 3。陣列若有兩個索引值稱為二維
陣列,例如:
Dim M(2,2)
宣告 M 是一個二維陣列變數,包含 M(0,0)、M(0,1)、M(0,2)、M(1,0)、
M(1,1)、M(1,2)、M(2,0)、M(2,1)、M(2,2) 共九個元素。陣列變數元素值也
是用指定的,例如:
K(0)=10
M(1,2)=12
H.4 常數
您可使用 Const 敘述宣告常數,例如:
Const MYSTRING, vbMyAge, CUTOFFDATE
MYSTRING="這是我指定的字串"
vbMyAge=33
CUTOFFDATE=#12-31-99#
常數的名稱最好都使用大寫英文字母表示,或使用 vb 起頭的名稱,以便和變
數區隔開來,不過 VBScript 許多已經定義好的常數都以 vb 起頭,因此您自
己所定義的常數最好選用大寫英文字母表示。
以下說明 VBScript 已經定義好的常數。
● 色碼常數
常數名稱 常數值 說明
-------- ------------ --------
vbBlack &h00 黑色
vbRed &hFF 紅色
vbGreen &hFF00 綠色
vbYellow &hFFFF 黃色
vbBlue &hFF0000 藍色
vbMagenta &hFF00FF 紫紅色
vbCyan &hFFFF00 紅色
vbWhite &hFFFFFF 白色
● 比較常數
常數名稱 常數值 說明
----------------- ------ --------------------
vbBinaryCompare 0 執行二進位比較
vbTextCompare 1 執行文字比較
vbDatabaseCompare 2 執行資料庫中資料比較
● 日期與時間常數
常數名稱 常數值 說明
-------- ------ ----------------------------
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
vbFirstJan1 1 使用包含元月一日的星期
vbFirstFourDays 2 使用本年第一個最少四天的星期
vbFirstFullWeek 3 使用本年第一個完整的星期
vbUseSystem 0 使用系統的日期與時間
vbUseSystemDayOfWeek 0 使用系統的星期日期
● 日期格式常數
常數名稱 常數值 說明
-------------- ------ --------------------------------
vbGeneralDate 0 顯示日期與時間,格式依系統設定。
vbLongDate 1 以長格式顯示日期。
vbShortDate 2 以短格式顯示日期。
vbLongTime 3 以長格式顯示時間。
vbShortTime 4 以短格式顯示時間。
● 檔案輸入輸出常數
常數名稱 常數值 說明
-------------- ------ ------------------
ForReading 1 開啟一個唯讀的檔案
ForWriting 2 開啟一個寫入的檔案
ForAppending 8 開啟一個附加的檔案
● 其他常數
常數名稱 常數值 說明
-------------- ---------- ------------
vbObjectError &h80040000 物件錯誤編號
● MsgBox 常數
常數名稱 常數值 說明
-------------- ------ -----------------------------
vbOKOnly 0 只顯示 OK 鈕
vbOKCancel 1 顯示 OK 及 Cancel 鈕
vbAbortRetryIgnore 2 顯示 Abort、Retry、Ignore 鈕
vbYesNoCancel 3 顯示 Yes、No、Cancel 鈕
vbYesNo 4 顯示 Yes、No 鈕
vbRetryCancel 5 顯示 Retry、Cancel 鈕
vbCritical 16 顯示 Critical Message 圖示
vbQuestion 32 顯示 Warning Query 圖示
vbExclamation 48 顯示 Warning Message 圖示
vbInformation 64 顯示 Information Message 圖示
vbDefaultButton1 0 預設第一個按鈕
vbDefaultButton2 256 預設第二個按鈕
vbDefaultButton3 512 預設第三個按鈕
vbDefaultButton4 768 預設第四個按鈕
vbApplicationModal 0 應用程式模式
vbSystemModal 4096 系統模式
下面常數用於 MsgBox() 函數用於識別使用者選用那一個按鈕。
常數名稱 常數值 說明
------------ ------ -----------------
vbOK 1 OK 按鈕被按下
vbCancel 2 Cancel 按鈕被按下
vbAbort 3 Abort 按鈕被按下
vbRetry 4 Retry 按鈕被按下
vbIgnore 5 Ignore 按鈕被按下
vbYes 6 Yes 按鈕被按下
vbNo 7 No 按鈕被按下
● 字串常數
常數名稱 常數值 說明
------------ ------ ----------------------------------
vbCr Chr(13) Carriage Return 即 Enter 鍵
vbCrLf Chr(13) Carriage Return 及 Linefeed 鍵
& Chr(10)
vbFormFeed Chr(10) Form feed,微軟 Windows 系統不適用
vbLf Chr(10) Line feed
vbNewLine Chr(13) 換列,Windows使用Chr(13)&Chr(10),
& Chr(10) UNIX系統使用Chr(10)
或 Chr(10)
vbNullChar Chr(0) 字元值為 0
vbNullString 字串值0 與空白字串(字串長度為0)不同
vbTab Chr(9) Tab 鍵
vbVerticalTab Chr(11) Vertical Tab 鍵
● Tristate常數
常數名稱 常數值 說明
------------- ------ ----------
TristateTrue -1 True
TristateFalse 0 False
TristateUseDefault -2 使用預設值
● VarType 常數
常數名稱 常數值 說明
------------- ------ ------------------
vbEmpty 0 無初值設定 (預設)
vbNull 1 不含正確值
vbInteger 2 Integer
vbLong 3 Long
vbSingle 4 Single
vbDouble 5 Double
vbCurrency 6 Currency
vbDate 7 Date
vbString 8 String
vbObject 9 Object
vbError 10 Error
vbBoolean 11 Boolean
vbVariant 12 Variant
vbDataObject 13 Data Access object
vbDecimal 14 Decimal
vbByte 17 Byte
vbArray 8192 Array
H.5 運算子
● 算術運算子
^
次方。例如 Y=A^2。A 的平方值取代原來 Y 值。
-
單減。例如 Y=-A。將 A 值變負號後取代原來 Y 值。
*
乘。例如 Y=A*B。將 A 值乘於 B 值後取代原來 Y 值。
/
除。例如 Y=A/B。將 A 值除於 B 值後取代原來 Y 值。
\
整數除法。例如 Y=A/B。將 A 值除於 B 值後取整數取代原來 Y 值。
Mod
餘數除法。例如 Y=A\B。將 A 值除於 B 值後取餘數取代原來 Y 值。
+
相加。例如 Y=A+B。將 A 值與 B 值相加後取代原來 Y 值。
-
相減。例如 Y=A-B。將 A 值減去 B 值後取代原來 Y 值。
&
字串相連結。例如 Y=A&B。將 A 值與 B 值相連結後取代原來 Y 值。
● 比較運算子
=
相等。 If A=B Then C=True。
<>
不相等。If A<>B Then C=False。
<
小於。If A<B Then C=A。
>
大於。If A>B Then C=B。
<=
不大於。If A<=B Then C=True。
>=
不小於。If A>=B Then C=False。
is
物件相當。SET A=B。If A is B Then C=True。則 C 值為 True。
● 邏輯運算子
Not
邏輯 NOT 運算。例如 NOT A。
And
邏輯 AND 運算。例如 A And B。
Or
邏輯 OR 運算。例如 A Or B。
Xor
邏輯 XOR 運算。例如 A Xor B。
Eqv
邏輯 EQV 運算。例如 A Eqv B。
Imp
邏輯 IMP 運算。例如 A Imp B。
邏輯運算的結果如下表所示。F 表 False,T 表 True。
A B | Not A And Or Xor Eqv Imp
--------+--------------------------------------
F F | T F F T T T
F T | T F T F F T
T F | F F T F F F
T T | F T T T T T
H.6 敘述
[Call] name [argumentlist]
將執行控制權轉至 name 程序或函數。如 Call MyProc(1)。
Dim varname[([subscripts])][, varname[([subscripts])]] . . .
宣告變數 varname 並配置記憶體空間。
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
或
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
當條件 condition 的值為 True 時重複執行 Do 與 Loop 之間的區塊敘述。
Erase array
對於固定長度的陣列 array 重新建立初值,對於動態陣列 array 則取消
原配置的記憶體。
Exit Do
Exit For
Exit Function
Exit Sub
從 Do、For、Function、Sub 等的區塊跳出。
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next
重複執行 For 與 Next 間的敘述指定次數。從 start 開始,到 end 結
束,每一迴圈增加 step,即 start、start+step、start+2*step、...、
end。若省略 step 則預設為 1。
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
在陣列或類集 (collection) 裡重複執行 For 與 Next 間的敘述。
[Public | Private] Function name [(arglist)]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
宣告構成 Function 本體的函數名稱、引數、執行碼。
arglist 引數的語法如下:
[ByVal | ByRef] varname[( )]
ByVal 表傳值呼叫,ByRef 表傳址呼叫。
varname 為引數變數名稱。
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]] . . .
[Else
[elsestatements]]
End If
有條件的執行指定的一組敘述。
若 condition 值為 True 則執行 statements 敘述。
若 condition-n 值為 True 則執行 slesifstatements 敘述。
...
若以上的 condition 值皆為 False 則執行 elsestatements 敘述。
On Error Resume Next
啟動錯誤處理程序並指定程序中下一個要執行的程式碼位置。
Option Explicit
使用於文稿層次,用於強迫所有變數須明顯宣告。
Private varname[([subscripts])][, varname[([subscripts])]] . . .
使用於文稿層次,宣告變數 varname 為私用性質。
Public varname[([subscripts])][, varname[([subscripts])]] . . .
使用於文稿層次,宣告變數 varname 為公用性質。
Randomize [number]
設定隨機數產生器初值。引數 number 可為任何的數值運算式。
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .
使用於程序層次,用於宣告動態陣列變數 varname 並配置記憶體。
Rem comment
或
' comment
註解。
Select Case testexpression
[Case expressionlist-n
[statements-n]] . . .
[Case Else expressionlist-n
[elsestatements-n]]
End Select
若 testexpression 值等於 expressionlist-n 中的一個值則執行
statements-n 敘述。若都不是則執行 elsestatements-n 敘述。
Set objectvar = {objectexpression | Nothing}
設定物件變數 objectvar 的值為 objectexpression 或 Nothing。
[Public | Private] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
宣告構成 Sub 本體的程序名稱、引數、執行碼。
arglist 引數的語法如下:
[ByVal | ByRef] varname[( )]
ByVal 表傳值呼叫,ByRef 表傳址呼叫。
varname 為引數變數名稱。
While condition
[statements]
Wend
當條件 condition 的值為 True 時重複執行 statements 敘述。
H.7 函數
以下依英文字母順序列出 VBScript 的函數:
Abs(number)
傳回 number 的絕對值。
若 number 為 Null 則傳回 Null。
若 number 為沒有初值的變數則傳回 0。
Abs(2) 與 Abs(-2) 均傳回 2。
Array(arglist)
引數 arglist 為以逗號隔開的數值,指定為陣列元素值。
若省略 arglist 則建立一個 0 元素的陣列。下例 B 值為 30。
Dim A
A=Array(10,20,30)
B=A(2)
Asc(string)
傳回 string 字串第一個字元的 ANSI 的 ASCII 碼。
若 string 為空字串則產生執行時期錯誤。
Atn(number)
傳回 number 的正切值。
CBool(expression)
傳回 expression 的布林值。
CByte(expression)
傳回 expression 的位元組值。
CCur(expression)
傳回 expression 的 Currency 值。
CDate(date)
傳回 date 的日期。
CDbl(expression)
傳回 expression 的雙精度數值。
Chr(charcode)
傳回 charcode 相對應 ANSI 的 ASCII 碼字元。
CInt(expression)
傳回 expression 的整數值。
CLng(expression)
傳回 expression 的長整數值。
Cos(number)
傳回 number 的餘弦值。number 以 radians 計值。
CreateObject(class)
建立並傳回一個 class 物件。如:
Dim ExcelSheet
Set ExcelSheet = CreateObject("Excel.Sheet")
CSng(expression)
傳回 expression 的單精度值。
CStr(expression)
傳回 expression 的字串值。
Date
傳回目前的系統日期。
DateAdd(interval, number, date)
傳回一個 date 加上 number 個 interval 後的日期。下例為 99 年
1 月 1 日加上一個月的日期。
NewDate = DateAdd("m", 1, "1-Jan-99")
DateDiff(interval, date1, date2 [,firstdayofweek [,firstweekofyear]])
傳回兩個日期間的 interval 個數。
DatePart(interval, date [,firstdayofweek [,firstweekofyear]])
傳回 date 的 interval 個數。
DateSerial(year, month, day)
將年year、月month、日day等轉為日期型態並傳回。
DateValue(date)
傳回 date 的日期型態值。
Day(date)
傳回 date 日期中日數的整數值(1-31)。
Exp(number)
傳回 e 的 number 次方值。
e 為自然對數基底(the base of natural logarithms)。
Filter(InputString, Value [, Include [, Compare]])
傳回 Value 在 InputString 一維陣列搜尋的結果。
Fix(number)
傳回 number 的整數值。
FormatCurrency(Expression [,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,UserParentsForNegativeNumbers
[,GroupDigits ]]]])
傳回使用定義於系統控制盤(system control panel)中的currency符號
所格式化後的currency值。
FormatDateTime(Date [,NamedFormat])
傳回格式化後的日期或時間。
FormatNumber(Expression [,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,UserParentsForNegativeNumbers
[,GroupDigits]]]])
傳回格式化後的數字。
FormatPercent(Expression [,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,UserParentsForNegativeNumbers
[,GroupDigits]]]])
傳回格式化後的百分比,尾端跟隨著 %。
GetObject([pathname] [,class])
從指定檔 pathname 傳回一個 ActiveX 物件。
Hex(number)
傳回 number 所代表的16進位值的字串。
Hour(time)
傳回 time 時間中的小時整數值(0-23)。
InputBox(prompt [,title] [,default]
[,xpos] [,ypos] [,helpfile, context])
顯示一個對話框,讓使用者輸入資料,並傳回資料內容。
InStr([start,] string1, string2 [,compare])
傳回子字串 string2 在字串 string1 中的啟始位置,若找不到該子字串
,則傳回 0。
InStrRev(string1, string2 [,start [,compare]])
傳回子字串 string2 在字串 string1 中從尾端算起的位置,若找不到該
子字串,則傳回 0。
Int(number)
傳回小於或等於 number 的整數值。
IsArray(varname)
若 varname 為陣列則傳回 True,否則傳回 False。
IsDate(expression)
若 expression 為日期則傳回 True,否則傳回 False。
IsEmpty(expression)
若 expression 為 empty 則傳回 True,否則傳回 False。
IsNull(expression)
若 expression 為 Null 則傳回 True,否則傳回 False。
IsNumeric(expression)
若 expression 為數字則傳回 True,否則傳回 False。
IsObject(expression)
若 expression 為物件則傳回 True,否則傳回 False。
Join(list [, delimiter])
傳回一維陣列 list 中每一個元素字串的連結字串,若省略 delimiter
則以空白隔開。
LBound(arrayname [, dimension])
傳回 arrayname 第 dimension 維的最小索引值。若省略 dimension
則預設為 1。
LCase(string)
將 string 轉換為英文小寫字母。
Left(string, length)
傳回 string 字串最左邊 length 個字元。
Len(string | varname)
傳回 string 字串或 varname 字串變數的長度。
LoadPicture(picturename)
傳回從 picturename 檔案載入的物件。
Log(number)
傳回 number 數值的對數值。
LTrim(string)
將 string 字串前的空白去除。
Mid(string, start [, length])
傳回 string 字串中由 start 開始,長度 length 的子字串。
Minute(time)
傳回 time 時間中的分鐘數值(0-59)。
Month(date)
傳回 date 日期中的月份數值(1-12)。
MonthName(month [, abbreviate])
傳回 month 數值相對應的月份名稱。若 abbreviate 值為 True 則傳回
月份簡稱。
MsgBox(prompt [, buttons] [, title] [, helpfile, context])
顯示一個對話框,當用戶選擇適當按鈕後,將該按鈕值傳回。
Now
傳回現在的系統時間。
Oct(number)
將 number 數值轉為八進位後傳回。
Replace(expression,find,replacewith [,start [,count [,compare]]])
在 expression 字串中找到 find 子字串後以 replacewith 字串取代後
傳回。
Right(string, length)
傳回 string 字串最右邊的 length 個字元。
Rnd[(number)]
傳回一個介於 0 (含) 至 1 (不含) 間的隨機數。
Round(expression [, numdecimalplaces])
將 expression 第 numdecimalplaces 為小數四捨五入後傳回。
RTrim(string)
去除 string 字串尾部的空白並傳回。
ScriptEngine()
傳回使用中的文稿語言字串。VBScript 或 JScript 或 VBA。
ScriptEngineBuildVersion()
傳回使用中的文稿語言 build 版本。
ScriptEngineMajorVersion()
傳回使用中的文稿語言主版本。
ScriptEngineMinorVersion()
傳回使用中的文稿語言副版本。
Second(time)
傳回 time 時間的秒數(0-59)。
Sgn(number)
傳回 number 的符號,當 number 大於 0 傳回 1,等於 0,傳回 0,
小於 0 傳回 -1。
Sin(number)
傳回 number 的正弦值。number 以 radians 計值。
Space(number)
傳回一個長度為 number 的空白字串。
Split(expression [, delimiter [, count [, compare]]])
將以 delimiter 為隔開符號的 expression 字串剖開後存入一個一維陣
列後傳回。
Sqr(number)
傳回 number 的平方值。
StrComp(string1, string2 [, compare])
將 string1、string2 二字串相比較,結果以整數表示,若 string1 較
小則傳回 -1,相等則傳回 0,較大則傳回 1。若其中有一個為 Null 則
傳回 Null。
String(number, character)
傳回一個 number 個 character 字元的字串。
StrReverse(string)
傳回一個 string 字串的反向字串。
Tan(number)
傳回 number 的正切值。number 以 radians 計值。
Time
傳回目前的系統時間。
TimeSerial(hour, minute, second)
將時hour、分minute、秒second值轉為日期型態並傳回。
TimeValue(time)
將 time 的時間轉為日期型態並傳回。
Trim(string)
去除 string 字串頭尾的空白並傳回。
TypeName(varname)
傳回變數名稱 varname 的 Variant 次型態 (subtype) 字串。可能值為
Byte、Integer、Long、Single、Double、Currency、Decimal、Date、
String、Boolean、Empty、Null、<ObjectType>、Object、Unknown、
Nothing、Error。
UBound(arrayname [, dimension])
傳回 arrayname 第 dimension 維的最大索引值。若省略 dimension
則預設為 1。
UCase(string)
將 string 字串轉為英文大寫字母後傳回。
VarType(varname)
傳回 varname 變數的次型態整數值。
整數值 常數 次型態
------ ------------ --------------------------------------
0 vbEmpty Empty (uninitialized)
1 vbNull Null (not valid data)
2 vbInteger Integer
3 vbLong Long integer
4 vbSingle Single-precision floating-point number
5 vbDouble Double-precision floating-point number
6 vbCurrency Currency
7 vbDate Date
8 vbString String
9 vbObject Automation object
10 vbError Error
11 vbBoolean Boolean
12 vbVariant Variant (used only with arrays of Variants)
13 vbDataObject A data-access object
17 vbByte Byte
8192 vbArray Array
Weekday(date [, firstdayofweek])
傳回 date 日期所代表的星期,1 表星期日,7 表星期六。
WeekdayName(weekday, abbreviate, firstdayofweek)
傳回 weekday 數值的星期名稱。
Year(date)
傳回 date 日期中的年份。
網際網路應用--附錄H VBScript 語法彙總
附錄 H VBScript 語法彙總
H.1 VBScript
VBScript 是微軟公司程式語言 Visual Basic (VB) 家族的一個新的成員,對
於 active scripting 提供多樣的環境,包括客戶端的 IE 瀏覽器以及伺服器
端的 PWS、IIS 伺服器。
有關 VBScript 在 HTML 裡的使用方法,您可選按瀏覽器的的功能
檔案 (F) | 開啟舊檔 (O)...
選 vbstutor.htm 網頁,該網頁提供簡要的說明。
C:\Program Files\WEBSVR\DOCS\ASPDocs\ref\vbs\vbscript\vbstutor.htm
有關 VBScript 的語法 (Language Reference),可參考 vbstoc.htm 網頁。
C:\Program Files\WEBSVR\DOCS\ASPDocs\ref\vbs\vbscript\vbstoc.htm
本小節對 VBScript 只提供彙總性之說明。
在說明 VBScript 語法之前先對於撰寫 VBScript 程式的一些習慣稍作說明。
● 常數命名習慣
以大寫字母命名,字組間以底線隔開。例如:
LINE_COUNT、MAX_NUMBER 等。
● 變數命名習慣
變數名稱前加上表示資料型態的字頭,例如:
intQuantity 表示整數數量。
lngDistance 表示長整數距離。
strMyName 表示我的名子識字串。
● 文件說明
函數或程序之前應該有簡短的說明。
H.2 資料型態
VBScript 只有一種 Variant 資料型態。依使用的情形,可包含各種資料,稱
為 Variant 型態的次型態 (subtype)。函數所傳回來的也是 Variant 型態。
VBScript 型態 Variant 的次型態如表 H.1 所示。您可使用 VarType() 函
數傳回指定變數的次型態。
表 H.1 型態 Variant 的次型態
次型態 說明
-------- ----------------------------------------------------
Empty 沒設定初值。數值變數值為 0,字串變數值為空字串。
Null 不含正確資料。
Boolean 包含 True 或 False。
Byte 包含整數 0 至 255。
Integer 包含整數 -32768 至 32767。
Currency 包含整數 -922,337,203,685,477.5808
至 922,337,203,685,477.5807。
Long 包含整數 -2,147,483,648 至 2,147,483,647。
Single 包含單精度值。
負值 -3.402823E38 至 -1.402823E-45。
正值 1.401298E-45 至 3.402823E38。
Double 包含雙精度值。負值
-1.79769313486232E308 至 -4.94065645841247E-324。
正值 4.94065645841247E-324 至 1.79769313486232E308。
Date January 1, 100 至 December 31, 9999。
Time January 1, 100 至 December 31, 9999。
String 包含變長字串,最長可達 2 百萬字元。
Object 包含物件。
Error 包含錯誤編號。
H.3 變數
變數可存放數值,該數值可隨您的意思改變,故稱為變數。您可使用 Dim 敘
述明確宣告,變數名稱之間以逗號隔開。例如:
Dim A, B, C, D
宣告 A、B、C、D 為變數。變數名稱必須以 alphabetic character 英文字母
起頭,不能包含句點 (period),不能超過 255 個字元。變數值可用指定敘述
指定,例如:
A=2
B=5
陣列變數也使用 Dim 宣告,但在變數名稱之後加上一組小括號,以說明元素
個數,例如:
Dim K(3)
宣告 K 是一個陣列變數,包含 K(0)、K(1)、K(2)、K(3) 共四個元素。K 稱
為一維陣列,因為它只有一個索引值,0 至 3。陣列若有兩個索引值稱為二維
陣列,例如:
Dim M(2,2)
宣告 M 是一個二維陣列變數,包含 M(0,0)、M(0,1)、M(0,2)、M(1,0)、
M(1,1)、M(1,2)、M(2,0)、M(2,1)、M(2,2) 共九個元素。陣列變數元素值也
是用指定的,例如:
K(0)=10
M(1,2)=12
H.4 常數
您可使用 Const 敘述宣告常數,例如:
Const MYSTRING, vbMyAge, CUTOFFDATE
MYSTRING="這是我指定的字串"
vbMyAge=33
CUTOFFDATE=#12-31-99#
常數的名稱最好都使用大寫英文字母表示,或使用 vb 起頭的名稱,以便和變
數區隔開來,不過 VBScript 許多已經定義好的常數都以 vb 起頭,因此您自
己所定義的常數最好選用大寫英文字母表示。
以下說明 VBScript 已經定義好的常數。
● 色碼常數
常數名稱 常數值 說明
-------- ------------ --------
vbBlack &h00 黑色
vbRed &hFF 紅色
vbGreen &hFF00 綠色
vbYellow &hFFFF 黃色
vbBlue &hFF0000 藍色
vbMagenta &hFF00FF 紫紅色
vbCyan &hFFFF00 紅色
vbWhite &hFFFFFF 白色
● 比較常數
常數名稱 常數值 說明
----------------- ------ --------------------
vbBinaryCompare 0 執行二進位比較
vbTextCompare 1 執行文字比較
vbDatabaseCompare 2 執行資料庫中資料比較
● 日期與時間常數
常數名稱 常數值 說明
-------- ------ ----------------------------
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
vbFirstJan1 1 使用包含元月一日的星期
vbFirstFourDays 2 使用本年第一個最少四天的星期
vbFirstFullWeek 3 使用本年第一個完整的星期
vbUseSystem 0 使用系統的日期與時間
vbUseSystemDayOfWeek 0 使用系統的星期日期
● 日期格式常數
常數名稱 常數值 說明
-------------- ------ --------------------------------
vbGeneralDate 0 顯示日期與時間,格式依系統設定。
vbLongDate 1 以長格式顯示日期。
vbShortDate 2 以短格式顯示日期。
vbLongTime 3 以長格式顯示時間。
vbShortTime 4 以短格式顯示時間。
● 檔案輸入輸出常數
常數名稱 常數值 說明
-------------- ------ ------------------
ForReading 1 開啟一個唯讀的檔案
ForWriting 2 開啟一個寫入的檔案
ForAppending 8 開啟一個附加的檔案
● 其他常數
常數名稱 常數值 說明
-------------- ---------- ------------
vbObjectError &h80040000 物件錯誤編號
● MsgBox 常數
常數名稱 常數值 說明
-------------- ------ -----------------------------
vbOKOnly 0 只顯示 OK 鈕
vbOKCancel 1 顯示 OK 及 Cancel 鈕
vbAbortRetryIgnore 2 顯示 Abort、Retry、Ignore 鈕
vbYesNoCancel 3 顯示 Yes、No、Cancel 鈕
vbYesNo 4 顯示 Yes、No 鈕
vbRetryCancel 5 顯示 Retry、Cancel 鈕
vbCritical 16 顯示 Critical Message 圖示
vbQuestion 32 顯示 Warning Query 圖示
vbExclamation 48 顯示 Warning Message 圖示
vbInformation 64 顯示 Information Message 圖示
vbDefaultButton1 0 預設第一個按鈕
vbDefaultButton2 256 預設第二個按鈕
vbDefaultButton3 512 預設第三個按鈕
vbDefaultButton4 768 預設第四個按鈕
vbApplicationModal 0 應用程式模式
vbSystemModal 4096 系統模式
下面常數用於 MsgBox() 函數用於識別使用者選用那一個按鈕。
常數名稱 常數值 說明
------------ ------ -----------------
vbOK 1 OK 按鈕被按下
vbCancel 2 Cancel 按鈕被按下
vbAbort 3 Abort 按鈕被按下
vbRetry 4 Retry 按鈕被按下
vbIgnore 5 Ignore 按鈕被按下
vbYes 6 Yes 按鈕被按下
vbNo 7 No 按鈕被按下
● 字串常數
常數名稱 常數值 說明
------------ ------ ----------------------------------
vbCr Chr(13) Carriage Return 即 Enter 鍵
vbCrLf Chr(13) Carriage Return 及 Linefeed 鍵
& Chr(10)
vbFormFeed Chr(10) Form feed,微軟 Windows 系統不適用
vbLf Chr(10) Line feed
vbNewLine Chr(13) 換列,Windows使用Chr(13)&Chr(10),
& Chr(10) UNIX系統使用Chr(10)
或 Chr(10)
vbNullChar Chr(0) 字元值為 0
vbNullString 字串值0 與空白字串(字串長度為0)不同
vbTab Chr(9) Tab 鍵
vbVerticalTab Chr(11) Vertical Tab 鍵
● Tristate常數
常數名稱 常數值 說明
------------- ------ ----------
TristateTrue -1 True
TristateFalse 0 False
TristateUseDefault -2 使用預設值
● VarType 常數
常數名稱 常數值 說明
------------- ------ ------------------
vbEmpty 0 無初值設定 (預設)
vbNull 1 不含正確值
vbInteger 2 Integer
vbLong 3 Long
vbSingle 4 Single
vbDouble 5 Double
vbCurrency 6 Currency
vbDate 7 Date
vbString 8 String
vbObject 9 Object
vbError 10 Error
vbBoolean 11 Boolean
vbVariant 12 Variant
vbDataObject 13 Data Access object
vbDecimal 14 Decimal
vbByte 17 Byte
vbArray 8192 Array
H.5 運算子
● 算術運算子
^
次方。例如 Y=A^2。A 的平方值取代原來 Y 值。
-
單減。例如 Y=-A。將 A 值變負號後取代原來 Y 值。
*
乘。例如 Y=A*B。將 A 值乘於 B 值後取代原來 Y 值。
/
除。例如 Y=A/B。將 A 值除於 B 值後取代原來 Y 值。
\
整數除法。例如 Y=A/B。將 A 值除於 B 值後取整數取代原來 Y 值。
Mod
餘數除法。例如 Y=A\B。將 A 值除於 B 值後取餘數取代原來 Y 值。
+
相加。例如 Y=A+B。將 A 值與 B 值相加後取代原來 Y 值。
-
相減。例如 Y=A-B。將 A 值減去 B 值後取代原來 Y 值。
&
字串相連結。例如 Y=A&B。將 A 值與 B 值相連結後取代原來 Y 值。
● 比較運算子
=
相等。 If A=B Then C=True。
<>
不相等。If A<>B Then C=False。
<
小於。If A<B Then C=A。
>
大於。If A>B Then C=B。
<=
不大於。If A<=B Then C=True。
>=
不小於。If A>=B Then C=False。
is
物件相當。SET A=B。If A is B Then C=True。則 C 值為 True。
● 邏輯運算子
Not
邏輯 NOT 運算。例如 NOT A。
And
邏輯 AND 運算。例如 A And B。
Or
邏輯 OR 運算。例如 A Or B。
Xor
邏輯 XOR 運算。例如 A Xor B。
Eqv
邏輯 EQV 運算。例如 A Eqv B。
Imp
邏輯 IMP 運算。例如 A Imp B。
邏輯運算的結果如下表所示。F 表 False,T 表 True。
A B | Not A And Or Xor Eqv Imp
--------+--------------------------------------
F F | T F F T T T
F T | T F T F F T
T F | F F T F F F
T T | F T T T T T
H.6 敘述
[Call] name [argumentlist]
將執行控制權轉至 name 程序或函數。如 Call MyProc(1)。
Dim varname[([subscripts])][, varname[([subscripts])]] . . .
宣告變數 varname 並配置記憶體空間。
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
或
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
當條件 condition 的值為 True 時重複執行 Do 與 Loop 之間的區塊敘述。
Erase array
對於固定長度的陣列 array 重新建立初值,對於動態陣列 array 則取消
原配置的記憶體。
Exit Do
Exit For
Exit Function
Exit Sub
從 Do、For、Function、Sub 等的區塊跳出。
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next
重複執行 For 與 Next 間的敘述指定次數。從 start 開始,到 end 結
束,每一迴圈增加 step,即 start、start+step、start+2*step、...、
end。若省略 step 則預設為 1。
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
在陣列或類集 (collection) 裡重複執行 For 與 Next 間的敘述。
[Public | Private] Function name [(arglist)]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
宣告構成 Function 本體的函數名稱、引數、執行碼。
arglist 引數的語法如下:
[ByVal | ByRef] varname[( )]
ByVal 表傳值呼叫,ByRef 表傳址呼叫。
varname 為引數變數名稱。
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]] . . .
[Else
[elsestatements]]
End If
有條件的執行指定的一組敘述。
若 condition 值為 True 則執行 statements 敘述。
若 condition-n 值為 True 則執行 slesifstatements 敘述。
...
若以上的 condition 值皆為 False 則執行 elsestatements 敘述。
On Error Resume Next
啟動錯誤處理程序並指定程序中下一個要執行的程式碼位置。
Option Explicit
使用於文稿層次,用於強迫所有變數須明顯宣告。
Private varname[([subscripts])][, varname[([subscripts])]] . . .
使用於文稿層次,宣告變數 varname 為私用性質。
Public varname[([subscripts])][, varname[([subscripts])]] . . .
使用於文稿層次,宣告變數 varname 為公用性質。
Randomize [number]
設定隨機數產生器初值。引數 number 可為任何的數值運算式。
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .
使用於程序層次,用於宣告動態陣列變數 varname 並配置記憶體。
Rem comment
或
' comment
註解。
Select Case testexpression
[Case expressionlist-n
[statements-n]] . . .
[Case Else expressionlist-n
[elsestatements-n]]
End Select
若 testexpression 值等於 expressionlist-n 中的一個值則執行
statements-n 敘述。若都不是則執行 elsestatements-n 敘述。
Set objectvar = {objectexpression | Nothing}
設定物件變數 objectvar 的值為 objectexpression 或 Nothing。
[Public | Private] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
宣告構成 Sub 本體的程序名稱、引數、執行碼。
arglist 引數的語法如下:
[ByVal | ByRef] varname[( )]
ByVal 表傳值呼叫,ByRef 表傳址呼叫。
varname 為引數變數名稱。
While condition
[statements]
Wend
當條件 condition 的值為 True 時重複執行 statements 敘述。
H.7 函數
以下依英文字母順序列出 VBScript 的函數:
Abs(number)
傳回 number 的絕對值。
若 number 為 Null 則傳回 Null。
若 number 為沒有初值的變數則傳回 0。
Abs(2) 與 Abs(-2) 均傳回 2。
Array(arglist)
引數 arglist 為以逗號隔開的數值,指定為陣列元素值。
若省略 arglist 則建立一個 0 元素的陣列。下例 B 值為 30。
Dim A
A=Array(10,20,30)
B=A(2)
Asc(string)
傳回 string 字串第一個字元的 ANSI 的 ASCII 碼。
若 string 為空字串則產生執行時期錯誤。
Atn(number)
傳回 number 的正切值。
CBool(expression)
傳回 expression 的布林值。
CByte(expression)
傳回 expression 的位元組值。
CCur(expression)
傳回 expression 的 Currency 值。
CDate(date)
傳回 date 的日期。
CDbl(expression)
傳回 expression 的雙精度數值。
Chr(charcode)
傳回 charcode 相對應 ANSI 的 ASCII 碼字元。
CInt(expression)
傳回 expression 的整數值。
CLng(expression)
傳回 expression 的長整數值。
Cos(number)
傳回 number 的餘弦值。number 以 radians 計值。
CreateObject(class)
建立並傳回一個 class 物件。如:
Dim ExcelSheet
Set ExcelSheet = CreateObject("Excel.Sheet")
CSng(expression)
傳回 expression 的單精度值。
CStr(expression)
傳回 expression 的字串值。
Date
傳回目前的系統日期。
DateAdd(interval, number, date)
傳回一個 date 加上 number 個 interval 後的日期。下例為 99 年
1 月 1 日加上一個月的日期。
NewDate = DateAdd("m", 1, "1-Jan-99")
DateDiff(interval, date1, date2 [,firstdayofweek [,firstweekofyear]])
傳回兩個日期間的 interval 個數。
DatePart(interval, date [,firstdayofweek [,firstweekofyear]])
傳回 date 的 interval 個數。
DateSerial(year, month, day)
將年year、月month、日day等轉為日期型態並傳回。
DateValue(date)
傳回 date 的日期型態值。
Day(date)
傳回 date 日期中日數的整數值(1-31)。
Exp(number)
傳回 e 的 number 次方值。
e 為自然對數基底(the base of natural logarithms)。
Filter(InputString, Value [, Include [, Compare]])
傳回 Value 在 InputString 一維陣列搜尋的結果。
Fix(number)
傳回 number 的整數值。
FormatCurrency(Expression [,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,UserParentsForNegativeNumbers
[,GroupDigits ]]]])
傳回使用定義於系統控制盤(system control panel)中的currency符號
所格式化後的currency值。
FormatDateTime(Date [,NamedFormat])
傳回格式化後的日期或時間。
FormatNumber(Expression [,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,UserParentsForNegativeNumbers
[,GroupDigits]]]])
傳回格式化後的數字。
FormatPercent(Expression [,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,UserParentsForNegativeNumbers
[,GroupDigits]]]])
傳回格式化後的百分比,尾端跟隨著 %。
GetObject([pathname] [,class])
從指定檔 pathname 傳回一個 ActiveX 物件。
Hex(number)
傳回 number 所代表的16進位值的字串。
Hour(time)
傳回 time 時間中的小時整數值(0-23)。
InputBox(prompt [,title] [,default]
[,xpos] [,ypos] [,helpfile, context])
顯示一個對話框,讓使用者輸入資料,並傳回資料內容。
InStr([start,] string1, string2 [,compare])
傳回子字串 string2 在字串 string1 中的啟始位置,若找不到該子字串
,則傳回 0。
InStrRev(string1, string2 [,start [,compare]])
傳回子字串 string2 在字串 string1 中從尾端算起的位置,若找不到該
子字串,則傳回 0。
Int(number)
傳回小於或等於 number 的整數值。
IsArray(varname)
若 varname 為陣列則傳回 True,否則傳回 False。
IsDate(expression)
若 expression 為日期則傳回 True,否則傳回 False。
IsEmpty(expression)
若 expression 為 empty 則傳回 True,否則傳回 False。
IsNull(expression)
若 expression 為 Null 則傳回 True,否則傳回 False。
IsNumeric(expression)
若 expression 為數字則傳回 True,否則傳回 False。
IsObject(expression)
若 expression 為物件則傳回 True,否則傳回 False。
Join(list [, delimiter])
傳回一維陣列 list 中每一個元素字串的連結字串,若省略 delimiter
則以空白隔開。
LBound(arrayname [, dimension])
傳回 arrayname 第 dimension 維的最小索引值。若省略 dimension
則預設為 1。
LCase(string)
將 string 轉換為英文小寫字母。
Left(string, length)
傳回 string 字串最左邊 length 個字元。
Len(string | varname)
傳回 string 字串或 varname 字串變數的長度。
LoadPicture(picturename)
傳回從 picturename 檔案載入的物件。
Log(number)
傳回 number 數值的對數值。
LTrim(string)
將 string 字串前的空白去除。
Mid(string, start [, length])
傳回 string 字串中由 start 開始,長度 length 的子字串。
Minute(time)
傳回 time 時間中的分鐘數值(0-59)。
Month(date)
傳回 date 日期中的月份數值(1-12)。
MonthName(month [, abbreviate])
傳回 month 數值相對應的月份名稱。若 abbreviate 值為 True 則傳回
月份簡稱。
MsgBox(prompt [, buttons] [, title] [, helpfile, context])
顯示一個對話框,當用戶選擇適當按鈕後,將該按鈕值傳回。
Now
傳回現在的系統時間。
Oct(number)
將 number 數值轉為八進位後傳回。
Replace(expression,find,replacewith [,start [,count [,compare]]])
在 expression 字串中找到 find 子字串後以 replacewith 字串取代後
傳回。
Right(string, length)
傳回 string 字串最右邊的 length 個字元。
Rnd[(number)]
傳回一個介於 0 (含) 至 1 (不含) 間的隨機數。
Round(expression [, numdecimalplaces])
將 expression 第 numdecimalplaces 為小數四捨五入後傳回。
RTrim(string)
去除 string 字串尾部的空白並傳回。
ScriptEngine()
傳回使用中的文稿語言字串。VBScript 或 JScript 或 VBA。
ScriptEngineBuildVersion()
傳回使用中的文稿語言 build 版本。
ScriptEngineMajorVersion()
傳回使用中的文稿語言主版本。
ScriptEngineMinorVersion()
傳回使用中的文稿語言副版本。
Second(time)
傳回 time 時間的秒數(0-59)。
Sgn(number)
傳回 number 的符號,當 number 大於 0 傳回 1,等於 0,傳回 0,
小於 0 傳回 -1。
Sin(number)
傳回 number 的正弦值。number 以 radians 計值。
Space(number)
傳回一個長度為 number 的空白字串。
Split(expression [, delimiter [, count [, compare]]])
將以 delimiter 為隔開符號的 expression 字串剖開後存入一個一維陣
列後傳回。
Sqr(number)
傳回 number 的平方值。
StrComp(string1, string2 [, compare])
將 string1、string2 二字串相比較,結果以整數表示,若 string1 較
小則傳回 -1,相等則傳回 0,較大則傳回 1。若其中有一個為 Null 則
傳回 Null。
String(number, character)
傳回一個 number 個 character 字元的字串。
StrReverse(string)
傳回一個 string 字串的反向字串。
Tan(number)
傳回 number 的正切值。number 以 radians 計值。
Time
傳回目前的系統時間。
TimeSerial(hour, minute, second)
將時hour、分minute、秒second值轉為日期型態並傳回。
TimeValue(time)
將 time 的時間轉為日期型態並傳回。
Trim(string)
去除 string 字串頭尾的空白並傳回。
TypeName(varname)
傳回變數名稱 varname 的 Variant 次型態 (subtype) 字串。可能值為
Byte、Integer、Long、Single、Double、Currency、Decimal、Date、
String、Boolean、Empty、Null、<ObjectType>、Object、Unknown、
Nothing、Error。
UBound(arrayname [, dimension])
傳回 arrayname 第 dimension 維的最大索引值。若省略 dimension
則預設為 1。
UCase(string)
將 string 字串轉為英文大寫字母後傳回。
VarType(varname)
傳回 varname 變數的次型態整數值。
整數值 常數 次型態
------ ------------ --------------------------------------
0 vbEmpty Empty (uninitialized)
1 vbNull Null (not valid data)
2 vbInteger Integer
3 vbLong Long integer
4 vbSingle Single-precision floating-point number
5 vbDouble Double-precision floating-point number
6 vbCurrency Currency
7 vbDate Date
8 vbString String
9 vbObject Automation object
10 vbError Error
11 vbBoolean Boolean
12 vbVariant Variant (used only with arrays of Variants)
13 vbDataObject A data-access object
17 vbByte Byte
8192 vbArray Array
Weekday(date [, firstdayofweek])
傳回 date 日期所代表的星期,1 表星期日,7 表星期六。
WeekdayName(weekday, abbreviate, firstdayofweek)
傳回 weekday 數值的星期名稱。
Year(date)
傳回 date 日期中的年份。
Win10 開機自動執行
Step1. 把你要執行的程式建立一個捷徑到桌面上
Step2. 按下 Win+R, 輸入"shell:startup"並按下Enter
Step3. 把剛剛建立在桌面的捷徑搬過去或複製過去都可以
Step2. 按下 Win+R, 輸入"shell:startup"並按下Enter
Step3. 把剛剛建立在桌面的捷徑搬過去或複製過去都可以
2016年1月4日 星期一
PSP of COM and EXE
COM檔的PSP(僅供參考)︰
0000H | dw OCD20H | INT 20H |
0002H | dw ? | 可用記憶體最大節位址 |
0004H | db ? | |
0005H | db 5 dup(?) | 用於完成DOS INT 21H的功能呼叫﹐此時CL = AH (OOH - 23H) |
000AH | dd ? | 原 INT 22H 中斷的進入位址 |
000EH | dd ? | 原 INT 23H 中斷的進入位址 |
0012H | dd ? | 原 INT 24H 中斷的進入位址 |
0016H | dw ? | 父程式 PSP 位址 |
0018H | db 20 dup(?) | 檔案頭銜表 (FHF)﹐決定該行程可以同時開20個檔案 |
002CH | dw ? | 環境變數區的節位址 |
002EH | dd ? | 堆疊指標紀錄區 |
0032H | dw ? | 檔案頭銜表的大小﹐預設值為20 |
0034H | dd ? | 檔案頭銜表的起始位址﹐預設為DS︰0018H |
0038H | dd ? | |
003CH | db ? | |
003DH | dw ? | |
003FH | db ? | |
0040H | dw ? | 所對應的DOS版本 |
0042H | dw 14 dup(?) | |
0050H | db 3 dup(?) | INT 21H retf |
0053H | dw ? | |
0055H | db 7 dup(?) | FCB控制塊的擴充部分 |
005CH | db 16 dup(?) | 第一個FCB的控制塊 |
006CH | db 16 dup(?) | 第二個FCB的控制塊 |
007CH | dd ? | |
0080H | db 80h dup(?) | 磁碟資料傳送區(DTA) |
EXE檔的PSP(僅供參考)︰
0000H | dw ? | 'MZ'表示是EXE檔﹐如果沒有DOS就認為是COM檔 |
0002H | dw ? | EXE檔案長度除以512的餘數 |
0004H | dw ? | EXE檔案長度除以512的商數 |
0006H | dw ? | |
重定位表的數目\cell 0008H | dw ? | 檔頭的para數 |
000AH | dw ? | 程式所需最少記憶體 |
000CH | dw ? | 程式所需最多記憶體 |
000EH | dw ? | 初始化SS值﹐(相對於起始節位址) |
0010H | dw ? | SP |
0012H | dw ? | Checksum |
0014H | dw ? | IP |
0016H | dw ? | 初始化CS值﹐(相對於起始節位址) |
0018H | dw ? | 重定位表起始值﹐(相對於檔頭) |
當COM檔被載入的時候﹐DS、ES都會指向PSP﹐而 PSP的大小是100H bytes﹐所以 IP會指向 0100H。
訂閱:
文章 (Atom)