⑴ 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