日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 万象百科 >内容正文

万象百科

请问,如何用C++实现VBS中sendkeys函数的功能?100

發布時間:2023/11/24 万象百科 38 博士
生活随笔 收集整理的這篇文章主要介紹了 请问,如何用C++实现VBS中sendkeys函数的功能?100 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SendKeys string[, wait]其中,string 是指定要發送的按鍵消息;Wait 是指定等待方式的 Boolean 值,如果為 False(缺省值),則控件在按鍵發送出去之后立刻返回到過程;如果為 True,則按鍵消息必須在控件返回到過程之前加以處理。按鍵消息由一個或多個字符序列表示:鍵盤字符按字符本身的鍵表示(如對于字母 A,string="A",對連續字母 win98,string="win98"),對其它一些特殊字符,如 + 號用{+}表示,Shift 鍵用 + 表示,Alt 鍵用 % 表示,F1 鍵用 {F1} 表示等等,更多的按鍵與代碼的對應關系,可參考 MSDN 的幫助信息。明白了這些“規則”之后,我們首先來編寫一個用 SendKeys 操控計算器的程序,程序代碼如下:Option ExplicitPrivate Sub Form_Load()Dim ReturnValue, IReturnValue = Shell("CALC.EXE", 1) ' 運行計算器AppActivate ReturnValue ' 激活計算器For I = 1 To 100 ' 設置計數循環SendKeys I & "{+}", True ' 按下按鍵給計算器Next I ' 將所有 I 值相加SendKeys "=", True ' 取得總和SendKeys "%{F4}", True ' 按 ALT+F4 關閉計算器End Sub程序中 AppActivate ReturnValue 語句用來激活計算器,使其窗口獲得焦點。程序運行后,我們會看到計算器的按鍵自動動作起來,最后計算出 1+2+3+…+100 的結果。這可不是病毒,也不是黑客?。≡趺礃?,神奇吧?想沒想到這可是制做演示程序的好方法!只要熟悉了某程序的鍵盤操作序列,就可以用程序模擬它的運行過程。下面的程序用來模擬運行安裝在 D: 盤的 Word 程序,自動打出 4 行文字后,然后退出。程序中為了能仔細觀察演示過程,設計了 waittime 函數來進行延時。Option ExplicitPrivate Sub Form_Load()Dim xx = Shell("D:/Program Files/Microsoft Office/Office/winword.exe", vbNormalFocus)'啟動 Word97SendKeys "This is a demo program for Microsoft Word97.", True ' 模擬輸入英文字符串SendKeys "{Enter}{Enter}", True ' 兩次回車waittime (2) ' 延時 2 秒SendKeys "Some letters keyin automatically.", TrueSendKeys "{Enter}{Enter}", Truewaittime (2)SendKeys "Not virus,and not hackers!", TrueSendKeys "{Enter}{Enter}", Truewaittime (2)SendKeys "Being Exit... Look the MenuBar File{(}F{)}...", TrueSendKeys "%", True 'Alt 鍵激活菜單條waittime (1)SendKeys "(F)", True '按字母 "F",選擇"文件(F)"菜單waittime (1)SendKeys "(X)", True '按字母 "X", 選擇"退出(X)"waittime (2)SendKeys "(N)", True 'Word 彈出一個對話框,詢問文件是否存盤,按 "N" 不存盤End '結束本模擬程序End SubPrivate Sub waittime(delay As Single)Dim starttime As Singlestarttime = TimerDo Until (Timer - starttime) > delayLoopEnd Sub

這個有多個方法的,個人覺得最簡單的方法是用WM_CHAR以下是測試#include <stdio.h>#include <windows.h>#include <string.h>#include <stdlib.h>int main(){char ConsoleName[100] = {0}; GetConsoleTitle(ConsoleName, 100); HWND hwnd = FindWindow(NULL, ConsoleName); //找出控制臺的句柄printf("%p",hwnd); char input[100]="Hello";for(size_t i=0;i<strlen(input);i++){ SendMessage(hwnd,WM_CHAR,(LPARAM)input[i],1);}char get[100];gets(get);printf("%s",get); getchar(); return 0;}程序的功能是向當前控制臺發"Hello"字串,并用gets取加并打印你可以改為向其它窗口發消息當然,你可以用其它消息如wm_keyup/wm_keydownwindows還提供了一個復雜的函數sendinput,它可以向系統發任何鍵盤或鼠標的消息

總結

以上是生活随笔為你收集整理的请问,如何用C++实现VBS中sendkeys函数的功能?100的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。