プロが教える店舗&オフィスのセキュリティ対策術

(PrintScreenキーを押したときのように)スクリーンをキャプチャしてクリップボードにコピー(そして画像ファイルとして保存)したいと希望しております。

(スクリーンをキャプチャするソフトも作られているようですが)スクリーンのキャプチャは、(1)どのような言語を使用して(できればJavaScriptで実現したいのですが)(2)どのように記述すれば実現できるのでしょうか。
恐れ入りますが、ご教授いただけるとありがたいです。

また、大変申し訳ありませんが、(私はperlとJavaScriptを多少使用したことがある程度の知識しかないため)(一)画面上のボタンをクリックしたら、(二)スクリーンをキャプチャし、((三)画像ファイルとして保存する)といった一連の動作について、具体的な記述方法を教えていただけると大変助かります。
お手数をおかけしますが何卒よろしくお願いいたします。

A 回答 (2件)

まずちょっと訂正が...


SendKeysじゃなくて、oomiyajiさんのいっていた
keybd_eventがAPIでした、m(_ _)m
SendKeysはVBに元からついているものでした

説明するのがちょっと苦手なので
サンプルをコピーしておきます(おぃ
これをコード(?)のところにコピーすれば
あとは実行するだけになります
一応コメントつけてましたが、参考になれるかどうかは...

'keybd_eventを使えるようにする
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
'PrintScreen
Private Const VK_SNAPSHOT = &H2C

Private Sub Form_Load()
'クリップボードの中身を消す
Clipboard.Clear
'キャプチャするタイプを選択
If MsgBox("画面全体 → はい" & Chr(13) & "アクティブウィンドウ → いいえ", vbYesNo) = vbYes Then
'画面全体をキャプチャする時
keybd_event VK_SNAPSHOT, 1, 0, 0
Else
'アクティブウィンドウをキャプチャする時
keybd_event VK_SNAPSHOT, 0, 0, 0
End If
'つけないとうまくできない
DoEvents
'画面にキャプチャしたやつを表示
Form1.Picture = Clipboard.GetData
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。おかげさまで動作いたしました。

実際に動作するサンプルソースを記述していただいたうえに、簡潔なコメント行まで(丁寧に)添えていただき、VBがはじめての私でも、一見して「VBはこのように書くのか!」とその概要がわかりました。
非常に分かりやすい説明ありがとうございました。とても感謝しております。
今後、いただいたサンプルコードを色々といじらせていただき、理解を深めていきたいと思っております。

お礼日時:2003/07/02 02:22

PerlやJavaScriptの知識は一切なく


ちょっと確実とは限らないのですが..m(_ _)m

自分の知っている範囲では、API関数の「SendKey」
を使い、「PrintScreen」を押した状態にさせれば
いいはずです
ただ、
http://www.red.oit-net.jp/tatsuya/java/FAQ.htm
で、
 Q:パソコンのAPIを直接、呼び出せますか?
 A:できません。
とかいてあるので、多分JavaScriptでは無理かと...

http://websearch.yahoo.co.jp/bin/query?p=Perl%a4 …
で検索してみたら、なんかPerlでAPIを使えそうなので
それで「SendKey」が使えれば、キャプチャが可能かと思います

すみませんが、保存の仕方まではちょっと...
APIでできそうなのですが、保存の仕方まではわかりません...
本当に申し訳ありません!

あと、VBやC++、HSP(?)らへんなら、APIを扱えるので
キャプチャが可能だと思われます

この回答への補足

ありがとうございました。どの言語の何について調べればいいのかさえ分からず大変困っていたところで、非常に助かりました。

恥ずかしながら、「API」という言葉自体分からなかったのですが、とりあえずVBのAPIについて調べたところ、
keybd_event(VK_SNAPSHOT, 1, 0, 0);
で画面をキャプチャー(クリップボードにコピー)できるとの記載を見つけました。

そこで、とりあえず試しに
Private Sub cmdCenter_Click()とEnd Subの間に、(callをつけてみたりなどもして)「keybd~」と入れてみたりしたのですが、やはり動作しませんでした。何かを呼んでいるようですし、予め何か宣言する必要などがあるんでしょうね?

この機会にVBの勉強をはじめようと思っているのですが、とりあえずサンプルソースなどの説明を読んでも、初心者のため理解ができず困惑しております。
つきましては、もしもお時間のあるときなどございましたら、恐れ入りますが、上記API利用時の宣言の有無などについてアドバイスいただけるとありがたいです。大変申し訳ありませんが、何卒よろしくお願いいたします。

http://www.vbvbvb.com/jp/warning/index.html

http://support.microsoft.com/default.aspx?scid=k …

http://www5b.biglobe.ne.jp/~kouta_y/news/newsvb/ …

補足日時:2003/06/30 02:38
    • good
    • 0
この回答へのお礼

大変申し訳ございません。

補足に記載させていただきましたURLですが、一番最初のものが間違っておりました。正しくは、http://www.vbvbvb.com/jp/gtips/1051/gkeybdeventV …
です。大変失礼致しました。

お礼日時:2003/06/30 02:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!