當前位置:首頁 » 編程軟體 » vb腳本模擬

vb腳本模擬

發布時間: 2022-12-29 19:05:44

『壹』 VB模擬鍵盤enter鍵和方向鍵的UP鍵循環

應該調用 API FindWindow 獲取你想要發送的對象窗口的句柄
由於未定發送對象是父類還是子類窗口
那麼用SENDKEYS 則在 sendkeys前 用 API SetFocus (與VB內部保留名重疊,聲明函數換別名 然後 引用原名) SendKeys string (up 對應{UP} enter 對應 {ENTER})
每次SendKeys 之前用 API GetFocus 確定目標句柄正確

還有就是用API MapVirtualKey 把 VbKeyEnter 和 VbKeyUp 轉換成掃描碼
用 keybd_event 把掃描碼對應的鍵模擬出來 之前要設定輸入焦點

『貳』 VB 後台 模擬按鍵 求助

代碼我就不多寫了,寫多了也暈,本人有想過你這個功能,但是具體實現還是沒有實現過。我說一下我認為的理論思路。
首先這個肯定要使用API函數了,初步涉及3個。
PostMessage '
SendMessage '
GetWindow( m_LocalWnd, GW_CHILD),

這個API的功能可以網路查查詳細的,這就不細說了。下面簡單引用一下。
此函數為指定的窗口調用窗口程序,直到窗口程序處理完消息再返回。而函數PostMessage不同,將一個消息寄送到一個線程的消息隊列後立即返回。

說一下你的問題的思路。
1。獲取B程序的控制句柄,
2。獲取B程序的需要發送到哪個子控制項的子句柄。
通俗一點舉例說明就是:B程序有一個界面,界面上有三個編輯窗,需要往哪個編輯窗裡面輸入"F"這個字元?如果是當前界面,游標閃的那個拿鍵盤輸入肯定沒問題,但問題是B程序是後台運行的,不是當前的,所以要獲得B程序裡面的需要發送的,也就是哪個控制項接收這個「F」字元的「子控制項句柄」。
例如:獲取方法有很多,可以使用GetWindow( m_LocalWnd, GW_CHILD), GW_HWNDNEXT 來枚舉B程序的每個子控制項,GetClassName 來判斷那個子控制項的類名稱是 什麼,然後確定或者使用代碼判斷。

3.使用 PostMessage, sendmessage 向程序發送信息。

這只是思路,看你的意圖好像是編寫某腳步,實現某游戲掛機的目的。上有對策下有政策。這些都是老思路了,如果是成熟的游戲他應該是把這種屏蔽掉了看,需要使用更進一步的手段對付。
SendMessage的詳細說明鏈接看吧,列出來貼出了太亂了。
http://ke..com/view/1080187.html?wtp=tt

PostMessage:
http://ke..com/view/1080179.htm

GetWindow:
http://ke..com/view/1080323.htm

以上全是個人意見,僅供參考。
如有雷同純屬巧合
希望對你有幫助。

軟體屏蔽虛擬按鍵很正常的。

『叄』 在Vbscript腳本里怎麼模擬出「Win+R」的組合鍵

Sendkey無法直接發送Win鍵的,但是用Ctrl和Esc組合鍵可以模擬 win鍵(用於打開開始菜單),如果再想同時運行R鍵,就比較困難了。

自己寫了一個很不成熟的,僅提供思路:用ctrl和Esc打開開始菜單,然後連續按15次R鍵(這里取決於你的電腦靈敏度),然後執行2次Enter(最後一次是確認的「運行程序提示 無法運行R命令」對話框的)

Set oWsh = CreateObject("Wscript.Shell")
oWsh.SendKeys "^{Esc}{r 15}{~ 2}"

建議用VB調用API函數,VBS無法解釋API函數。

『肆』 找個大神幫忙寫一個簡單的VB腳本~~

假設有12.txt,放在D:根目錄下,其中數據如下:

45554

122132

12112312

121121

123222

98522

45622

寫一個vbs腳本,12.vbs,也放在D:根目錄下,內容如下:

