真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

vb.net打開其他程序,vb打開其他程序

VB.net如何調用外部程序不改變原來的路徑?

因為process.start(EXEA)是VB.net

為偃師等地區(qū)用戶提供了全套網頁設計制作服務,及偃師網站建設行業(yè)解決方案。主營業(yè)務為成都網站設計、網站制作、偃師網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

debug下這個exe打開的,所以如果EXEA里面用到了相對路徑,那必然是指向VB.net

debug下的,除非在EXEA中使用絕對路徑,如果EXEA你無法更改則只能用VB.net

debug下這個exe來控制了,比如EXEA如果要在他自己的目錄下去找一個文件,那你就用exe把這個文件復制到VB.net

debug下

VB.NET怎么調用其它模塊的過程?

調用過程,調用過程有諸多技巧,它們與過程的類型、位置以及在應用程序中的使用方式有關。下面說明如何調用 Sub 過程和 Function 過程。

調用 Sub 過程

與 Sub 過程不同,在表達式中,Sub 過程不能用其名字調用。調用 Sub 過程的是一個獨立的語句。Sub 過程還有一點與函數(shù)不一樣,它不會用名字返回一個值。但是,與 Function過程一樣,Sub 過程也可以修改傳遞給它們的任何變量的值。

調用 Sub 過程有兩種方法:

'以下兩個語句都調用了名為 MyProc 的 Sub 過程。

Call MyProc (FirstArgument, SecondArgument)

MyProc FirstArgument, SecondArgument

注意,當使用 Call 語法時,參數(shù)必須在括號內。若省略 Call 關鍵字,則也必須省略參數(shù)兩邊的括號

調用函數(shù)過程

通常,調用自行編寫的函數(shù)過程的方法和調用 Visual Basic 內部函數(shù)過程(例如 Abs)的方法一樣;即在表達式中寫上它的名字。

'下面的語句都調用函數(shù) ToDec。

Print 10 * ToDec

X = ToDec

If ToDec = 10 Then Debug.Print "Out of Range"

X = AnotherFunction ( 10 * ToDec)

就像調用 Sub 過程那樣,也能調用函數(shù)。下面的語句都調用同一個函數(shù):

Call Year (Now)

Year Now

當用這種方法調用函數(shù)時,Visual Basic 放棄返回值。

調用其它模塊中的過程

在工程中的任何地方都能調用其它模塊中的公用過程??赡苄枰付ㄟ@樣的模塊,它包含正在調用的過程。調用其它模塊中的過程的各種技巧,取決于該過程是在窗體模塊中、類模塊中還是標準模塊中。

窗體中的過程

所有窗體模塊的外部調用必須指向包含此過程的窗體模塊。如果在窗體模塊 Form1 包含 SomeSub 過程,則可使用下面的語句調用 Form1 中的過程:

Call Form1.SomeSub(arguments)

類模塊中的過程

與窗體中調用過程類似,在類模塊中調用過程要調用與過程一致并且指向類實例的變量。例如,DemoClass 是類 Class1 的實例:

Dim DemoClass as New Class1

DemoClass.SomeSub

但是不同于窗體的是,在引用一個類的實例時,不能用類名作限定符。必須首先聲明類的實例為對象變量(在這個例子中是 DemoClass )并用變量名引用它。

標準模塊中的過程

如果過程名是唯一的,則不必在調用時加模塊名。無論是在模塊內,還是在模塊外調用,結果總會引用這個唯一過程。如果過程僅出現(xiàn)在一個地方,這個過程就是唯一的。

如果兩個以上的模塊都包含同名的過程,那就有必要用模塊名來限定了。在同一模塊內調用一個公共過程就會運行該模塊內的過程。例如,對于 Module1 和 Module2 中名為 CommonName 的過程,從 Module2 中調用 CommonName 則運行 Module2 中的 CommonName 過程,而不是 Module1 中的 CommonName 過程。

從其它模塊調用公共過程名時必須指定那個模塊。例如,若在 Module1 中調用 Module2 中的 CommonName 過程,要用下面的語句:

Module2.CommonName (arguments)

Public ? 用于聲明對所有模塊中的所有其它過程都可以使用的過程。?

