如何用VB呼叫外部程式(非Shell)

2022-02-05 17:58:41 字數 5919 閱讀 1812

1樓:匿名使用者

'定義常量 以後見到 synchronize 就相當於填寫了 &h100000

'即 phnd = openprocess(synchronize, 0, pid) 等於

const synchronize = &h100000

const infinite = &hffffffff

'引用系統 api 「openprocess」 用以獲得指定程式程序控制代碼

private declare function openprocess lib "kernel32" (byval dwdesiredaccess as long, byval binherithandle as long, byval dwprocessid as long) as long

'引用系統 api 「closehandle」 關閉控制代碼

private declare function closehandle lib "kernel32" (byval hobject as long) as long

'引用系統 api 「waitforsingleobject」 用以等待指定控制代碼的程序執行

private declare function waitforsingleobject lib "kernel32" (byval hhandle as long, byval dwmilliseconds as long) as long

' 程式範例:(以執行 notepad 程式為例)

private sub command1_click()

dim pid as long, phnd as long ' 分別宣告 process id 及 process handle

pid = shell("notepad", vbnormalfocus) ' shell 傳回 process id 如 notepad 的 程序id

phnd = openprocess(synchronize, 0, pid) ' 取得 process handle 得到 notepad 的程序控制代碼

if phnd <> 0 then '控制代碼獲得成功 則執行if內語句

call waitforsingleobject(phnd, infinite) ' 無限等待,直到程式結束

call closehandle(phnd) '釋放控制代碼

end if

msgbox "執行結束"

end sub

我也是菜鳥 只能解釋成這樣了

2樓:如玉愛廚房

shell 也有呼叫方式選擇

如何用vb呼叫外部的應用程式

3樓:匿名使用者

使用shell函式來呼叫外部的應用程式。

shell 函式

執行乙個可執行檔案,返回乙個 variant(double),如果成功的話,代表這個程式的任務 id,若不成功,則會返回 0。

shell 函式示例

本示例使用 shell 函式來完成乙個使用者指定的應用程式。

' 將第二個引數值設成 1,可讓該程式以正常大小的視窗完成,並且擁有焦點。

dim retval

retval = shell("c:\windows\system32\calc.exe", 1)   ' 完成calculator。

4樓:

1.用 shell "" (引號內是檔名 如"c:/a.txt")

2.用 shellexecute 乙個api

5樓:

shell ""可以完成開啟乙個外部exe程式,但是不知道是否符合你的要求!!!

vb如何呼叫外部程式?

6樓:匿名使用者

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 函式不能開啟命名的程式,則會產生錯誤

7樓:匿名使用者

shell"cmd"

8樓:匿名使用者

shell "c:\windows\notepad.exe"

如何用vb呼叫乙個外部exe程式

9樓:biubiu哩

使用shell函式函式。

shell函式是vb中的內部函式,它負責執行乙個可執行檔案,返回乙個variant(double),如果成功的話,代表這個程式的程序id,若不成功,則會返回0。

shell的語法:shell(pathname[,windowstyle])。

pathname 為必需引數。型別為string,它指出了要執行的程式名,以及任何需要的引數或命令列變數,也可以包括路徑名。

windowstyle為可選引數。integer型別,指定在程式執行時視窗的樣式。windowstyle有以下這些值。

示例,開啟當前程式所在目錄下的temp.exe檔案:

dim a as integer

10樓:昔日菊花

比如要按下乙個按鈕來啟動c:\abc.exe程式。

vb6的**如下: private sub command1_click() shell ("c:\abc.

exe") end sub vb.net的**如下: private sub button1_click(byval sender as system.

object, byval e as system.eventargs) handles button1.click process.

start("c:\abc.exe") end sub

如何用vb呼叫乙個外部exe程式?

11樓:杭幻梅吉名

比如要按下乙個按鈕來啟動c:\abc.exe程式。

vb6的**如下:

private

