导航:首页 > 软件知识 > vb如何禁止其他程序

vb如何禁止其他程序

发布时间:2022-11-04 04:46:01

⑴ VB 中语言怎么屏蔽掉一段程序

除了英文的'没有其他特殊的符号,不过不用一个个添加英文的',你可以这样:

选中你要注释的多行文本》在代码模式下,右击工具栏,在弹出菜单里把“编辑”项选中(如果已经选中就不必选了)》点一下编辑工具栏里有几条横线的那个图标即可注释一段或几行。如图所示:在1处点击鼠标右键》选择编辑;在编辑工具栏中点击2处的“设置注释块”。

⑵ VB这段代码怎么屏蔽其它程序

别瞎试,很厉害的
先把form1的BorderStyle属性设为0
Private Sub Form_Load()
App.TaskVisible = False '在任务管理器中隐藏
Me.Left = 0
Me.Top = 0
Me.Height = Screen.Height

Me.Width = Screen.Width
Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
Me.Show
End Sub

⑶ 如何用VB做强制关闭其他程序

Option Explicit
Private Const TH32CS_SNAPPROCESS = &H2
Private Const TH32CS_SNAPheaplist = &H1
Private Const TH32CS_SNAPthread = &H4
Private Const TH32CS_SNAPmole = &H8
Private Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmole
Private Const MAX_PATH As Integer = 260
Private Const PROCESS_ALL_ACCESS = &H1F0FFF
Private Const PROCESS_CREATE_PROCESS = &H80
Private Const PROCESS_CREATE_THREAD = &H2
Private Const PROCESS_DUP_HANDLE = &H40
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const PROCESS_QUERY_LIMITED_INFORMATION = &H1000
Private Const PROCESS_SET_QUOTA = &H100
Private Const PROCESS_SET_INFORMATION = &H200
Private Const PROCESS_SUSPEND_RESUME = &H800
Private Const PROCESS_TERMINATE = &H1
Private Const PROCESS_VM_OPERATION = &H8
Private Const PROCESS_VM_READ = &H10
Private Const PROCESS_VM_WRITE = &H20
Private Const SYNCHRONIZE = &H100000

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32MoleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type

Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByValuExitCode As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

Private Function GetTargetProcessID(ByVal lpProcess As String) As Long
Dim dwRet As Long
Dim hSnapShot As Long
Dim pe32 As PROCESSENTRY32
hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0)
pe32.dwSize = LenB(pe32)
ProcessFirst hSnapShot, pe32
Do
If InStr(pe32.szExeFile, lpProcess) > 0 Then
dwRet = pe32.th32ProcessID
Exit Do
Else
pe32.szExeFile = String(MAX_PATH, 0)
End If
Loop While (ProcessNext(hSnapShot, pe32))
CloseHandle (hSnapShot)
GetTargetProcessID = dwRet
End Function

Private Function CloseTargetProcess(ByVal dwProcessID As Long) As Boolean
Dim hProcess As Long
Dim lpExitCode As Long
hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, dwProcessID)
If hProcess = 0 Then
CloseTargetProcess = False
Exit Function
End If
If GetExitCodeProcess(hProcess, lpExitCode) = 0 Then
CloseTargetProcess = False
Exit Function
End If
If TerminateProcess(hProcess, lpExitCode) = 0 Then
CloseTargetProcess = False
Else
CloseTargetProcess = True
End If
CloseHandle (hProcess)
End Function
Private Function CloseProcess(ProcessName As String)
On Error Resume Next
Dim ret As Long
ret = GetTargetProcessID(ProcessName)
If ret <> 0 Then
ret = CloseTargetProcess(ret)
End If
End Function

'调用
Call CloseProcess("123.exe") '这里的进程名必须一致. 大小写都要一样

'你不需要知道他的工作原理.这东西要是说的话可以出本书. 知道怎么用就行了

简单点说就是 根据镜像名 123.exe 得到进程的PID 然后发送结束命令.

⑷ 如何用VB关闭其他应用程序

可以调用api函数FindWindow,得到要关闭的程序的窗口句柄,然后用PostMessage或SendMessage发送WM_CLOSE消息。

⑸ 怎样用vb程序来关闭其它应用程序