Private ?用于聲明只能在包含該聲明的模塊中使用的過程。

VB.NET,如何調用外部程序?

兩種方法

1.

Shell(""Explorer.exe", AppWinStyle.NormalFocus")

2.

Dim proc As New Process

proc.StartInfo.FileName="Explorer.exe"

proc.Start

方法2給予更多的控制,如結束進程的方法Kill

vb.net 調用其他文件 如 dll

DLL(動態(tài)鏈接庫)是一個很有用的東西,在開發(fā)大項目的時候顯得非常重要,因為多人合作開發(fā)時,可以給每個人分配一個任務,用DLL完成,最后組合起來,就不會出現(xiàn)互相沖突的問題。這里給出最簡單的DLL編寫與調用的示例

首先,我們打開VB.NET,選擇類庫,名稱改為test

然后輸入以下代碼

Public?Class?test

Public?Function?test(ByVal?a?As?Long,?ByVal?b?As?Long)?As?Long

Return?a?+?b

End?Function

End?Class

保存后,生成DLL文件。

這就是最簡單的一個DLL,下面是調用該DLL的示例

新建一個工程,單擊“項目” -- 添加引用

找到剛才生成的DLL,雙擊它

添加引用以后,似乎什么也沒發(fā)生,這時我們輸入以下代碼:

Imports test.test

這樣,就包含了該DLL的類。

然后我們定義一個類

Dim test As New test.test

這樣,就可以使用里面的函數(shù)了,下面是程序示例

Imports?test.test

Public?Class?Form1

Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load

Dim?test?As?New?test.test

MsgBox(test.test(1,?2))

End?Sub

End?Class

運行該程序,可以看到,調用了DLL內的函數(shù)。

這就是最簡單的DLL示例,可以將一些復雜的代碼集成到DLL里,以后升級或重用都比較方便。

求vb.net句柄實例,實現(xiàn)操作其他程序窗口。如我給的例子

Imports?System.Text

Imports?System.Runtime.InteropServices

Public?Class?Form1

'?相關API函數(shù)聲明,注釋掉的這里沒用到,但是也比較常用吧,這些函數(shù)的功能都能搜到。

Private?Declare?Function?FindWindow?Lib?"user32"?Alias?"FindWindowA"?(ByVal?lpClassName?As?String,?ByVal?lpWindowName?As?String)?As?IntPtr

Private?Declare?Function?FindWindowEx?Lib?"user32"?Alias?"FindWindowExA"?(ByVal?hWnd1?As?IntPtr,?ByVal?hWnd2?As?IntPtr,?ByVal?lpsz1?As?String,?ByVal?lpsz2?As?String)?As?IntPtr

Private?Delegate?Function?EnumChildProc(ByVal?hWnd?As?IntPtr,?ByVal?lParam?As?Integer)?As?Boolean

Private?Declare?Function?EnumChildWindows?Lib?"user32.dll"?(ByVal?hWndParent?As?IntPtr,?ByVal?lpEnumFunc?As?EnumChildProc,?ByVal?lParam?As?Integer)?As?Boolean

Private?Declare?Auto?Function?SendMessage?Lib?"User32.dll"?(ByVal?hWnd?As?IntPtr,?ByVal?Msg?As?Integer,?ByVal?wParam?As?Integer,?ByVal?lParam?As?String)?As?Integer

'Private?Declare?Function?CheckDlgButton?Lib?"user32"?Alias?"CheckDLGButtonA"?(ByVal?hDlg?As?IntPtr,?ByVal?nIDButton?As?IntPtr,?ByVal?wCheck?As?Integer)?As?Integer

Private?Declare?Function?GetClassName?Lib?"user32"?Alias?"GetClassNameA"?(ByVal?hWnd?As?IntPtr,?ByVal?lpClassName?As?StringBuilder,?ByVal?nMaxCount?As?Integer)?As?Integer

'Private?Declare?Function?GetWindowThreadProcessId?Lib?"user32"?Alias?"GetWindowThreadProcessId"?(ByVal?hwnd?As?IntPtr,?ByVal?lpdwProcessId?As?Long)?As?Integer

