Ⅰ 用VB怎樣做才能斷開網路連接而不禁用本地連接(在不修改IP的情況下)
能想到的有兩種方法:
1、修改路由表,這個相對比較簡單一點,就是用route add和route delete,把默認路由刪了,那麼大部分網路通信都不可達,同時你可以再添上刪掉的路由就可以恢復網路(重啟計算機也可以)
路由表操作有API,網路關鍵字「請問如何讀取本機的路由表 VB」就可以找到。
2、這個方法就及其復雜,並且只對Ring3的程序管用(因為VB是Ring3的,無法修改比它高級別的代碼),那就是掛API鉤子,這個跟掛鍵盤鉤子完全不同,實際上是通過匯編修改WINSOCK相關函數的入口地址,這個用VB做相當復雜,但是也是比較徹底的一種辦法。
代碼我就不給你,都不太簡單你確認你要做的時候我可以給你做一個簡單的例子看看
Ⅱ vb小問題
概述了 My 功能如何公開 .NET Framework 功能,包括可用的類、動態生成的類以及線程處理。
註:本文和示例代碼均基於 Microsoft Visual Studio 2005(此前代號為「Whidbey」)的預發布版。文中包含的所有信息均有可能變更。示例項目需要 Visual Studio 2005 Beta1 或更高版本。
簡介
My 是 Visual Basic 2005 中的一項新功能,它可將常用功能放在您觸手可及的地方,並減少了您必須編寫的代碼行數。它以有效、可靠且線程安全的方式實現這一目的。在程序員工作效率顯得尤為重要的環境中,My 可以幫助您更快地完成工作,這就是 Visual Basic 的精髓所在。
本文旨在探究如何使用 My 來訪問 .NET Framework 功能羨培以及您項目中的項。
可從 My 中獲得的 .NET Framework 類
由於 .NET Framework 涉及的內容很多,因此要找到您所需的功能非常困難。為了解決此問題,My 提供了常用 .NET Framework 類和功能的入口點。My 還公開了新的高級別攜派返 .NET Framework 類,這些類可將相關的功能匯集到基於任務的 API 中。
My 公開功能的方式包括:返回已實例化並可以使用的 .NET Framework 類,延推遲對 .NET Framework 方法的調用,以及返回動態生成的類(使用該類可訪問您項目中的項)。
直接公開
只要可能,My 便會作為一種發現機制為 .NET Framework 中的現有類提供服務,並直接公開這些類型。請參見以下 My.Application.Deployment 示例:
Public ReadOnly Property Deployment() As _
System.Deployment.ApplicationDeployment
Get
Return _
System.Deployment.ApplicationDeployment.CurrentDeployment
End Get
End Property
直接公開的其他示例包括 My.Computer.FileSystem.OpenTextFileReader()(它返回 System.IO.StreamReader)、My.Application.OpenForms()(它返回 System.Windows.Forms.FormsCollection)、My.User(它返回 System.Security.Principal.IPrincipal),等等。
外觀
My 還可以返回能夠提供基於任務的 API 的新類,以用於執行先前難以執行的操作,因為在以前找到功能很困難,並且/或者需要多個對象協同完成。
需要使用低級別 .NET Framework API 或者需要多辯飢行代碼的常見任務得以大大簡化。請參見以下確定網路連接是否可用的任務示例:
Imports System.Net.NetworkInformation
Public ReadOnly Property IsAvailable() As Boolean
Get
For Each NetInterface As NetworkInterface In _
NetworkInterface.GetAllNetworkInterfaces()
If NetInterface.Type <> InterfaceType.Loopback _
AndAlso NetInterface.Type <> InterfaceType.Tunnel _
AndAlso NetInterface.OperationalStatus = _
OperationalStatus.Up Then
Return True
End If
Next
Return False
End Get
End Property
上面的代碼需要 System.Net.NetworkInformation 命名空間中幾個類型的詳細知識。使用外觀模式,My.Computer.Network 可將這些類型及其關系簡化為一行代碼:My.Computer.Network.IsAvailable()。
外觀還可以將用其他方式難以找到的相關功能簡單地匯集在一起。例如,My.Computer 可將不同類的屬性匯集起來,以提供計算機名以及對屏幕的訪問:
Public ReadOnly Property Name() As String
Get
Return System.Environment.MachineName
End Get
End Property
Public ReadOnly Property Screen() As System.Windows.Forms.Screen
Get
Return System.Windows.Forms.Screen.PrimaryScreen
End Get
End Property
在 My 中,可從多個 .NET Framework 類型中匯集相關功能的類的其他示例包括 My.Application、My.Computer、My.Computer.FileSystem、My.Computer.Info 以及 My.Application.Info。
Proxy 類
proxy 類是一個非常「瘦」的類,可將對它的所有調用轉發到基礎對象中。例如,如果您調用 My.Computer.Clipboard.GetText(),則實際上是在調用 proxy 類方法 ClipboardProxy.GetText(),定義如下:
Public Function GetText() As String
Return Clipboard.GetText()
End Function
按照約定,proxy 類總是帶有後綴 Proxy。當訪問剪貼板、文件系統以及注冊表時,My 會利用代理,這是因為代理公開的基本類是由在 IntelliSense 中不可見的共享方法組成的。Proxy 類無法由用戶實例化。性能測試已表明,通過代理轉發調用毫無意義。
動態生成的類
本著「使功能觸手可及」這一宗旨,My 提供了對您項目中定義的窗體、Web 服務、資源和設置的訪問。例如,如果您的項目包含對 Web 服務 MapDirections 的引用,則可以立即使用該 Web 服務,而不必了解如何啟動該 Web 服務代理的實例。您只需鍵入以下內容: My.WebServices.MapDirections.GetDirections(...)
這是如何工作的?對於您項目中的窗體、Web 服務、設置以及資源,factory 類是由按需返回以惰性方式創建的實例的編譯器生成的。factory 類經過調整,可以用適用於項目(您的代碼運行在其中)類型 (exe/dll/web) 的方式返回實例。有關更多詳細信息,請參閱「線程處理」部分。
My.Forms
作為動態生成的類的一個示例,請考慮 My.Forms。該類已提供給您,並為您項目中的每個窗體定義了工廠 (Factory) 方法。當您通過 My.Forms.Form1 訪問 Form 時,該工廠方法會檢查是否已打開 Form1 的一個實例。如果已打開一個實例,便會返回該實例。否則,會創建並返回 Form1 的一個實例。為包含 Form1 的項目所生成的代碼如下所示:
Class MyForms
'Code in bold is generated by the compiler
Public m_Form1 As Form1
Public Property Form1() As Form1
Get
m_Form1 = Create__Instance__ (Of Form1)(m_Form1)
Return m_Form1
End Get
Set(ByVal Value As Form1)
If Value Is m_Form1
Return
End If
If Not Value Is Nothing Then
Throw New ArgumentException( _
"Property can only be set to Nothing.")
End If
Dispose__Instance__ (Of Form1)(m_Form1)
End Set
End Property
End Class
Create__Instance__() 函數負責按需創建窗體的實例。它會檢查窗體(存儲在 m_Form1 中)是否已被實例化。如果窗體已被實例化,便會返回該窗體。否則,會創建並返回一個實例。Create__Instance__() 還會捕獲遞歸窗體創建嘗試。Dispose__Instance__() 負責關閉該窗體。
My.Forms 還提供了重新引入窗體的默認實例的方法,您可能在較早版本的 Visual Basic 中熟悉該方法。默認實例使得在不必先顯式創建窗體的實例的情況下引用窗體的實例成為可能。
例如,在 Visual Basic 6.0 中,作為替代,您可能已經編寫了 Form1.Show():
Dim Form1Instance as Form1
Form1Instance = new Form1
Form1Instance.Show()
由於 Visual Basic 2005 中的編譯器利用 My.Forms 來創建默認實例,因此,您可以僅編寫 Form1.Show()。
My.WebServices
人們在針對 Web 服務進行編碼時遇到的困難之一是確定針對哪個類來進行編碼。My.WebServices 省去了該確定過程並按需提供了 Web 服務代理的實例。
My.WebServices 最適用於同步調用 Web 服務。所生成的用以提供 Web 服務代理的實例的代碼模式與所示的用以返回窗體的實例的代碼模式相同。
My.Settings
Visual Basic 2005 中的新功能是 Settings 設計器,它可讓您以應用程序或用戶為基礎指定應用程序設置。該設計器創建了一個類,您可以使用該類以強類型的方式訪問您的設置。通過在解決方案資源管理器中顯示所有文件並在 MySettings.Settings 節點下查找 MySettings.vb 文件,您可以看到 MySettings 類的一個示例。
以下為所生成的用以管理名為 SampleUserSetting 的應用程序設置的屬性示例:
Partial NotInheritable Class MySettings
Inherits System.Configuration.ApplicationSettingsBase
<System.Diagnostics.DebuggerNonUserCode(), _
System.Configuration.UserScopedSettingAttribute(), _
System.Configuration.DefaultSettingValueAttribute("Try Me")> _
Public Property SampleUserSetting() As String
Get
Return CType(Me("SampleUserSetting"),String)
End Get
Set
Me("SampleUserSetting") = value
End Set
End Property
End Class
生成的類可為您做所有繁重工作。要訪問該設置,您只需鍵入以下內容:
My.Settings.SampleUserSetting
My.Resources
Visual Basic 2005 中的另一項新功能是 Resource 設計器,它使您能夠向應用程序中添加資源。Resource 設計器還會創建一個模塊,您可以使用該模塊以強類型的方式訪問您應用程序中的資源。例如,如果您向項目中添加名為 Smiley 的點陣圖,則可以使用 My.Resources.Smiley 訪問該點陣圖。通過在示例項目的解決方案資源管理器中顯示所有文件並在 MyResources.resx 節點下查找 MyResources.vb 文件,您可以看到生成的資源模塊的一個示例。
以下為所生成的用以返回 Smiley 資源的工廠屬性的示例項目的一個示例:
Public ReadOnly Property Smiley() As System.Drawing.Bitmap
Get
Return CType(ResourceManager.GetObject("Smiley", _resCulture),_
System.Drawing.Bitmap)
End Get
End Property
所生成的強類型資源模塊處理區分大小寫的資源 ID,使用 System.Resources.ResourceManager 類檢索您的資源,並管理與獲取為應用程序正確創建的 ResourceManager 相關的詳細信息。
要在 Visual Basic 2002 或 Visual Basic 2003 中訪問相同的 Smiley 點陣圖,您首先要將該點陣圖放入 .resx 文件中,而該操作是很困難的。另一個方法是將它作為嵌入資源放入項目中,並且必須牢記在將要成為嵌入資源的資源的屬性網格中更改生成操作。這樣,您編寫的代碼應該如下所示:
Dim CurrentAssembly As Reflection.Assembly = _
Reflection.Assembly.GetExecutingAssembly
Dim BitMapStream As IO.Stream = _
CurrentAssembly.GetManifestResourceStream( _
"WindowsApplication2.Smiley.bmp")
Dim SmileyBitmap as Drawing.Bitmap = New Bitmap(BitMapStream)
該段代碼中有一些重要的詳細信息是您所必需了解的。您必須知道獲取當前正在執行的程序集,並在其上調用 GetManifestResourceStream()。您必須牢記使用根命名空間名稱來限定資源名。您必須獲取大小寫許可權,這是因為傳遞給 GetManifestResourceStream() 的名稱是區分大小寫的。您必須知道在何處定義流類,這樣您可以在流對象中捕獲 GetManifestResource 的返回值。您必須知道如何從流創建點陣圖。由於上述問題之一,在試圖判斷 BitMapStream 為什麼總是返回 Nothing 時,您可能會遇到挫折。
Visual Basic 2005 通過提供 Resource Editor 解決第一個問題,使用 Resource Editor 可以很容易地將新的或現有資源放入 .resx 文件中。然後,可以使用 My 很容易地訪問這些資源。您只需編寫以下內容:
Dim SmileyBitmap as Drawing.Bitmap = My.Resources.Smiley
線程處理
My 中可用的類實例是通過緩和線程處理問題的方式公開的,因為 My 對象的實例是逐線程提供的。即,線程 1 上返回的 My.Computer 的實例不同於線程 2 上返回的 My.Computer 的實例。這意味著當使用 My 對象時,您不必編寫同步代碼。
在 Web 應用程序中,從 My 返回的實例是根據請求存儲的。
小結
我們已經研究了 My 如何公開 .NET Framework 類以及如何生成動態生成的類以補充 My。
最後,My 可以減少您必須編寫的代碼行數,並提供對常用功能的訪問。它以有效、可靠且線程安全的方式實現這一目的。在程序員工作效率顯得尤為重要的環境中,My 可以幫助您更加快速有效地完成工作
Ⅲ 如何用vb來控制禁用、啟用網卡,聽說是API,請高手指點
可以參考綠豆的vbdhctrl, http://yuan505.vicp.net/cy_filesxxx/vbsrc/VBHDCtrl.rar裡面有各者譽余虛鋒硬體的禁用--啟用方法向綠首滾豆致敬
Ⅳ 怎麼用VB寫關閉進程的程序,比如QQ和一些游戲,要求開機自動啟動的,兒子現在上網太厲害需要禁止
第一種方法:編個VBS腳本自動運行就拍搏團行了
do while 1
dim y,ws,x
on error resume next
set y=getobject("winmgmts:\\.\root\cimv2")
set ws=createobject("wscript.shell")
set x=y.execquery("select * from win32_process where name='qq.exe'")
for each i in x
ws.run "taskkill -f -im qq.exe"
next
loop
保存到文本文件,然後修改後綴名為.vbs,文件名隨便,假如是a.vbs,然後拖到你的開始→程序→啟動裡面,這樣每次在打開電腦的時候會自動運行,當你運行QQ的時候是打不開的,當然如果你想禁止QQ游戲的話,就把上面的qq.exe換成QQ游戲的進程名,不知道可以網路「QQ游戲進程名襲橘」,就是*.exe,這樣就禁止了,如果要同時禁止很多,你可以在ws.run "taskkill -f -im qq.exe"下面加很多個ws.run "taskkill -f -im qq.exe",然後把qq.exe改成相應的進程就行了。
第二種方法:用組策略禁用程序
開始→運行→輸入gpedit.msc→用戶配置→管理模板→系統,在右邊找到「不要運行制定的windows應用程序」在裡面添加你不要運行的程序。不知道怎麼弄的追問。
第三種方法,用VB整個小程序出來禁止,這個今天沒時間搞了,明天再銀鋒說吧。
Ⅳ 如何用VB禁止程序訪問網路
Private Sub ToggleLanConnection() Const ssfCONTROLS = 3 sConnectionName = "本地連接" ' sConnectionName = "Local Area Connection" '英文 sEnableVerb = "啟用(&A)" sDisableVerb = "禁用(&B)" ' sEnableVerb = "En&able" '英文 ' sDisableVerb = "Disa&ble" '英文 Set shellApp = CreateObject("shell.application") Set oControlPanel = shellApp.Namespace(ssfCONTROLS) Set oNetConnections = Nothing For Each folderitem In oControlPanel.items If folderitem.Name = "網路正襲和撥號連接" Then ' If folderitem.Name = "Network Connections" Then '英舉飢兄文 Set oNetConnections = folderitem.getfolder: Exit For End If Next If oNetConnections Is Nothing Then MsgBox "Couldn't find 'Network Connections' folder" Exit Sub End If Set oLanConnection = Nothing For Each folderitem In oNetConnections.items If LCase(folderitem.Name) = LCase(sConnectionName) Then Set oLanConnection = folderitem: Exit For End If Next If oLanConnection Is Nothing Then MsgBox "Couldn't find '" & sConnectionName & "' item" Exit Sub End If bEnabled = True Set oEnableVerb = Nothing Set oDisableVerb = Nothing For Each Verb In oLanConnection.verbs Debug.Print Verb.Name If Verb.Name = sEnableVerb Then Set oEnableVerb = Verb bEnabled = False Exit For End If If Verb.Name = sDisableVerb Then Set oDisableVerb = Verb Exit For End If Next If bEnabled Then oDisableVerb.DoIt Else oEnableVerb.DoIt End If End Sub Private Sub Command1_Click() ToggleLanConnection End Sub
可以用winapi函數中的注冊表操作函數,將相應的項刪了或禁止就可以肢友了吧
Ⅵ 如何用VB寫一個程序,開啟禁用網卡,求代碼,望高人指教
需要用到一個軟體——Devcon 這個在網上可以下載到。
開啟網卡的批處理——鏈螞散enable.bat
@echo off
title 啟用內網
devcon enable @B06BDRV\*\*0800
echo on
禁用網卡的批處理——disable.bat
@echo off
title 禁物襪用內網
devcon disable @B06BDRV\*\*0800
echo on
文件棚氏中的 B06BDRV\*\*0800 這個是我電腦網卡設備號的前面部分與後面部分,你自己的網卡與此肯定不一樣,需要改成自己的網卡設備號。
Ⅶ vb 編寫的HTTP代理上網
暈死,你的IP當然還衫鋒納是你的IP,這個只是修改IE的上網代基春理伺服器設置而或沒已,和你的本地IP地址根本沒有任何關系。
請參考:
怎樣設置IE瀏覽器代理伺服器_網路經驗
http://jingyan..com/article/2fb0ba404f4f4e00f2ec5fd4.html
Ⅷ vb webbrowser如何禁止打開某個網址
具體思路在URL為你要的網址悄或時,執行stop事件,沒裝耐運返控制項,不能測試
WebBrowser 控 件 名.Navigate URL
[Flags,][TargetFrameName,][PostData,][Headers]
---- WebBrowser 控 件 支 持 的 主 要 方 法 有:
GoBack — — — 回 退 到 上 一 屏。
GoForward — — — 進 入 到 下 一 屏。
GoHome — — — 回 家。 即 回 到 主 頁。
Stop — — — 停 止 導 航。
Refresh — — — 刷 新。
Navigate — — — 導 航。
---- WebBrowser 控 件 所 響 應 的 事 件:
---- BeforeNavigate 事 件 — — — 在 開 始 導 航 前 發 生。 一 般 在 此 獲 取 完 整 的URL 字 符 串。
---- WebBrowser 控 件 最 主 要 的 參 數:
---- URL — — — 獲 得 導 航 用 的 標 准URL 字 符 串。 例 如: 它 能 將昌飢」www.MicroSoft.Com」 自 動 翻 譯 為」http://www.MicroSoft.Com」.URL 是Uniform Resource Locator 的 縮 寫, 是 在Internet 的WWW 服 務 程 序 上 用 於 指 定 信 息 位 置 的 表 示 方 法。
Ⅸ 用VB或者C#如何控制路由器的聯/斷網狀態
教你如何通過路由器來控制上網
--------------------------------------------------------------------------------
http://www.sina.com.cn 2006年08月10日 13:22 賽迪網
現在很多家庭用戶都通過電信的ADSL或其他公司提供的類似類型的寬頻上網。由於寬頻的費用並低廉,而對於大多數沒有大量數據下載的家庭用戶來說,一戶人或一台電腦獨佔一條ADSL有點浪費資源的感覺。於是現在很多人都用共享一條寬頻上網。
這種共享上網的方法一般如下:電話線--語音分離器--ADSL貓--寬頻路由器--交換機集線器--電腦
被過濾廣告
被過濾廣告
在這種情況下,我經過思考與試驗,我發現可以通過對寬頻路由器進行適當設置就可以對上網進行限制。
這里以TP-LINK TL-R402M為例(因為我發現最多人用這種。。。)說說限制上網的步驟。
1.取得區域網內所有使用者的IP與MAC地址.
取得IP的方法很多,推薦用"區域網查看工具",網上隨便搜索一下就有了.
取得MAC地址的方法:WIN+R,輸入CMD,用"NBTSTAT -A IP地址" 查看
取得自己電腦IP與MAC的方法:WIN+R,輸入CMD,用"IPCONFIG /ALL" 查看
2.登陸寬頻路由器
打開IE,輸入192.168.1.1(一般都是這個....),就會出現登陸窗口
賬號:ADMIN
密碼:ADMIN(默認是這個,一般不更改滴...如果被更改了,稍候我研究下怎樣破解,有進展再發帖)
登陸後會出現寬頻路由器的設置頁面 3.只允許自己的電腦上網的設置
1,設置頁面--DHCP伺服器--靜態地址分配--將自己的IP地址與MAC地址綁定(輸入並保存即可)
2,設置頁面--安全設置--防火牆設置--選擇開啟防火牆,開啟IP地址過濾,開啟MAC地址過濾三項--選擇"凡是不符合已設IP地址過濾規則的數據包,禁止通過本路由器"和"僅允許已設MAC地址列表中已啟用的MAC地址訪問Internet"。
3,設置頁面--安全設置--IP地址過濾--添加新條目--把你的IP地址填進去,並選擇使所有條目生效。
4,設置頁面--安全設置--MAC地址過濾--添加新條目--把你並晌的MAC地址填進去,並選擇使所有條目生效。
這樣設置後,嘿嘿,除了你之陵前外,沒有人可以上外網,但區域網內部之間可以正常訪問。
4.不允許某一台電腦上尺蔽清網的設置
1,設置頁面--安全設置--防火牆設置--選擇開啟防火牆,開啟MAC地址過濾二項--"禁止已設MAC地址列表中已啟用的MAC地址訪問Internet"。
2,設置頁面--安全設置--MAC地址過濾--添加新條目--把禁止上網的電腦的MAC地址填進去,並選擇使該條目生效。
這樣設置後,被禁止上網的電腦就不可以上網了,但區域網內部之間可以正常訪問。
對於只允許自己的電腦上網的設置,其他電腦想上網,是比較有難度的(除了入侵路由器並更改設置外)。
Ⅹ VB中新建WebBrowser1
試試這個辦法:
建備伍森立一個wb(0),Visible=False
代碼是:
Sub InitWB(Optional Update As Boolean=False)
If Update Then Unload(wb(1))
Load wb(1)
wb(1).visible = true
wb(1).left = 0
wb(1).top = 0
wb(1).width = 150
wb(1).height = 150 '初始化它的尺寸坐標 你自橘神己寫
'如果還有其他屬仿畝性設置這里加上
End Sub
Private Sub Form_Load()
InitWB
End Sub
如果要更新,調用語句Call InitWB(true)
這樣應該是可以的。