⑴ VB 中語言怎麼屏蔽掉一段程序
除了英文的'沒有其他特殊的符號,不過不用一個個添加英文的',你可以這樣:
選中你要注釋的多行文本》在代碼模式下,右擊工具欄,在彈出菜單里把「編輯」項選中(如果已經選中就不必選了)》點一下編輯工具欄里有幾條橫線的那個圖標即可注釋一段或幾行。如圖所示:在1處點擊滑鼠右鍵》選擇編輯;在編輯工具欄中點擊2處的「設置注釋塊」。
⑵ vb禁用其他程序
這是關閉代碼如果不想讓他打開可以用時鍾控制項
'form1中
'按鈕事件下
Private Sub Command1_Click()
Term "notepad.exe" '關閉記事本程序,注意是進程名稱
End Sub
'以下在模塊中
Option Explicit
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
Const MAX_PATH As Integer = 260
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 CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Const PROCESS_ALL_ACCESS = &H1F0FFF
Public Function Term(exeN As String) As Boolean
Dim lPid As Long
Term = False
Dim hSnapShot As Long, uProcess As PROCESSENTRY32
On Error Resume Next
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
uProcess.dwSize = Len(uProcess)
lPid = Process32First(hSnapShot, uProcess)
Do While lPid '當返回值非零時繼續獲取下一個進程
If InStr(1, UCase(uProcess.szExeFile), UCase(exeN), vbTextCompare) Then
Call TerminateProcess(OpenProcess(1&, True, uProcess.th32ProcessID), 0&) '關閉進程
Term = True
End If
lPid = Process32Next(hSnapShot, uProcess) '循環獲取下一個進程的PROCESSENTRY32結構信息數據
Loop
CloseHandle hSnapShot '關閉進程「快照」句柄
End Function
⑶ VB如何使程序運行後不能再運行其他軟體
將窗口最大化,然後置頂,這樣就沒辦法了,除了用任務管理器之類的東東才能解開。如果再加上檢測任務管理器的語句,那基本上對付一般使用者足夠了。
窗口置頂如下:
先加個API聲明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
然後在LOAD事件中加上:
SetWindowPos Form1.hwnd, -1, 0, 0, 0, 0, 3
Form1.WindowState = 2
這樣的話,基本對付一般般的人還是夠了。當然,前提是你自己那程序中在置頂後還要能讓你自己輸入密碼之類的東東,要不然,你也進不了了……
⑷ 怎樣用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中如何寫一段代碼禁用一個程序
給你個技巧:使另一個程序無法打開,只要執行一條語句:open 「文件名(包括路徑)」 for input as #1 『就這樣,不要用close關閉即可
要恢復能夠打開程,只要寫上:close #1 即可
簡單吧!
⑹ 如何在運行指定程序時(VB編寫),禁止其他程序打開
這個可能性不太大,因為VB對底層的操作比較差,不過你可以這樣,用鉤子攔截系統的信息流,判斷,當系統的焦點要離開測驗程序時(不要相信VB自己的那個窗體事件,在失去焦點這個事件上,VB根本判斷不出來),測驗程序記錄入成績並退出,再加上說明,這樣就會讓人無法離開測驗程序後
再回來
了。當然,記錄的成績要保管好,最好用不同的
加密演算法
加密後存到文件和注冊表中各一份,每次啟動測驗程序後都要讀出以前的兩份成績並對比,以保證沒有被修改。
這樣雖然嚴格了點,但應該可以對付一般的情況了,不過很可能對付不了那些
游戲修改工具
軟體,還有VB生成的程序也有可能被破解,所以只能對付一般情況。
關鍵就是「某些鍵盤按鈕失靈,點擊以後讓它沒反應」這一點上,要想實現這一點,你就必須去攔截Windows的信息流,不讓他得到「按鍵被按下」這個事件,而VB里的事件處理只是針對VB生成的程序本身的,你在VB里再怎麼設置,頂多隻是讓VB生成的程序不對「按鍵被按下」這個事件有什麼反應,Windows還是會得到這個事件,實際上Windows會在VB生成的程序前得到這個事件,所以,還是得用鉤子,至於你說用鉤子會變慢,那是一定的,就看慢多少了。
⑺ 如何使我的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如何禁止其它程序利用指定文件(即鎖定文件)
一般的程序打不開。但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