你可以使用API函数FindWindow和PostMessage来寻找一个窗口并且关闭它。下面的范例演示如何关闭一个标题为"Calculator"的窗口。

'下面的代码放到模块中
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'FindWindowAPI函数
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 'PostMessageAPI函数
Public Const WM_CLOSE = &H10 '常用变量定义

'程序代码
Dim winHwnd As Long '定义一个长整形变量winHwnd
Dim RetVal As Long '定义一个长整形变量RetVal
winHwnd = FindWindow(vbNullString, "Calculator") 'API函数查找"Calculator"这个窗口
Debug.Print winHwnd '显示这个窗口句柄
If winHwnd <> 0 Then '如不为0,表示找到窗口
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) '向这个窗口发送关闭信息
If RetVal = 0 Then '如果返回信息为0.表示失败,未发送成功
MsgBox "Error posting message." '提示发送失败
End If
Else
MsgBox "The Calculator is not open." '提示没有找到打开的程序
End If

⑹ VB如何禁止其它程序利用指定文件(即锁定文件)

一般的程序打不开。但360粉碎机可以粉碎…… 下面的1.txt这个路径自己改改

Private Sub Command1_Click()

On Error Resume Next

Dim A As String

Dim i As Long

Open "D:\1.txt" For Input As #1

i = 1

Do While Not EOF(1)

Line Input #1, A

i = i + 1

Open A For Binary Lock Read Write As #i

Loop

Close #1

End Sub

⑺ 如何使我的VB程序运行时不能操作别的程序

先去掉窗体上的关闭和最小化按钮,并且将窗口最大化
在使窗口总最前端
ControlBox属性=False
将WindowState设置为
2
再用以下代码
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,
ByVal
cy
As
Long,
_
ByVal
wFlags
As
Long
_
)
As
Long
Const
HWND_TOPMOST
=
-1
Const
SWP_SHOWWINDOW
=
&H40
Private
Sub
Form_load()
Dim
retValue
As
Long
'将窗体设置为处于所有窗口的顶层,注意在
VB
中运行时,可能不行,但编译成EXE后就可以了
retValue
=
SetWindowPos(Me.hwnd,
HWND_TOPMOST,
Me.CurrentX,
Me.CurrentY,
300,
300,
SWP_SHOWWINDOW)
End
Sub
就好了

⑻ 如何在运行指定程序时(VB编写),禁止其他程序打开

这个可能性不太大,因为VB对底层的操作比较差,不过你可以这样,用钩子拦截系统的信息流,判断,当系统的焦点要离开测验程序时(不要相信VB自己的那个窗体事件,在失去焦点这个事件上,VB根本判断不出来),测验程序记录入成绩并退出,再加上说明,这样就会让人无法离开测验程序后
再回来
了。当然,记录的成绩要保管好,最好用不同的
加密算法
加密后存到文件和注册表中各一份,每次启动测验程序后都要读出以前的两份成绩并对比,以保证没有被修改。
这样虽然严格了点,但应该可以对付一般的情况了,不过很可能对付不了那些
游戏修改工具
软件,还有VB生成的程序也有可能被破解,所以只能对付一般情况。
关键就是“某些键盘按钮失灵,点击以后让它没反应”这一点上,要想实现这一点,你就必须去拦截Windows的信息流,不让他得到“按键被按下”这个事件,而VB里的事件处理只是针对VB生成的程序本身的,你在VB里再怎么设置,顶多只是让VB生成的程序不对“按键被按下”这个事件有什么反应,Windows还是会得到这个事件,实际上Windows会在VB生成的程序前得到这个事件,所以,还是得用钩子,至于你说用钩子会变慢,那是一定的,就看慢多少了。

⑼ 使用VB关闭其他程序

'VB 终止指定进程 ,刷新托盘图标

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32MoleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 1024
End Type

Private Type MODULEENTRY32
dwSize As Long
th32MoleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Byte
modBaseSize As Long
hMole As Long
szMole As String * 256
szExePath As String * 1024
End Type

Private Const WM_MOUSEMOVE = &H200

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
OsName As String
End Type