subcommand1_click()

shell

("c:\abc.exe")

endsub

vb.net的**如下:

private

subbutton1_click(byvalsender

assystem.object,

byvaleas

system.eventargs)

handles

button1.click

process.start("c:\abc.exe")endsub

vb中呼叫外部程式的**

12樓:匿名使用者

你可以用shell函式。如呼叫windows「計算器」程式:

dim retval

retval = shell("c:\windows\calc.exe", 1)

說明:①將第二個引數值設成 1,可讓該程式以正常大小的視窗完成,並且擁有焦點。

②第二個引數可為下列值:

0 視窗被隱藏,且焦點會移到隱式視窗。

1 視窗具有焦點,且會還原到它原來的大小和位置。

2 視窗會以乙個具有焦點的圖示來顯示。

3 視窗是乙個具有焦點的最大化視窗。

4 視窗會被還原到最近使用的大小和位置,而當前活動的視窗仍然保持活動。

6 視窗會以乙個圖示來顯示。而當前活動的的視窗仍然保持活動。

13樓:茹修杰申致

很簡單,比如你要啟動c:\abc.exe程式,**這樣寫就可以了:

private

subcommand1_click()

shell

("c:\abc.exe")

endsub

14樓:

使用api

private declare function shellexecute lib "shell32.dll" alias "shellexecutea" (byval hwnd as long, byval lpoperation as string, byval lpfile as string, byval lpparameters as string, byval lpdirectory as string, byval nshowcmd as long) as long

shellexecute me.hwnd, "open", 程式位址, "", "", 1

15樓:匿名使用者

可以將外部程式寫到模組中,進行全域性宣告再呼叫啊

請說的清楚點!

vb呼叫外部程式 80

16樓:

kankan看看教材上怎麼說的

17樓:江學謙

dofor i = 1 to 12

j = int(rnd * 9)

t$ = t$ + chr$(48 + j)next i

for i = 1 to 12

j = int(rnd * 9)

s$ = s$ + chr$(48 + j)next i

loop until s$ = t$

sendkeys "^s"end

18樓:

「有乙個軟體 輸入框有 使用者名稱和密碼 」???

你用vb 和「有乙個軟體」編輯乙個程式,如果你說的「有乙個軟體」是*.exe程式,是不能夠實現的。

如果「有乙個軟體」是vb程式**,那麼是可以的。

將你的程式**給我,我給你完成。

怎樣用vb呼叫外部程式?急!

19樓:匿名使用者

使用shell函式來呼叫外部的應用程式。

shell 函式

執行乙個可執行檔案,返回乙個 variant(double),如果成功的話,代表這個程式的任務 id,若不成功,則會返回 0。

shell 函式示例

本示例使用 shell 函式來完成乙個使用者指定的應用程式。

' 將第二個引數值設成 1,可讓該程式以正常大小的視窗完成,並且擁有焦點。

dim retval

retval = shell("c:\windows\system32\calc.exe", 1)   ' 完成calculator。

如何用vb程式設計使自己的程式視窗顯示在最頂層

private declare function setwindowpos lib user32 byval hwnd as long,byval hwndinsertafter as long,byval x as long,byval y as long,byval cx as long,byv...

如何用VB編文字加密器?50分,如何用VB編乙個文字加密器?50分

private sub command1 click k for i 1 to len text1 if m 90 and m 122 thenm asc mid text1,i,1 1else m m 25 end if k k chr m next i text2 k end sub const...

vb按鈕陣列如何呼叫,vb中如何讓乙個按鈕呼叫另乙個按鈕中的陣列?VB小菜,請高手指教。

以為打老鼠為例,示例如下 在form load事件中輸入下面的 for i 1 to 15 因為有16個名稱相同的控制項 command1 i visible false 此功能用於在窗體啟動時將所有的控制項隱藏。next i 介面的其它內容也可以在此設定,例如option1,label1等 然後通...