vb6或者vb.net调用C++的Dll动态链接库,都需要进行二次封装,这是没办法的,打开.H包含文件,所需要的结构体和函数都需要定义,类似于vb调用API函数,下面举个例子:
成都创新互联从2013年成立,先为盂县等服务建站,盂县等地企业,进行企业商务咨询服务。为盂县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
System.Runtime.InteropServices.DllImport ( "Shell32.dll" ) _
Public Function _
ExtractIcon ( ByVal src As System.IntPtr , ByVal strFileName As String , ByVal uiIconIndex As UInt32 ) As System.IntPtr
End Function
'声明ExtractIcon函数
这样在程序中可以调用它了:
Dim hIcon As System.IntPtr = ExtractIcon ( IntPtr.Zero , sfName , 0 )
实现方法如下:
1.引用命名空间
using System.Runtime.InteropServices;
2.声明如下变量:
public class Form1 : System.Windows.Forms.Form
{
//.....
[DllImport("user32.dll",EntryPoint="GetSystemMenu")]
extern static IntPtr GetSystemMenu(IntPtr hWnd, IntPtr bRevert);
[DllImport("user32.dll",EntryPoint="RemoveMenu")]
extern static int RemoveMenu(IntPtr hMenu, int nPos, int flags);
//.....
}
3.在Form的构造函数里加入代码
public Form1()
{
const int MF_BYPOSITION = 0x0400;
const int MF_REMOVE = 0x1000;
FormBorderStyle = FormBorderStyle.FixedSingle;
MaximizeBox = false;
MinimizeBox = false;
RemoveMenu(GetSystemMenu(Handle,IntPtr.Zero),1,MF_BYPOSITION |MF_REMOVE);
}
就OK啦
锁住屏幕的思路:
1.创建一个透明度为1的窗体(透明度0的话会让窗体消失),覆盖屏幕,并用Timer不断置顶(防止如任务管理器之类的置顶窗口在这个之上)
2.锁住键盘~~就是屏蔽键盘 这个你搜索一下就可以了 网上都有
3.锁住鼠标:可以理解为 隐藏鼠标 反正窗体上面什么都没有 不隐藏也可以:)
4.Open Environ$("WinDir") "\system32\taskmgr.exe" For Binary As #1
,用于锁定任务管理器……(不能屏蔽Ctrl+Alt+Delete所以只能这么干了)这样任务管理器开不了了(除非已经打开)
一般来说这样就可以了……
当然建议留一个后路否则只能重启啦……
你的问题很模糊
1,你要实现的是label.text的text值不变还是什么意思?
如果是怕程序运行的时候可能出现程序修改text值问题,你可以加一个判断,或者用一个timer定时确认text是否被修改过了
Public Class Form1
Private Sub Timer1_Tick()
‘判断label的text值是否改变了
If Label1.Text = "label的text值" Then
Else
Label1.Text = "label的text值"
End If
End Sub
Private Sub Form1_Load()
Label1.Text = "label的text值"’给Label1.Text赋新值
Timer1.Interval = "你定义的时间"
Timer1.Start()
End Sub
End Class
当然,其实这个是没有这样复杂的,
Label1的TextChanged事件就可以处理
呵呵,你自己根据需要选用吧!
VisualStudio 2010中的vb.net
锁定边框:
代码输入Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed3D
或者在属性列表里设置FormBorderStyle 为Fixed3D
最大化不可用:
代码输入Me.MaximizeBox = False
或者在属性列表里设置MaximizeBox 为 False