3

vbscriptを初めて使用しています。私はvbscriptで開いたインターネットエクスプローラウィンドウのvbscriptを使って撮影したスナップショットを保存したい。vbscriptを使用したスナップショットの保存

コード

ページをロードする
Dim IE, stateString 
Set IE = WScript.CreateObject("InternetExplorer.Application") 
ie.toolbar = 1 
ie.statusbar = 1 
ie.width = 999 
ie.height = 500 
ie.left = 20 
ie.theatermode = false 
ie.theatermode = true 
ie.theatermode = false 
ie.top = 50 
ie.navigate("file:///C:\Users\Vinit_Tiwari\Documents\vbscripts\someform.html") 
'stateString = cstr(ie.readystate) 
waitforload(ie) 


ie.visible = 1 

Set wshShell = CreateObject("Wscript.Shell") 

wshShell.AppActivate "Some Form" 
wshShell.SendKeys "% x" 

コードスナップショットを取得する

Dim oWordBasic 
set oWordBasic = CreateObject("Word.Basic") 
oWordBasic.sendkeys "{prtsc}" 
oWordBasic.AppClose "Microsoft Word" 
Set oWordBasic = Nothing 
Wscript.Sleep 2000 

スナップショット保存

dim paint 
set paint = wshShell.exec("mspaint") 
do while paint.status = 0:loop 
wshShell.appactivate("untitled-Paint")'this returns false 
Wscript.sleep 500 
WshShell.SendKeys "^v" 
wscript.sleep 500 
wshshell.sendkeys "^s" 
wscript.sleep 500 
wshshell.sendkeys "d:\test.png" 
wscript.sleep 500 
wshell.sendkeys "{Enter}" 
Set wshshell = Nothing 

が実際に以前すなわちウィンドウにフォーカスを持っているし、キーストロークがある開かれましたペイントの代わりにieに送信されます。 AppActivateの逆の作業を行う機能があります。

答えて

2

これは機能しません。 Print Screenボタンが押されている間、Microsoft Wordにフォーカスがあります。 Microsoft Wordをまったく使用しないことで、この問題を簡単に解消できます。それは必要はありません。 Print Screen機能はシステムホットキーであり、Microsoft Wordとは関係ありません。 Alt + PrintScreenの組み合わせを使用して、現在フォーカスされているウィンドウのスクリーンショットをクリップボードにキャプチャする必要があります。

第2に、ペイントにIEの代わりにフォーカスがない場合は、ウィンドウのタイトルが間違っているためです。あなたはその部分を正しくやっています。 AppActivateは、指定されたタイトルのウィンドウが見つからない場合にfalseを返します。正直言って、ペイントには注意が必要ですが、最初にウィンドウをアクティブにすることをお勧めします。

また、これは非常に古いシステムですか?とにかくWord.Basicオートメーションオブジェクトを好奇心の外に使っているのはなぜですか?

+0

こんにちはNilpo、あなたのお返事ありがとうございます...しかし、アプリケーションが前景にできるように 'AppActivate'で渡される適切なタイトルが何であるか教えてください。 – codeomnitrix

+0

Windows。 MSペイントを開いてタイトルバーを見る必要があります。 – Nilpo

+0

実際に私はWindows 7を使用しています。タイトルバーはmspaintの '無題ペイント'を表示しています。これが私が試していることです。 – codeomnitrix

関連する問題