dim str

str=""

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextFile = objFSO.OpenTextFile ("D:12.txt", ForReading)

Do Until objTextFile.AtEndOfStream

strComputer = objTextFile.ReadLine

str=str+"0X"+strComputer+vbCrLf

Loop

objTextFile.Close


Const ForAppending = 8

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextFile = objFSO.OpenTextFile ("D:56.txt", ForAppending, True)

objTextFile.Write(str)

objTextFile.Close

執行12.vbs(雙擊即可),會在D:生成56.txt,其中數據如下:

0X45554

0X122132

0X12112312

0X121121

0X123222

0X98522

0X45622



、、、、、、、、、、、、、、、、

是否滿足你的要求了,請採納!

『伍』 用VB如何編寫游戲腳本

腳本主要是輔助操作,讀取與改寫內存要藉助api函數的

『陸』 推薦一個VB運行腳本的方法

VB所需要的所有代碼只能寫在程序源碼中.
要實現你說的功能,只能借用VBS
VB不是解釋性的編程語言.VB程序源代碼都是被編譯成機械碼後才成EXE文件的.
所以VB編譯好的程序沒有運行代碼的函數.
如果不怕麻煩,就把所有代碼的處理程序寫到VB中.
要不就利用VBS腳本中的execute函數,在VBS中執行execute(a),則字元串a會被當程序執行.比如在VBS中:
a="Msgbox(now)"
execute (a)
的執行結果等於Msgbox(now)的結果.
把你要處理的代碼以字元串(記得換行!)的形式存在a中,再在VBS中執行
execute(a)
即可.

『柒』 vb 模擬按鍵 參數

參考吧:

vbs SendKey用法

簡單說,這個命令就是模擬鍵盤操作,將一個或多個按鍵指令發送到指定Windows窗口來控制應用程序運行,其使用格式為:
object.SendKeys string
"object":表示WshShell對象
"string":表示要發送的按鍵指令字元串,需要放在英文雙引號中.

1.基本鍵

一般來說,要發送的按鍵指令都可以直接用該按鍵字元本身來表示,例如要發送字母"x",使用
WshShell.SendKeys "x" 即可.

也可直接發送多個按鍵指令,只需要將按鍵字元按順序排列在一起即可.例如,要發送按鍵"cfan",可以使用" WshShell.SendKeys "cfan" ".

2.特殊功能鍵
對於需要與Shift、Ctrl、Alt三個控制鍵組合的按鍵SendKeys使用特殊字元來表示:
特殊控制鍵 特殊字元
Shift +
Ctrl ^
Alt %

如要發送的組合按鍵是同時按下Ctrl+E,需要用" WshShell.SendKeys "^e" "表示,
如果要發送的組合按鍵是按住Ctrl鍵的同時按下E與C兩個鍵,這時應使用小括弧把字母括起來,書寫格式為" WshShell.SendKeys "^(ec)" ".這里要注意它與" WshShell.SendKeys "^ec" "的區別,後者表示組合按鍵是同時按住Ctrl和E鍵,然後松開Ctrl鍵,單獨按下"C"字母鍵

由於"+"、"^"這些字元用來表示特殊的控制按鍵了,如何表示這些按鍵呢?只要用大括弧括住這些字元即可.例如,要發送加號"+",可使用" WshShell.SendKeys "{+}" ".另外對於一些不會生成字元的控制功能按鍵,也同樣需要使用大括弧括起來按鍵號名稱,例如要發送回車鍵,需要用" WshShell.SendKeys "{ENTER}" "表示,發送向下的方向鍵用" WshShell.SendKeys "{DOWN}" "表示.

小提示
如果需要發送多個重復的單字母按鍵,不必重復輸入該字母,SendKdys允許使用簡化格式進行描述,使用格式為"{按鍵 數字}".例如要發送10個字母"x",則輸入" WshShell.SendKeys "{x 10}" "即可.

