HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1108
たっつんど5秒間、デスクトップ画面キャプチャを撮り、連番で画像保存したい7解決


たっつんど

リンク

2017/11/8(Wed) 20:19:17|NO.81798

画面キャプチャと保存方法はググッたら出てきたのですが
1度のみの保存となっていて連番で保存する方法がよく分かりません。

これを行うのは難しいのでしょうか?



この記事に返信する


kanahiron

リンク

2017/11/8(Wed) 23:17:19|NO.81804

難しくないです
5秒という時間があまり正確で無くてよいのならこれでどうでしょうか

#include "winmm.as" captureTime = 5000 //秒数*1000のms(ミリセカンド)単位 //↓「///*」の「/」を2つ消すと11行目の「//*/」までコメントアウトされます ///* //枚数を指定する場合 captureNum = 5 //撮影枚数 waitTime = captureTime / (captureNum-1) //*/ //↓「/*」の前に「/」を足すと18行目の「//*/」までのコメントアウトが解除されます /*  //撮影間隔を指定する場合 waitTime = 1000 //ms単位 captureNum = captureTime / waitTime + 1 //*/ mes strf("撮影開始 撮影時間: %dms 撮影枚数: %d枚 撮影間隔: %dms", captureTime, captureNum, waitTime) st = timeGetTime() repeat captureNum saveName = strf("%04d.bmp", cnt+1) mes saveName + strf("%6dms", (timeGetTime()-st)) //bmpsave saveName //など保存処理 if (captureNum-1 == cnt): break await waitTime loop mes "撮影終了" stop



たっつんど

リンク

2017/11/9(Thu) 15:42:11|NO.81807

回答頂きありがとうございます!

21行目で「文法が間違っています」というエラーが表示されますが
st = timeGetTime()のtimeGetTimeを調べても違いが良く分かりませんでした。

私の環境が悪いのでしょうか?



kanahiron

リンク

2017/11/9(Thu) 16:18:28|NO.81808

HSP3.5からDLL(この場合WinAPIのwinmm.dll)の関数呼び出しが命令と関数を区別しなくなりました。
HSP3.4やそれ以前のバージョンではエラーになってしまいますね。忘れていました。
HSPの最新版をインストールしていただくか、直接質問内容には関係ないので関係する行を消してください。



ソラ

リンク

2017/11/9(Thu) 18:09:08|NO.81810


timeGetTime st = stat
多分こういう風にすれば動くかと。



たっつんど

リンク

2017/11/9(Thu) 18:34:12|NO.81811

kanahiron様
 回答ありがとうございます。
 たしかに、バージョンは3.4でした!最新にあげてみます。

ソラ様
 回答ありがとうございます。
 timeGetTime
 st = stat にした場合に21行目のエラーはきえましたが
 26行目のエラーが出ました。
 最後の()を取れば良いという話でもなさそうな為、結局良く分かりませんでした。
 申し訳ありません。



吹雪

リンク

2017/11/9(Thu) 21:36:25|NO.81813

とりあえずは該当の行を削除し、


timeGetTime mes saveName + strf("%6dms", (stat-st))
としてください。

DLL呼び出しの際の定義による命令と関数の違いについては、追って勉強して頂くか、最新版にしていただければと思います。



たっつんど

リンク

2017/11/10(Fri) 09:57:52|NO.81814

吹雪様

回答頂きありがとうございます。
エラーが消えて無事動作できるようになりました!

バージョンの違いや関数については勉強します。

回答頂いた皆様、本当にありがとうございました!!



ONION software Copyright 1997-2018(c) All rights reserved.