1樓:匿名使用者
一、先複製下面函式:
function shell_ex(exename as string) as boolean
dim id as long, name as string
name = mid(exename, instrrev(exename, "\") + 1)
id = shell(exename, vbnormalfocus)
on error resume next
dim objwmiservice, colprocesslist, objprocess
set objwmiservice = getobject("winmgmts:!\\.\root\cimv2")
doshell_ex = true
set colprocesslist = objwmiservice.execquery _
("select * from win32_process where name='" & name & "' and handle='" & id & "'")
for each objprocess in colprocesslist
shell_ex = false
exit for
next
doevents
loop until shell_ex = true
set objprocess = nothing
set colprocesslist = nothing
set objwmiservice = nothing
end function
二、函式呼叫舉例:
shell_ex "c:\1.exe"
shell_ex "c:\2.exe"
shell_ex "c:\3.exe"
2樓:匿名使用者
用shellexecute 吧,單獨的shell好像是不能完成你的要求的~~
(vb中)預設情況下,shell函式是以非同步方式來執行其它程式的,那如果要同步執行程式,要怎麼做?
3樓:匿名使用者
真神人也private sub sh()
dim x as long
x = shell("c:\aa.exe", vbnormalfocus)
do while x = 0doeventsloop'其他**。。。
end sub這個**中,shell返回之後,x的值還會改變嗎???????????? 要想同步,可以用api函式,createprocess 建立程序,再用 waitforsingleobject 等特程序控制代碼返回訊號。**比較複雜,我就不多說了。
4樓:匿名使用者
因為呼叫完成後才返回非零值,所以用迴圈來檢測,如果為0後再進入下一步程式private sub sh()
dim x as long
x = shell("c:\aa.exe", vbnormalfocus)
do while x = 0
loop'其他**。。。
end sub
5樓:匿名使用者
shell函式的執行機制是與其它程式同步執行,也就是說,當呼叫shell函式的子程式還沒有執行完畢之前,shell函式後面的語句已經執行。
vb中的shell函式是幹什麼的?怎麼用啊?
6樓:四舍**入
shell函式是vb中的內部函式,它負責執行一個可執行檔案,返回一個variant(double),如果成功的話,代表這個程式的程序id,若不成功,則會返回0,shell一個非常重要的特性是它可作為一種程式語言來使用。
shell的語法:shell(pathname[,windowstyle])。
pathname 為必需引數,型別為string,它指出了要執行的程式名,以及任何需要的引數或命令列變數。
你還,對於vb 程式設計中的非同步操作中的函式怎麼寫啊
vb中shell使批處理完成後再執行後續指令
7樓:我是雨之痕
我也不太明白,不過我有些思路,就是說呢,用一個timer來監視一些,你批處理裡最後的一個改動,比如說,修改一個檔案的名字,在你按按鈕的同時,開動時鐘控制元件,然後,msgbox "清理完成!"
放在timer1裡,這樣就ok了,不知這樣的思路行不行,如果是我,就這樣辦,也許有更好的辦法 思路有了,你可以自己找一下相關的**,主要是查檔名的**
對了,忘了,在時鐘控制元件生效前一定要讓要改的那個檔名復位,這樣不至於出錯,我想你也能想到,但我還是想補充一下
8樓:匿名使用者
'這樣就可以滿足你的要求:
private sub command1_click()open "c:\test.bat" for output as #1
print #1, "@echo off"
print #1, "echo 測試完畢"
print #1, "echo. & pause "
close #1
dim wshshell
set wshshell = createobject("wscript.shell")'建立指令碼物件
wshshell.run "c:\test.bat"
set wshshell = nothing'釋放記憶體msgbox "清理完成!"
end sub
9樓:匿名使用者
shell函式有一定執行時間,這樣修改:
option explicit
private declare sub sleep lib "kernel32" (byval dwmilliseconds as long)
private sub command1_click()open "c:\test.bat" for output as #1
print #1, "@echo off"
print #1, "echo 測試完畢"
print #1, "echo. & pause "
close #1
shell "c:\test.bat", vbnormalfocussleep 500 '按實際情況設定時間,單位是毫秒form1.setfocus
msgbox "清理完成!"
end sub
怎麼讓vb中shell命令執行完第一個命令,再執行第二次命令?
10樓:匿名使用者
這樣呼叫應用程式或批處理檔案確實不好。但可以這樣操作:shell "cmd.
exe /c具體命令列(如ipconfig查詢ip地址)", vbhide。如下:shell "cmd.
exe /cipconfig", vbhide 就是利用vb查詢ip地址的,如命令列不多用此方法重複幾次也是可以的。
關於vb的shell命令的問題
11樓:
shell 函式
執行一個可執行檔案,返回一個 variant (double),如果成功的話,代表這個程式的任務 id,若不成功,則會返回 0。
語法shell(pathname[,windowstyle])
shell 函式的語法含有下面這些命名引數:
部分 描述
pathname 必要引數。variant (string),要執行的程式名,以及任何必需的引數或命令列變數,可能還包括目錄或資料夾,以及驅動器。
windowstyle 可選引數。variant (integer),表示在程式執行時視窗的樣式。如果 windowstyle 省略,則程式是以具有焦點的最小化視窗來執行的。
windowstyle 命名引數有以下這些值:
常量 值 描述
vbhide 0 視窗被隱藏,且焦點會移到隱式視窗。
vbnormalfocus 1 視窗具有焦點,且會還原到它原來的大小和位置。
vbminimizedfocus 2 視窗會以一個具有焦點的圖示來顯示。
vbmaximizedfocus 3 視窗是一個具有焦點的最大化視窗。
vbnormalnofocus 4 視窗會被還原到最近使用的大小和位置,而當前活動的視窗仍然保持活動。
vbminimizednofocus 6 視窗會以一個圖示來顯示。而當前活動的的視窗仍然保持活動。
說明如果 shell 函式成功地執行了所要執行的檔案,則它會返回程式的任務 id。任務 id 是一個唯一的數值,用來指明正在執行的程式。如果 shell 函式不能開啟命名的程式,則會產生錯誤。
注意 預設情況下,shell 函式是以非同步方式來執行其它程式的。也就是說,用 shell 啟動的程式可能還沒有完成執行過程,就已經執行到 shell 函式之後的語句。
shell 函式示例
本示例使用 shell 函式來完成一個使用者指定的應用程式。
' 將第二個引數值設成 1,可讓該程式以正常大小的視窗完成,並且擁有焦點。
dim retval
retval = shell("c:\windows\calc.exe", 1) ' 完成calculator。
參考資料:msdn
如何在shell指令碼中執行cd命令
在工作中,網際網路公司,經常不是直接登入到服務上,而是通過跳板機進行中轉。這樣就會用到cd命令切換目錄。編輯shell檔案 vim switchdir.sh plain view plain copycd opt service mobile kafka 2.10 0.8.1 lizt bin so...
vb中ubound怎麼用,Ubound 在VB中怎麼用啊?!
ubound函式返回陣列的最大下標 dim s 4 as string dim i as integer i 4 i ubound s 就是取陣列的最大下標。格式 ubound 陣列,第幾維 給一段 執行一下 新建一窗體,然後到 區,刪除所有 後,貼上以下 可見執行效果 option explici...
VB裡關於mid函式的使用,vb中的mid函式
首次提問,結果是 software 追問,結果是 e mid 字串,m,n 返回字串的第m位起共n位的子字串。vb中的mid函式 mid是visual basic和microsoft excel中的一個字串函式,作用是從一個字串中擷取出指定數量的字元。這個函式的3個引數各在vb和excel中互相等價...