Private?Declare?Auto?Function?GetWindowTextLength?Lib?"user32"?Alias?"GetWindowTextLength"?(ByVal?hwnd?As?IntPtr)?As?Integer

Private?Declare?Function?GetWindowText?Lib?"user32"?Alias?"GetWindowTextA"?(ByVal?hwnd?As?IntPtr,?ByVal?lpString?As?StringBuilder,?ByVal?cch?As?Integer)?As?Integer

'?相關消息定義,也有沒用到的

Const?WM_SETTEXT?=?HC

Const?WM_GETTEXT?=?HD

'Const?WM_SETFOCUS?=?H7

'Const?WM_KILLFOCUS?=?H8

'Const?WM_CLOSE?=?H10

'Const?WM_SYSCOMMAND?=?H112

'Const?SC_CLOSE?=?HF060

'Const?SC_MINIMIZE?=?HF020

Const?BM_GETCHECK?=?HF0

Const?BM_SETCHECK?=?HF1

Const?BM_GETSTATE?=?HF2

Const?BM_SETSTATE?=?HF3

Const?BM_SETSTYLE?=?HF4

Const?BM_CLICK?=?HF5

'Const?BM_GETIMAGE?=?HF6

'Const?BM_SETIMAGE?=?HF7

Const?BST_UNCHECKED?=?O0

Const?BST_CHECKED?=?O1

Const?BST_INDETERMINATE?=?O2

'?儲存窗口句柄

Dim?WindowHandle?As?IntPtr

'?儲存兩個(或者多個)編輯框句柄

Dim?EditHandle?As?New?List(Of?IntPtr)

Dim?EditWindowsText?As?List(Of?String)

'?儲存復選框句柄

Dim?CheckHandle?As?IntPtr?=?0

Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load

Button1_Click(sender,?e)

End?Sub

'?EnumChildWindows?回調函數(shù),該函數(shù)名作為API函數(shù)EnumChildWindows?的一個參數(shù)

'?該函數(shù)實現(xiàn)了枚舉各個子窗口,找出編輯框屬性的功能

Public?Function?EnumChildProcC(ByVal?hwnd?As?IntPtr,?ByVal?lParam?As?Integer)?As?Boolean

Dim?dwWindowClass?As?StringBuilder?=?New?StringBuilder(100)

'?獲得某一個句柄的類名

GetClassName(hwnd,?dwWindowClass,?100)

If?dwWindowClass.ToString.Contains("EDIT")?Or?dwWindowClass.ToString.Contains("Edit")?Then?????'?類名包含EDIT的為編輯框

EditHandle.Add(hwnd)????????????????????????'?存儲該句柄

End?If

'?返回?True?一直枚舉完

Return?True

End?Function

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click

WindowHandle?=?FindWindow(vbNullString,?"登陸")

If?WindowHandle.ToInt32?=?0?Then

MsgBox("未捕獲到窗口"?+?"登陸")

Return

End?If

'?枚舉所有主窗口的子窗口(控件),枚舉時自動調用回調函數(shù),完成編輯框句柄的獲取

EnumChildWindows(WindowHandle,?AddressOf?EnumChildProcC,?0)

'?尋找復選框

CheckHandle?=?FindWindowEx(WindowHandle,?IntPtr.Zero,?vbNullString,?"記住密碼")

Dim?str?As?New?StringBuilder

Dim?j?As?Integer?=?0

'?對編輯框文本賦值

For?j?=?0?To?EditHandle.Count?-?1

SendMessage(EditHandle(j),?WM_SETTEXT,?0,?"Text")

'GetWindowText(EditHandle(j),?str,?20)

'EditWindowsText.Add(Str.ToString)

'Str.Clear()

Next

If?EditHandle.Count?=?0?Then

MsgBox("未找到輸入框!")

End?If????????

If?CheckHandle.ToInt32??0?Then

'CheckDlgButton(WindowHandle,?id,?1)

'?對復選框進行鼠標單擊操作

SendMessage(CheckHandle,?BM_CLICK,?0,?0)

'SendMessage(CheckHandle,?BM_SETCHECK,?True,?0)

End?If

End?Sub

End?Class


網站欄目:vb.net打開其他程序,vb打開其他程序
文章地址:http://weahome.cn/article/hooese.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部