ab.com コミュニティ https://www.activebasic.com/forum/ |
|
keybord_eventを使っての画面キャプチャがうまくできません https://www.activebasic.com/forum/viewtopic.php?t=2622 |
ページ 1 / 1 |
作成者: | まこちn+ [ 2010年2月28日(日) 12:33 ] |
記事の件名: | keybord_eventを使っての画面キャプチャがうまくできません |
コマンドボタンをクリックしたら画面をキャプチャして解析するプログラムを作っていますが 2回押さないと正常に動きません 何がおかしいのかさっぱりわからない状態です どなたか教えてください コード: Sub MainWnd_CommandButton12_Click() Dim Ret As Long : keybd_event(VK_SNAPSHOT,0,0,0) keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0) Ret=IsClipboardFormatAvailable(CF_BITMAP) if Ret = 0 then return endif 'クリップボードのデータを格納 Ret=OpenClipboard(NULL) hBit=GetClipBordData(CF_BITMAP)投稿先が違っていたようなので再送 konisiさん すばやいお返事ありがとうございます Sleep はすでに試したのですが変化ありませんでした MsgBoxでIsClipboardFormatAvailableのRetを表示すると 2回押しでもBitmapを検出できなくなるので もう何処をどう調べればいいか解らなくなってしまいました どうか 解決策をご指南ください |
作成者: | HSABP [ 2010年2月28日(日) 23:09 ] |
記事の件名: | |
keybd_event()を呼んだ後にメッセージを処理させます。 コード: 'ボタンが押された Sub MainWnd_CommandButton1_Click() keybd_event(VK_SNAPSHOT, &h79, KEYEVENTF_EXTENDEDKEY, 0) keybd_event(VK_SNAPSHOT, &h79, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) DoEvents() If IsClipboardFormatAvailable(CF_BITMAP) <> 0 then MessageBox(hMainWnd,"ok",0,0) End If End Sub Function DoEvents() Dim m As MSG While PeekMessage(m,NULL,0,0,PM_REMOVE) TranslateMessage(m) DispatchMessage(m) Wend DoEvents= TRUE End Function |
作成者: | まこちn- [ 2010年3月01日(月) 23:30 ] |
記事の件名: | とりあえず コピペでやってみたのですが・・・ |
ご指導ありがとうございます なにぶん素人なため とりあえずコピペでコンパイルしてみましたが うまくいかず 2回クリックでも読めなくなりました 知らない コードだらけなので 一つずつ調べてみます |
作成者: | まこちn+- [ 2010年3月01日(月) 23:59 ] |
記事の件名: | 解決しました |
HSABPさん ありがとうございました konisiさんのご指導のあとで 自分なりにタイミングを疑って その他のコマンドを前後させていたときに OpenClipBord が 2行になってしまったのが原因でした ほんとに ど素人なミスで 反省しております 本当に ありがとうございました |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |