vb.net禁止面板代码 vba禁止弹出对话框

vb 启用和禁用本地连接代码...

这个简单啦看代码吧不会加Q问 VB启用/禁用本地连接

在邵原等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都网站制作 网站设计制作按需网站建设,公司网站建设,企业网站建设,高端网站设计,网络营销推广,成都外贸网站建设公司,邵原网站建设费用合理。

2009年01月19日 作者:SdBot.ck

'其实没什么说的,无非就是先找到“网络连接”这个虚拟文件夹,然后找到要控制的本地连接对应的'folderitem,然后枚举verb,找到需要的verb后,调用verb的DoIt方法,在winxp sp2 ,vb6 sp6下测试通过,代码如下:

Option Explicit

'首先引用Microsoft Shell Controls And Automation

Private Function ExcNetLinkMenu(ByVal AdapterName As String, ByVal MenuName As String) As Boolean

On Error Resume Next

Dim mShell As New Shell32.Shell

Dim NetConnection As Shell32.Folder

Dim FolderItem As Shell32.FolderItem

Dim NetConnectionItem As ShellFolderItem

Dim verb As Shell32.FolderItemVerb

Set NetConnection = mShell.NameSpace(49) '这个49是找出来的,有了它就可以避免遍历控制面板

If ObjPtr(NetConnection) = 0 Then

ExcNetLinkMenu = False

GoTo exitfunction

End If

Dim flag As Boolean

flag = False

For Each FolderItem In NetConnection.Items

If FolderItem.Name = AdapterName Then

Set NetConnectionItem = FolderItem

flag = True

Exit For

End If

Next

If flag = False Then

ExcNetLinkMenu = False

GoTo exitfunction

End If

For Each verb In NetConnectionItem.Verbs

If verb.Name = MenuName Then

flag = True

verb.DoIt

ExcNetLinkMenu = True

GoTo exitfunction

End If

Next

If flag = False Then

ExcNetLinkMenu = False

GoTo exitfunction

End If

exitfunction:

Set mShell = Nothing

Set NetConnection = Nothing

Set FolderItem = Nothing

Set NetConnectionItem = Nothing

Set verb = Nothing

End Function

Private Sub Command1_Click()

Dim flag As Boolean

'把 本地连接 2 换成你要控制的本地连接的名字

flag = ExcNetLinkMenu("本地连接 2", "停用(B)") '这个在2000下对应的是禁用,具体是什么,点右键,自己看吧

End Sub

Private Sub Command2_Click()

'把 本地连接 2 换成你要控制的本地连接的名字

Dim flag As Boolean

flag = ExcNetLinkMenu("本地连接 2", "启用(A)")

End Sub

VB.NET中关闭窗体代码,有的写me.close,有的只写end。请问,这两种代码,有何区别

me.close是关闭自身窗体,如果同时打开多个窗体,用me.close不能退出程序。

end是一个强大的退出指令,可以关闭所有窗体,并释放所有已占用的资源(当然有一些限制。所以自己主动释放是最好的)。

VB.NET怎么可以限制窗体不能被鼠标随便拖动位置

很简单,通过WindowsAPI,删除窗体菜单项就行了

首先在窗体类中声明API:

Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr

Declare Function RemoveMenu Lib "user32" (ByVal lngHmenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer

其次声明API参数常量:

Const MF_BYPOSITION As Integer = H400

然后在窗体类中写入过程:

Private Sub UserForm_Initialize_stopmove() '禁止窗体移动

  Dim lngHwnd As IntPtr

  Dim lngHmenu As IntPtr

  lngHwnd = Me.Handle

  If lngHwnd 0 Then

      lngHmenu = GetSystemMenu(lngHwnd, False)

      RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0代表菜单中从上往下数第一个菜单项

  End If

End Sub

Private Sub UserForm_Initialize_onmove() '恢复窗体移动

  Dim lngHwnd As IntPtr

  Dim lngHmenu As IntPtr

  lngHwnd = Me.Handle

  If lngHwnd 0 Then

      lngHmenu = GetSystemMenu(lngHwnd, True)

RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0与禁止代码中的数值同步,原因时虽然表面上删除了菜单项,实则为隐藏了菜单项,各个菜单的索引值并没有变,所以0依然代表初始菜单的第一个菜单项,即被删除的那个菜单项

  End If

End Sub

然后如果你的窗口菜单是动态变化的,建议声明常数:

Const MF_BYPOSITION As Integer = H0

然后使用相关的Windows功能的常数进行删除菜单。常数需要自行查看winuser.h头文件

如果找不到该头文件,可以看这里:网页链接

其余信息详见MSDN:网页链接

最后说一下,不建议前面网友说的重写WndProc的方法,因为这样拦截标题栏点击消息会导致窗体本身的菜单也无法显示出来,有损窗体功能,并且像双击左上角图标关闭窗体这样的功能也会跟着拦截消息的操作一起被吞掉。

vb.net关闭指定windowsname的页面

使用VB.NET关闭指定WindowsName的页面可以通过使用System.Diagnostics.Process类的Kill方法来完成。

Kill方法接受一个参数,即要关闭的进程的窗口名称,该窗口名称可以通过Process.GetProcessesByName函数获得,这样就可以遍历找到任何一个指定的窗口名称并将其关闭。例如:

Dim process As Process = Process.GetProcessesByName(“MyApplication.exe”)

process.Kill()


当前文章:vb.net禁止面板代码 vba禁止弹出对话框
分享URL:http://cdiso.cn/article/doshgjd.html

其他资讯