3.翻譯上手實例
" WshShell.SendKeys "^{ESC}u" "這句翻譯為:按下Ctrl+Esc組合鍵(相當於按Win鍵)打開"開始"菜單,按著按U鍵打開"關機"菜單.

---Just Do It---------------------------------
讓VBS腳本自動在詞本中輸入一行文字"Hello, welcome to cfan".

Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate " 無標題 - 記事本 "
WshShell.SendKeys "hello, welcome to cfan"

我們最常用的記事本沒有Word、WPS那樣的自動定時存檔功能,其實利用VBS腳本再加上SendKeys命令,就能彌補這個遺憾.打開記事本,輸入以下內容(以容易描述和分析,把代碼分為四個部分):

'第一部分:定義變數和對象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=300000
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox("請輸入你要創建的文件名(不能用中文和純數字):")

'第二部分:打開並激活記事本
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate "無標題 - 記事本"

'第三部分:用輸入的文件名存檔
WshShell.SendKeys "^s"
WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300
WshShell.SendKeys "%s"
WScript.Sleep AutoSaveTime

'第四部分:自動定時存檔
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys "^s"
WScript.Sleep AutoSaveTime
Wend
WScript.Quit

將其保存為記事本.vbs,以後要使用記事本時,都通過雙擊這個腳本文件來打開.

程序翻譯

這個腳本的基本思路是定時向記事本發送Ctrl+S這個存檔組合鍵.
第一部分:定義了腳本中需要用到的變數和對象."AutoSaveTime"變數用來設置自動存檔間隔,單位為毫秒,這里設置為5分鍾."TXTFileName"變數通過輸入框取得你要創建的文本文件名稱.
第二部分:運行記事本,對於Windows本身提供的程序,比如計算器等,可直接在"WshShell.Run"後輸入程序名稱,如"calc"對於非系統程序,則可輸入完全路徑,但要注意使用8.3格式輸入,比如" "D:\Progra~1\Tencent\QQ.exe" "
第三部分:這里用SendKeys命令執行了這樣的操作流程(請注意每個操作之間延時命令的使用):
在記事本中按Ctrl+S組合鍵→彈出保存文件的窗口→輸入文件名→按Alt+S組合鍵進行保存(默認保存在"我的文檔"目錄).
第四部分:定時存檔的關鍵,通過"While......Wend"這個當條件為"真"時循環命令,實現自動存檔代碼" WshShell.SendKeys "^s" "和定時代碼" WScript.Sleep AutoSaveTime "的重復執行.因為不能讓這個定時存檔循環一直執行,退出記事本後,必須自動退出腳本並結束循環,所以設計了一個循環判斷條件" WshShell.AppActivate TXTFileName=True ",當記事本運行中時,可以激活記事本窗口,這個條件運行結果為"True",定時存檔循環一直執行,退出記事本後,腳本無法激活記事本窗口,就會路出循環,執行"Wend"後面的"WScript.Quit"退出腳本.

---Just Do It---------------------------------
有款軟體叫"QQ多賬號自動登錄器",它有記住QQ賬號和密碼,從而幫你用指定QQ號碼自動登錄,特別適合有多個QQ賬號的朋友.其實利用VBS腳本你完全可以DIY一個.請到http://www.newhua.com/cfan/200419/vbs.rar下載腳本實例.其中有一個雙QQ號碼自動登錄的腳本,請對照其中的解釋將其修改為適合自己的QQ自動登錄腳本.
請製作一個腳本,在你復制了一段文字後,只要雙擊運行這個腳本,就會自動打開記事本,並自動將復制的文字粘貼進來.
-----------------------------------------------

VBS中Sendkey鍵盤對應的碼表

Key Code
------------------------------
Shift +
Ctrl ^
Alt %
BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER}or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

『捌』 利用VB製作模擬器

我給你做了:源碼如下,方向鍵修改移動方向,空格鍵移動滑鼠(若不會整理的話寫郵箱and我發過去)

