QTP學習
目錄
一、 列出systemutil這個對象內部的所有屬性和方法:
1. object.Run file, [params], [dir], [op], [mode]
4. CloseDescendentprocesses syntax:
8. CloseProcessByWndTitle synatx:
描述性編程的介紹
描述性變成的2種方法
簡單說:
對象庫的維護方法·
一. 直接描述
micClasas(“property1:=value1”,”propertyty2:=value2”)
micClasas:對象類型 例子:WebEdit DialogBox
property:屬性
value:屬性值
“”:單個屬性用引號
,: 多個屬性用逗號隔開
Index使用方法:
當頁面中同一個類型的對象有多個時,QTP按照從左到右,從上到下的順序給每個對象定一個值。
Index=0;index=1;index=2;……
With
End With 使用方法:
把同樣的語言提取出來,用”.”表示。
Edit—>Advancedàremove.* with語句與錄製語錄的切換。
例子:描述性編程:登錄流程
‘錄製的腳本
'Browser("播布客. - Powered by Discuz!").Page("播布客. - Powered by Discuz!").Link("登錄").Click
'Browser("播布客. - Powered by Discuz!").Page("播布客. - Powered by Discuz!").WebEdit("username").Set "liuyang19811112"
'Browser("播布客. - Powered by Discuz!").Page("播布客. - Powered by Discuz!").WebEdit("password").SetSecure "4c57bd5826121072add414cf948b78267805"
'Browser("播布客. - Powered by Discuz!").Page("播布客. - Powered by Discuz!").WebButton("登錄").Click
‘直接描述性編程
With Browser("title:=播布客.*").Page("title:=播布客.*") ' with語句把相同的內容提取出來,用"."表示。便於維護。
.Link("text:=登錄","index:=1").Click
.WebEdit("name:=username","type:=text","index:=0").Set"liuyang19811112" ‘描述性編程,對username進行描述,用三個屬性name,type,index描述它。
.WebEdit("name:=password").SetSecure"4c57bd5826121072add414cf948b78267805"
.WebButton("name:=登錄").Click
End With、
二. 語法描述
提前聲明變量。
Set EditDesc=Description.Create() 聲明一個變量
EditDesc(“Name”).Value=”username” name屬性是“username”
EditDesc(“Index”).Value=”0” index屬性是“0“
Browser(“Welcome:Mercury”).Page(“Welcome:meicury”).WebEdit(EditDesc).Set”MyName”
語法描述例子:
Set bBrowser=Description.Create() ‘對每個對象描述。
bBrowser("title").Value="播布客.*"
Set pPage=Description.Create()
pPage("title").Value="播布客.*"
Set lLink=Description.Create()
lLink("text").Value="登錄"
lLink("index").Value="1"
Set eUsername=Description.Create()
eUsername("Name").Value="username"
eUsername("Index").Value="0"
Set ePassword=Description.Create()
ePassword("Name").Value="password"
Set bButton=Description.Create()
bButton("Name").Value="登錄"
With Browser(bBrowser).Page(pPage)
.Link(lLink).Click
.WebEdit(eUsername).Set"liuyang19811112"
.WebEdit(ePassword).SetSecure"4c57bd5826121072add414cf948b78267805"
.WebButton(bButton).Click
End With
l 練習題:
1. 直接描述性編程:登錄
With Dialog("title:=Login")
.WinEdit("attached text:=Agent Name:").Set"mercury"
.WinEdit("attached text:=Password:").SetSecure"mercury"
.WinButton("text:=OK").Click
End With
Window("Flight Reservation").Close
2. 語法描述:
' 語法描述性編程
Set dDialog=Description.Create()
dDialog("title").Value="Login"
Set aAgent=Description.Create()
aAgent("attached text").Value="Agent Name:"
Set pPass=Description.Create()
pPass("attached text").Value="Password:"
Set bButton=Description.Create()
bButton("text").Value="OK"
With Dialog(dDialog)
.WinEdit(aAgent).Set"mercury"
.WinEdit(pPass).SetSecure"mercury"
.WinButton(bButton).Click
End With
描述性編程高級講座
l 典型用法:獲取對象的總數
Dim oWebChkDesc
Set oWebChkDesc=Description.Create
oWebChkDesc(“micclass”).value=”WebCheckBox”
oWebChkDesc(“html tag”).value=”INPUT”
‘獲取所有匹配描述的對象
Dim allCheck,oCheckBox
Set allCheck=Browser(“Web Tours”).Page(“Web Tours”).ChildObjects(oWebChkDesc)
For i=0 to allCheck.Count-1
Set oCheckBox=allCheck(i)
oCheckBox.Set”ON”
Next
l 實例:
'描述性編程,定義CheckBox
Dim vCheckBox
Set vCheckBox=Description.Create()
vCheckBox("type").value="checkbox"
vCheckBox("name").value="uid/[/]"
'定義CheckBox的一個羣。
Dim allCheck
'設置所有的CheckBox爲allCheck。
Set allCheck=Browser("播布客. - Powered by Discuz!").Page("播布客. - Powered by Discuz!").ChildObjects(vCheckBox)
' 顯示CheckBox的個數。
msgbox allCheck.count
'循環設置勾選每個CheckBox。
For i=0 to allCheck.count-1
allCheck(i).Set"ON"
Next
l 課後練習題:逐個刪除每個信息。
Dim vCheckBox,lLink
Set vCheckBox=Description.Create()
vCheckBox("type").Value="checkbox"
vCheckBox("name").Value="uid/[/]"
Set lLink=Description.Create()
lLink("text").Value="刪除"
lLink("class").Value="lightlink"
Dim allCheckBox
Set allcheck=Browser("播布客. - Powered by Discuz!").Page("播布客. - Powered by Discuz!").ChildObjects(vCheckBox)
msgbox allcheck.count
For i=0 to allCheck.Count-1
allCheck(i).Set"ON"
Browser("播布客. - Powered by Discuz!").Page("播布客. - Powered by Discuz!").Link(lLink).Click
Next
QTP在Word的基本操作
1. 基本語法
l Set oWorddoc=GetObject(“d:/test.doc”)
已知一個word文檔
l Set oWorddoc=CreateObject(“word.application”)
未知word文檔,WORD的屬性賦值到oWorddoc中。
l 實例
2. '創建word對象
Set oWordApp=CreateObject("Word.Application")
' 將word對象設置爲可見
oWordApp.Visible=True
Msgbox"Word已經打開,確認後關閉"
'關閉Word對象
oWordApp.Quit
'對象清空
Set oWordApp=Nothing
‘創建一個word文檔
'創建word對象
Set oWordApp=CreateObject("Word.Application")
' 將word對象設置爲可見
oWordApp.Visible=True
'增加一個新文檔
Set oWordDoc=oWordApp.Documents.Add
'另存爲testbbk.doc
'問題:爲什麼不直接用save,而用saveas呢?
oWordDoc.SaveAs"d:/testbbk.doc"
msgbox"文件創建成功!"
oWordDoc.Close
oWordApp.Quit
Set oWordDoc=Nothing
Set oWordApp=Nothing
3. 打開已知的文件插入文字:方法一
'打開一個已經存在的文檔
Set oWordDoc=GetObject("D:/Testbbk.doc")
Set oWordApp=oWordDoc.Application
oWordApp.Visible=True
msgbox"open and chick"
oWordDoc.close
oWordApp.Quit
Set oWordDoc=Nothing
Set oWordApp=Nothing
方法二:
Set oWordApp=CreateObject("Word.Application")
oWordApp.Visible=True
'打開一個已知的文件
Set oWordDoc=oWordApp.Documents.Open("D:/Testbbk.doc")
MsgBox"open and chick"
如何往WORD中寫入文字。
EditWord"d:/testbbk.doc","QTP學習進階之Word基本操作"
Function EditWord(filepath,content)
Set WordApp=CreateObject("Word.Application")
WordApp.Visible=True
Set doc=WordApp.Documents.Open(filepath)
doc.Content=content
doc.Save
Set doc=Nothing
Set WordApp=Nothing
ReadWord=True
End Function
4. 插入一個表格
l 實例
EditWord"d:/testbbk.doc"
Function EditWord(filepath)
'打開文檔
Set oWordApp=CreateObject("Word.Application")
oWordApp.Visible=True
Set oWordDoc=oWordApp.Documents.Open(filepath)
oWordDoc.Range.Select
Set oWordSel=oWordApp.Selection
With oWordSel
'創建5*3的表格
Set oNewTable=.Tables.Add(.range,5,3)
'字體大小8
oNewTable.Range.Font.Size=8
'第一行顯示“i”"i*2”“i*3”
i=1
oNewTable.Cell(i,1).Range.Text="i"
oNewTable.Cell(i,2).Range.Text="i*2"
oNewTable.Cell(i,3).Range.Text="i*3"
'第2-5行顯示
For i=2 To 5
oNewTable.Cell(i,1).Range.Text=i-1
oNewTable.Cell(i,2).Range.Text=(i-1)*2
oNewTable.Cell(i,3).Range.Text=(i-1)*3
Next
'增加一行,顯示:
oNewTable.Rows.Add
i=oNewTable.Rows.Count
oNewTable.Cell(i,1).Range.Text=i-1
oNewTable.Cell(i,2).Range.Text=(i-1)*2
oNewTable.Cell(i,3).Range.Text=(i-1)*3
End With
End Function
5. 插入圖像
l 實例
EditWord"d:/testbbk.doc","d:/1.95M.jpg"
Function EditWord(filepath,filepic)
'打開文檔
Set oWordApp=CreateObject("Word.Application")
oWordApp.Visible=True
Set oWordDoc=oWordApp.Documents.Open(filepath)
oWordDoc.Range.Select
Set oWordSel=oWordApp.Selection
With oWordSel
Set olmg=.InlineShapes.AddPicture(filepic,False,True)
olmg.Width=olmg.Width*0.50
olmg.Width=olmg.Height*0.50
'中間對齊
olmg.Range.ParagraphFormat.Alignment=1
.TypeParagraph
.TypeText"qtp基礎操作"
.TypeParagraph
End With
End Function
l 練習:創建WORD,往word裏插入文字。
'創建word對象
Set oWordApp=CreateObject("Word.Application")
' 將word對象設置爲可見
oWordApp.Visible=True
'增加一個新文檔
Set oWordDoc=oWordApp.Documents.Add
'參數化文件名
Dim fileName
'文件名取當前時間
fileName=Year(Date)&Month(Date)&Day(Date)&"_"&Hour(Time)&Minute(Time)&Second(Time)
'往word裏插入文字
oWordDoc.content="測試"
'MsgBox fileName
'另存爲testbbk.doc
'問題:爲什麼不直接用save,而用saveas呢?
oWordDoc.SaveAs"d://"&fileName&".doc"
oWordDoc.Close
oWordApp.Quit
Set oWordDoc=Nothing
Set oWordApp=Nothing
l 練習:word插入文字,函數
'如何往WORD中寫入文字。
Function EditWord(filepath,content)
Set WordApp=CreateObject("Word.Application")
WordApp.Visible=True
Set doc=WordApp.Documents.Open(filepath)
doc.Content=content
doc.Save
ReadWord=True
doc.Close
WordApp.Quit
Set doc=Nothing
Set WordApp=Nothing
End Function
EditWord"d://"&fileName&".doc","QTP學習進階之Word基本操作"
DateTbale
1. 取值和賦值 RawValue和Value
取值:RowValue
賦值:Value
例子一:
MsgBox DataTable.RawValue("name","Founding") “name”代表表頭字段(變量名)“founding”代表Sheet字段。
例子二:
MsgBox DataTable.RawValue("name","Founding")
DataTable.Value("name","Founding")="foundingtest" 賦值語句
MsgBox DataTable.RawValue(1,2) “1”按照變量名排序“2”按照sheet排序
2. 導入導出數據表
ImportSheet和ExportSheet
Import and Export
DataTable.ImportSheet "D:/Founding-1.xls",2,"Founding" 這裏的2代表導入表的sheet
msgbox DataTable.RawValue(1,2)
DataTable.Value("name","Founding")="Foundingtest"
msgbox DataTable.RawValue("name","Founding")
DataTable.ExportSheet"D:/Founding-2.xls",2 這裏的2代表QTP表的sheet
3. 操作行的方法
SetNextRow和SetPrevRow
SetNextRow 取下一行
SetPrevRow 取上一行
Dim mainmenu,submenu,premenu
mainmenu=Datatable.RawValue("main","Founding")
submenu=Datatable.RawValue("sub","Founding")
Datatable.SetPrevRow
premenu=Datatable.RawValue("main","Founding")
Datatable.SetNextRow
If premenu=mainmenu Then
Print submenu
else
print mainmenu
print submenu
end if
SetCurrentRow 取第幾行數據
GetCurrentRow 當前運行到第幾行
msgbox datatable.GetCurrentRow
msgbox datatable.RawValue("test",2)
datatable.SetCurrentRow(3)
msgbox datatable.RawValue("test",2)
msgbox datatable.GetCurrentRow
4. AddSheet DeleteSheet GetSheet
GetSheet 取其他sheet的值
例子:
msgbox datatable.GetSheet("Action2").GetCurrentRow
datatable.SetCurrentRow(3)
msgbox datatable.RawValue("name","Action2")
5. Add Parameter Delete Parameter Get Parameter
Add Parameter 增加一個參數
Delete Parameter 刪除一個參數
Get Parameter 得到一個參數
例子:
DataTable.GetSheet("Action2").AddParameter"NEW","test"
Print DataTable.GetSheet("Action2").GetParameter("NEW")
DataTable.GetSheet("Action2").DeleteParameter("NEW")
Print DataTable.GetSheet("Action2").GetParameter("NEW")
例二:
msgbox DataTable.GetSheet("Action2").GetParameter(1).Name
msgbox DataTable.GetSheet("Action2").GetParameter(1).ValueByRow(3)
6. Count的方法
GetRowCount GetSheetCount GetParameterCount
例子:
msgbox datatable.GetSheetCount
例子二:
登錄流程
Dim i
For i=1 to datatable.GetSheet("Action1").GetRowCount '獲取數據表中的行數
Dim expa
Dim fact
SystemUtil.Run "C:/Program Files/HP/QuickTest Professional/samples/flight/app/flight4a.exe","","C:/Program Files/HP/QuickTest Professional/samples/flight/app/","open"
Dialog("Login").WinEdit("Agent Name:").Set DataTable("username", dtLocalSheet)
Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtLocalSheet)
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Incorrect password. Please try again").Output CheckPoint("Incorrect password. Please try again")
Dialog("Login").Dialog("Flight Reservations").WinButton("確定").Click
Dialog("Login").WinButton("Cancel").Click
expa=datatable("expect",dtlocalsheet) '獲取參數的值
fact=datatable("outmsg",dtlocalsheet) '獲取參數值
If expa<>fact Then
reporter.ReportEvent 1,"預期=實際"
End If
datatable.GetSheet("Action1").SetNextRow
Next
焦點檢查
例子:
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'目的:利用Tab鍵來檢查焦點的位置變化是否正確。
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'檢查控件的focused屬性的函數
Public function CheckFocus(TestObject)
If TestObject.CheckProperty("focused","True",2) Then
CheckFocus=True
else
CheckFocus=False
End If
End Function
'tab按鍵的鍵值
Const VK_TAB=15
'創建DeviceReplay對象
Set DeviceReplay=CreateObject("Mercury.DeviceReplay")
'創建Dictionary對象
Set dic=CreateObject("Scripting.Dictionary")
'添加Dictionary的key和value,把順序號作爲key,控件對象作爲value
dic.Add"1",dialog("Login").WinEdit("Agent Name:")
dic.Add"2",dialog("Login").WinEdit("Password:")
dic.Add"3",dialog("Login").WinButton("OK")
'定位到程序窗口,並判斷窗口中的默認焦點是否在正確的位置
Dialog("Login").Activate
CheckFocus(dic.Item("1"))
For i=2 to dic.count
DeviceReplay.PressKey VK_TAB
If CheckFocus(dic.Item(CStr(i)))=False Then
Exit for
End If
Next
'Dialog("Login").WinEdit("Agent Name:").Set "mercury"
'Dialog("Login").WinEdit("Agent Name:").Type micTab
'Dialog("Login").WinEdit("Password:").SetSecure "4c737c27ca0062c4f7d5d10e2af15f004f8294fa"
'Dialog("Login").WinButton("OK").Click
'Window("Flight Reservation").Close
SystemUtil
一、 列出systemutil這個對象內部的所有屬性和方法:
1.Run
運行一個文件或應用程序
2.BlockInput
禁止鼠標和鍵盤操作
3.UnBlockInput
一般跟在BlockInput語句之後,解除對鍵盤和鼠標的禁止。
4.CloseDescendentProcesses
關閉由QTP打開的所有進程。
5.CloseProcessByHwnd
根據窗口句柄,找到相應過程,關閉程序。
6.CloseProcessById
根據進程 ID (PID)關閉某個進程。
7.CloseProcessByName
根據名稱關閉某個進程。
8.CloseProcessByWndTitle
關閉所有進程,這些進程是具有指定標題的窗口的所有者。
二、 屬性方法詳解
1. object.Run file, [params], [dir], [op], [mode]
三、 實例:
Msgbox"演示:Run方法的參數Fire=Cmd"
'類似在開始-》運行輸入cmd效果
systemutil.Run"cmd"
wait 4
msgbox"演示:Run方法參數Fire=Iexplore.exe,params=www.baidu.com"
'params參數來指定該可執行文件的運行參數
systemutil.Run"firefox.exe","www.baidu.com"
wait 10
Msgbox"Run方法的參數Fire=Type.txt,Dir=d:/"
'當指定DIir參數值後,Fire參數呢的文件可以不加絕對路徑。
Systemutil.Run"type.txt","","d:/"
wait 4
Msgbox"演示:Run方法參數Fire=c:/windows,op=explore"
'打開fire參數中所指定的文件夾。
systemutil.Run"windows","","c:/","explore"
wait 4
Msgbox"演示:Run方法參數File=c:/windows,op=explore,mode=7"
'當指定參數mode=7表示顯示窗口並最小,但不激活該窗口。原來活動的窗口仍然保持活動狀態。
systemutil.Run"c:/windows","","",explore,7
wait 4
Msgbox"演示:Run方法的參數Fire=Type.txt,dir=d:/,op=print"
'打印在fire參數中所指定的文檔,如果參數中所指定的文檔不可打印,則語句失敗。
systemutil.Run"type.txt","","d:/","print"
wait 4
2. BlockInput syntax:
Ø Object.BlockInput:object表示Systemutil類型的測試對象。
Ø Remarks:
1. 當電腦正在運行QTP腳本時,使用Blockinput方法可以防止因鍵盤和鼠標的操作擾亂QTP正常運行。
2. 使用BlockInput方法後,可使用下方法解除鼠標或鍵盤的禁止。:
l 當使用了UnblockInput語句後,可以解除禁止。
l 當腳本運行結束或中斷(如整個test結束、運行錯誤、斷點等)
l 在鍵盤上按下ctrl+alt+delete組合鍵後
l 當出現嚴重系統錯誤時。
3. UnblockInput syntax
Ø Object.UnblockInput:object表示systemutil類型的測試對象。
Ø Remarks:
如果使用blockinput方法禁止鼠標鍵盤,使用unblockinput可解除鍵盤鼠標禁止。
4. CloseDescendentprocesses syntax:
Ø Object. CloseDescendentprocesses:object表示systemutil類型的測試對象。
Ø 返回值:
一個長整型值。被CloseDescendentprocesses方法語句關閉的程序實例數。
Ø Remarks
注意執行語句時,Quicktest首先向進程窗口發送一個WM_CLOSE信息,嘗試關閉進程;如果該進行在5秒後未關閉,則QTP強制結束進程。
l 實例
CloseDescendentProcesses_Example()
Sub CloseDescendentProcesses_Example()
Systemutil.Run"D:/type.txt","","",""
'執行鍵盤鼠標禁止操做
Systemutil.Blockinput
Window("title:=type.txt - 記事本").Type"鍵盤操作禁止,現在自動增加數據。10秒後可恢復鍵盤操作。"
wait 10
'解除鍵盤禁止操作
systemutil.UnblockInput
window("title:=type.txt - 記事本").Type"鍵盤禁止操作被解除,可使用鍵盤輸入數據"
wait 5
window("title:=type.txt - 記事本").Type micAltDwn&"F"&micAltUp
window("title:=type.txt - 記事本").Type micShiftDwn&"S"&ShiftUP
End Sub
l 實例:
Sub systemcdp()
msgbox"QTP將打開QTPopen1、2、3三個文件"
wait 3
systemutil.Run"QTPopen1.txt","","d:/"
systemutil.Run"QTPopen2.txt","","d:/"
systemutil.Run"QTPopen3.txt","","d:/"
msgbox"打開一個文件"
systemutil.CloseDescendentProcesses
End Sub
systemcdp()
5. CloseProcessByHwnd syntax:
Object. CloseProcessByHwnd(hwnd)
<>hWnd:必須。一個Ulong(整型)對象,你想要關閉的進程窗口的句柄。
//hwnd(句柄):32位整數,用來標示windows操作系統中的窗口,位圖、GDI等資源。
//創建窗口時,windows給他指派一個句柄,窗口消失後句柄被釋放。
Tip:你可以通過獲取Runtime(運行時態)窗口對象的hwnd屬性值來獲得句柄信息。
例如:Windows(“MyAppName”).GetRoProperty(“hwnd”)
//GetROProperty():取得實際對象的摸個屬性值
//QTP識別和操作對象的原理
Return Value:
一個Boolean值,True-制定進程已被成功關閉。False-制定進程未被關閉。
//注意:執行語句時,QTP首先向進程窗口發送一個WM_CLOSE信息嘗試關閉該進程;如果進程在5秒鐘後仍未關閉,則QTP強制結束進程。
l Example:
在本例子中,首先通過Getroproperty方法獲取NotePad窗口句柄,然後使用CloseProcessByHwnd方法關閉Notepad程序。
Sub closeProperByHwnd_Example()
hWnd=window(”Notepad”).GetROProperty(“hwnd”)
SystemUtil.closeProcessByHwnd(hWnd)
End Sub
6. CloseProcessByld synatx:
Object.closeProcessByld(wdProcessld)
<>wdProcessld:必須。一個Ulong(整型)對象,你想關閉進程的PID。
Tip:在windows窗口下進程標籤頁是可以查看到pid的值,你也可以通過runtime窗口對象的process id 屬性來獲得PID信息。
PID:是系統下各進程的身份標識。//類公司來賓證編號
例如:window(“MyAppName”).GetRoProperty(“process id”)
Return Value:
一個boolean值,ture-制定進程被關閉。False-制定進程未被關閉。
//windows下查看PID:任務管理器—>查看à選擇列
l Example
下面例子通過GetRoproperty方法獲取Notepad窗口的PID值,然後使用CloseProcessById方法關閉Notepad程序。
Sub CloseProcessById_Example()
PID=window(“Notepad”).GetROproperty(“process id”)
Systemutil.CloseProcessById(PID) end sub
7. CloseProcessByName synatx:
Object.CloseprocessByName(bsProcessName)
<>bsProcessName:必須。一個字符串值,你想關閉的進程名稱。
//進程:百度-百科去查看。
Return Value:
一個Long值。所關閉程序的實例數。
l Example:
本例通過CloseProcessByName方法,關閉所有打開的Notepad實例。如果當前所有的Notepad實例都是由下面的run語句打開的,則CloseProcessByName方法語句會關閉這些實例,並且Msgbox顯示數值應爲“3”。
Sub CloseProcessByName_Example()
Systemutil.run”Notepad.exe”
Systemutil.run”Notepad.exe”
Systemutil.run”Notepad.exe”
MsgBox SystemUtil.CloseProcessByName(“Notepad.exe”)
End Sub
8. CloseProcessByWndTitle synatx:
Object.closeProcessByWndTitle(bsTitle,[bRegExp])
<>bsTitle:必須。一個字符串值。你想關閉的進程窗口的標題。
<>bRegExp:可選。一個Boolean值。檢查bsTitle參數是否是一個正則表達式。默認值爲False。
Return Value:
一個long值。語句關閉的實例數。
l Example:
1. 本例關閉了所有的標題包含有“Notepad”字樣的頂層窗口。因爲bRegExp參數值爲ture,表示bsTitle值是一個正則表達式。
Sub CloseprocessByWndtitle_Example()
Systemutil.CloseProcessByWndTitle”Notepad”,true
End Sub
2. 本例關閉所有窗口標題爲“Untitled-Notepad”的頂層窗口。因爲bRegexp參數值爲“false”,表示bsTitle參數值是一個文字串,因此窗口標題必須與參數值精確匹配。
Sub CloseprocessByWndTitle_Example2()
Systemutil.CloseProcessByWndTitle”Jntitle-Notapad”
End Sub