スクリーンショット機能用VBS
2022-02-08 20:35:41
バイドゥによると、VBSはスクリーンショットを撮るのが難しいが、サードパーティーのソフトを使い、ソフトを呼び出すと、ソフトが自動的にスクリーンショットを撮ってくれる方法があるそうだ。
しかし、それではそもそもVBSを使う意味がなくなってしまいます。
VBSを使う理由は、簡単で速いからです。サードパーティのソフトを使うなら、VBで書けばいいじゃないですか。
だから・・・Excelを呼び出してVBAでやればいいだけなんです。
もっと良い方法はないでしょうか?
実際のvbsの呼び出しは、vbaの特性を使用して、APIを呼び出すことができますこの方法も、インターネット上のコードをチェックし、イベント関数のUSER32モジュールkeybd_eventのスクリーンショットを呼び出します。
結局、ある神主が次のようなコードを出してきた。
'VBScreenshot.vbs
' Win7x64 tested and passed (with Word 2007 installed).
' Reference.
' http://qtp.blogspot.com/2010/02/screenshot-vbscript.html
' http://www.fixitscripts.com/problems/take-screenshot-of-current-user-s-session
With CreateObject("Word.Basic")
.Sendkeys "{prtsc}"
.FileQuit '.AppClose
End With
Msgbox "Screen has been captured to clipboard. ", vbSystemModal+vbInformation, WScript.ScriptName
それは大変でしたね。
そして最後にもっとすごい方法を紹介します
data = " 4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000C00000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000450E6EDA016F0089016F0089016F0089016F0189006F008963701389026F0089E9700B89006F008952696368016F008900000000000000000000000000000000504500004C01010017E773460000000000000000E0000F010B01060000000000000400000000000080110000001000000010000000004000001000000002000004000000000000000400000000000000002000000002000000000000020000000000100000100000000010000010000000000000100000000000000000000000F012000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000080000000000000000000000000000000000000000000000000000002E646174610000003A030000001000000004000000020000000000000000000000000000400000C00000000000000000000000000000000000000000000000000000000000000000 "
TargetFileName = "C:\tmp.exe"
With CreateObject("ADODB.Stream"):.Type = 1:.Open:.Write StrToByte(data):.SaveToFile TargetFileName, 2:.Close:End With
WScript.CreateObject("WScript.Shell").Run TargetFileName & " /s",,true
WScript.CreateObject("WScript.Shell").Run "cmd /c del " &TargetFileName,vbhid
MsgBox "The current screen image has been copied to the system clipboard", 64, "Info"
Function StrToByte(str)
Set xmldoc = CreateObject("Microsoft.XMLDOM")
xmldoc.loadXML "<?xml version=""1.0""? >"
Set pic = xmldoc.createElement("pic")
pic.dataType = "bin.hex"
pic.nodeTypedValue = str
StrToByte = pic.nodeTypedValue
End Function
サードパーティツールの短いコレクションをVBSスクリプトに入れ、豊かな機能を実現することである
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ActiveXコンポーネントはオブジェクトを作成できません: dm.dmsoft code: 800A01AD
-
VBSは現在のスクリプトがあるフォルダーを開く
-
複数ディレクトリの複数ファイルを反復して一括置換するためのVBSスクリプト
-
VBSで指定したディレクトリにあるファイルの一覧を取得する方法
-
Office一括アクティベーションのコマンドツールosppの説明
-
VBSの基本 - vbscript TextStreamオブジェクト
-
ホストファイルのドメインアドレスの内容を削除するためにvbsを使用します。
-
vbsでリモートホストのファイルを取得し、指定されたディレクトリに保存する。
-
vbs と wget を組み合わせて Web サイトの画像をダウンロードする。
-
VBSのInStrRev関数の第3パラメータ(Start)の使用に関する注意点