Const TH32CS_SNAPHEAPLIST = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPTHREAD = &H4
Const TH32CS_SNAPMODULE = &H8
Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Const TH32CS_INHERIT = &H80000000
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function UpdateWindow Lib "user32" Alias "UpdateWindow" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Sub KillExe(EXEName As String)
Dim my As PROCESSENTRY32
Dim hProcessHandle As Long
Dim success As Long
Dim l As Long

l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If l Then
my.dwSize = 1060
If (Process32First(l, my)) Then
Do
If UCase$(Right$(Left$(my.szExeFile, InStr(1, my.szExeFile, Chr$(0)) - 1), Len(EXEName))) = UCase$(EXEName) Then
hProcessHandle = OpenProcess(&H1F0FFF, True, my.th32ProcessID)
If hProcessHandle <> 0 Then success = TerminateProcess(hProcessHandle, ByVal 0&)
If success = 1 Then CloseHandle (hProcessHandle)
End If
Loop Until (Process32Next(l, my) < 1)
End If
CloseHandle l
End If

End Sub

Private Function GetSysTrayWnd() As Long

Dim Result As Long
Dim Ver As OSVERSIONINFO
Ver.dwOSVersionInfoSize = 148
GetVersionEx Ver

Result = FindWindow("Shell_TrayWnd", vbNullString)
Result = FindWindowEx(Result, 0, "TrayNotifyWnd", vbNullString)
If Ver.dwMajorVersion = 5 And Ver.dwMinorVersion > 0 Then Result = FindWindowEx(Result, 0, "SysPager", vbNullString)
If Ver.dwMajorVersion = 5 Then Result = FindWindowEx(Result, 0, "ToolbarWindow32", vbNullString)
GetSysTrayWnd = Result
End Function

Private Sub RefreshTrayIcon()

Dim hwndTrayToolBar As Long
Dim X, Y As Long
Dim rTrayToolBar As RECT
Dim pos As Long
hwndTrayToolBar = GetSysTrayWnd

GetClientRect hwndTrayToolBar, rTrayToolBar

For X = 1 To rTrayToolBar.Right - 1
For Y = 1 To rTrayToolBar.Bottom - 1
pos = (X And &HFFFF) + (Y And &HFFFF) * &H10000

PostMessage hwndTrayToolBar, WM_MOUSEMOVE, 0, pos

Next Y
Next X
End Sub

Private Sub Command1_Click()
Dim hShellTray As Long
Dim a As String
a = "c:\windows\notepad.exe"'以记事本为例
KillExe a

RefreshTrayIcon'刷新托盘图标
End Sub

⑽ 用vb 防止 其他应用程序的重复运行

如下,可以这么调用:CheckRun "AutoCad.exe"
Function CheckRun(ByVal procname As String) As Boolean
On Error GoTo ErrCheckRun
'判断程序是否运行
'procname-文件名称
CheckRun = False
Dim rtn&, strcomputer$
Dim objWMIService As Object
Dim colProcessList As Object
Dim objProcess As Object

strcomputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strcomputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & procname & "'")
If colProcessList.Count = 0 Then
Exit Function
End If
CheckRun = True'procname正在运行
Exit Function
ErrCheckRun:
MsgBox Err.Description, vbCritical, "Error in CheckRun"
End Function

阅读全文

与vb如何禁止其他程序相关的资料

热点内容
张掖市哪里招聘信息 浏览:149
keil如何编写程序 浏览:260
做烤瓷牙有什么程序 浏览:580
锐捷网络出去的程序员技术如何 浏览:549
抖音小店怎么选极致产品 浏览:21
抖音新手卖农产品怎么样 浏览:97
信息技术类哪个适合女生 浏览:505
美团外卖怎么加盟和代理 浏览:93
仪器数据如何在led上显示 浏览:40
代理cpu需要什么条件 浏览:729
微信小程序课程不更新怎么回事 浏览:416
绑定手机银行怎么删除交易明细 浏览:290
为什么安装程序已在运行中 浏览:164
大数据二维码是什么 浏览:566
手机拍照有哪些技术 浏览:881
山西清香型酒有哪些代理品牌 浏览:171
希捷是做什么产品的 浏览:497
上海做老房子交易的中介有哪些 浏览:674
数据线车载蓝牙郑州哪里有卖的 浏览:215
算法中代理模型是什么 浏览:717