VERSION 5.00
Begin VB.Form frmMain
BorderStyle = 1 'Fixed Single
Caption = "滑鼠測試"
ClientHeight = 3195
ClientLeft = 45
ClientTop = 330
ClientWidth = 3645
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3195
ScaleWidth = 3645
StartUpPosition = 2 '屏幕中心
Begin VB.Timer Timer1
Interval = 10
Left = 120
Top = 480
End
Begin VB.CommandButton btnRight
Caption = "向右移動"
Height = 495
Left = 2520
TabIndex = 3
Top = 1200
Width = 975
End
Begin VB.CommandButton btnLeft
Caption = "向左移動"
Height = 495
Left = 120
TabIndex = 2
Top = 1200
Width = 975
End
Begin VB.CommandButton btnDown
Caption = "向下移動"
Height = 495
Left = 1320
TabIndex = 1
Top = 1920
Width = 975
End
Begin VB.CommandButton btnUp
Caption = "向上移動"
Height = 495
Left = 1320
TabIndex = 0
Top = 480
Width = 975
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'====================================================
' 測試方法: 上下左右鍵修改移動方向,空格鍵移動
'====================================================

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Type POINTAPI
X As Long
Y As Long
End Type

Const VK_LEFT = &H25
Const VK_RIGHT = &H27
Const VK_UP = &H26
Const VK_DOWN = &H28

Dim stMousePos As POINTAPI
Dim bMoveType As Long '移動方向

Private Sub Form_Load()
bMoveType = 1 '方向初始化為向上
End Sub

Private Sub Timer1_Timer()

'============== 根據移動方向移動滑鼠 ==============

If GetAsyncKeyState(32) Then '空格鍵
GetCursorPos stMousePos
Select Case bMoveType
Case 1
stMousePos.Y = stMousePos.Y - 10 '向上
Case 2
stMousePos.Y = stMousePos.Y + 10 '向下
Case 3
stMousePos.X = stMousePos.X - 10 '向左
Case 4
stMousePos.X = stMousePos.X + 10 '向右
End Select
SetCursorPos stMousePos.X, stMousePos.Y
End If

'============== 根據按鍵修改移動方向 ==============

If GetAsyncKeyState(VK_LEFT) Then
bMoveType = 3
btnLeft.SetFocus
ElseIf GetAsyncKeyState(VK_RIGHT) Then
bMoveType = 4
btnRight.SetFocus
ElseIf GetAsyncKeyState(VK_UP) Then
bMoveType = 1
btnUp.SetFocus
ElseIf GetAsyncKeyState(VK_DOWN) Then
bMoveType = 2
btnDown.SetFocus
End If
End Sub

『玖』 我用VB做了一個游戲腳本 用於安卓模擬器(逍遙模擬器),方法是用send模擬按鍵,但send了平均

是不是太快了,模擬按鍵 一般設置一下時間間隔。建議學習一下按鍵精靈,做游戲腳本很輕松,發送按鍵、找圖之類的特別方便。
語法很多借用的VB的樣子。

『拾』 製作vb腳本

簡單點的可以綁定他的mac地址
但是mac
可以被指定 最好就是綁定他的硬碟序列號啦
如果限制時間還要有個網路校時功能 不然他該系統時間就可以用啦 ,網路時間可以從任意網站獲得

熱點內容
什麼是廣告腳本設計 發布:2025-09-18 05:52:09 瀏覽:650
移動版我的世界伺服器 發布:2025-09-18 05:38:49 瀏覽:958
使用jsp腳本輸出九九乘法表 發布:2025-09-18 05:22:11 瀏覽:663
出行解壓 發布:2025-09-18 05:20:54 瀏覽:574
安卓手機畫線怎麼用 發布:2025-09-18 05:16:43 瀏覽:697
解壓吃蔬菜 發布:2025-09-18 05:10:04 瀏覽:818
php判斷數組個數 發布:2025-09-18 04:54:02 瀏覽:664
linuxmd5c 發布:2025-09-18 04:47:04 瀏覽:345
數據結構編譯器哪個好 發布:2025-09-18 04:33:52 瀏覽:437
ad轉換c語言 發布:2025-09-18 04:21:21 瀏覽:755