●Win10には、DVDを再生するソフトウェアがない(Media Playerも使えない)
●新たに購入するか、無料ソフトを使用する
●GOM playerを使用する場合の注意
・インストール後、コーデックを別にインストールしないといけない。
・Xvid Video Codec 1.3.7をインストールして画像は出たが、音声が出ない。
・ffdshow(X64でない方)をインストールすると、音声が出るようになった。
OSが64ビットでも、X64をインストールしてはだめ。何もついてない方をインストールする。
GOM Player(Windows 10) 音が出ない & DVDも音がでない
2020年2月3日月曜日
2020年1月17日金曜日
PCソフトウエア>EXCELのActive-Xのボタン(CommandButton)の大きさが変わった時にサイズを復帰するマクロを作る
Excel2010を使用していて、急にボタンの大きさが変わって見えなくなったので、とりあえず元に戻るマクロを作ってみた。(非常事態なのでやっつけ)
やり方がよくわからないので自己流でやってみた。
------それまで試した事------
・ボタンの大きさ・位置が変わるのは、excelのバグのようだ
・効果的な、予防法は無いようだ。
(ボタンをグループ化する、コンパイルする、bookの全てのシートの大きさを100%にする)
・あるサイトでformのボタンの大きさを変えるマクロがあったので参考にした。
(コマンドボタンの標題を改行し、サイズを自動調整する)
-----内容-----
・ボタンの大きさ(width)と左からの位置(left)が勝手に変わるので指定しなおす。
・垂直位置(top)など他の部分は変わらないので、特に何もしない。
・数値は、ボタンのプロパティの数値と実際の数値にずれがあるので、cut&tryで修正していく。(単位が違うため?)
・数値はダブルクオーテーションで囲む
-----手順----
①マクロの記録で、記録開始し、何もせずすぐに停止する。すると、標準モジュールに空のマクロが登録される。下の例では、Module3のMacro7()、Ctrl+zで登録された。
Sub Macro7()
' Macro7 Macro
' Keyboard Shortcut: Ctrl+z
End Sub
②開発→デザインモードをクリックしてから、Visual Basic→標準モジュール→Module3の所をダブルクリックして、入力画面にする。
③ボタンがsheet1にあるとして、「Sub」と「End Sub」の間に
-------------------↓ここから
Sheet1.CommandButton1.Width = "100"
Sheet1.CommandButton1.Left = "425"
Sheet1.CommandButton2.Width = "100"
Sheet1.CommandButton2.Left = "425"
Sheet1.CommandButton3.Width = "100"
Sheet1.CommandButton3.Left = "425"
Sheet1.CommandButton4.Width = "100"
Sheet1.CommandButton4.Left = "425"
Sheet1.CommandButton5.Width = "100"
Sheet1.CommandButton5.Left = "425"
Sheet1.CommandButton6.Width = "100"
Sheet1.CommandButton6.Left = "425"
Sheet1.CommandButton7.Width = "100"
Sheet1.CommandButton7.Left = "425"
Sheet1.CommandButton8.Width = "100"
Sheet1.CommandButton8.Left = "425"
Sheet1.CommandButton9.Width = "100"
Sheet1.CommandButton9.Left = "425"
Sheet1.CommandButton10.Width = "100"
Sheet1.CommandButton10.Left = "425"
Sheet1.OptionButton1.Width = "70"
Sheet1.OptionButton1.Left = "145"
Sheet1.OptionButton2.Width = "70"
Sheet1.OptionButton2.Left = "145"
Sheet1.OptionButton3.Width = "70"
Sheet1.OptionButton3.Left = "145"
------------------↑ここまで
を書き込む
(コマンドボタンやラジオボタンの数やあり/なしに応じて書き直す)
④開発→デザインモードをクリックして、デザインモード終了にする。
・ボタンが見えなくなったり、位置・大きさが変になった時、Ctrl+zで元の位置に戻る。
・ボタンは、グループ化してあってもOK。
やり方がよくわからないので自己流でやってみた。
------それまで試した事------
・ボタンの大きさ・位置が変わるのは、excelのバグのようだ
・効果的な、予防法は無いようだ。
(ボタンをグループ化する、コンパイルする、bookの全てのシートの大きさを100%にする)
・あるサイトでformのボタンの大きさを変えるマクロがあったので参考にした。
(コマンドボタンの標題を改行し、サイズを自動調整する)
-----内容-----
・ボタンの大きさ(width)と左からの位置(left)が勝手に変わるので指定しなおす。
・垂直位置(top)など他の部分は変わらないので、特に何もしない。
・数値は、ボタンのプロパティの数値と実際の数値にずれがあるので、cut&tryで修正していく。(単位が違うため?)
・数値はダブルクオーテーションで囲む
-----手順----
①マクロの記録で、記録開始し、何もせずすぐに停止する。すると、標準モジュールに空のマクロが登録される。下の例では、Module3のMacro7()、Ctrl+zで登録された。
Sub Macro7()
' Macro7 Macro
' Keyboard Shortcut: Ctrl+z
End Sub
②開発→デザインモードをクリックしてから、Visual Basic→標準モジュール→Module3の所をダブルクリックして、入力画面にする。
③ボタンがsheet1にあるとして、「Sub」と「End Sub」の間に
-------------------↓ここから
Sheet1.CommandButton1.Width = "100"
Sheet1.CommandButton1.Left = "425"
Sheet1.CommandButton2.Width = "100"
Sheet1.CommandButton2.Left = "425"
Sheet1.CommandButton3.Width = "100"
Sheet1.CommandButton3.Left = "425"
Sheet1.CommandButton4.Width = "100"
Sheet1.CommandButton4.Left = "425"
Sheet1.CommandButton5.Width = "100"
Sheet1.CommandButton5.Left = "425"
Sheet1.CommandButton6.Width = "100"
Sheet1.CommandButton6.Left = "425"
Sheet1.CommandButton7.Width = "100"
Sheet1.CommandButton7.Left = "425"
Sheet1.CommandButton8.Width = "100"
Sheet1.CommandButton8.Left = "425"
Sheet1.CommandButton9.Width = "100"
Sheet1.CommandButton9.Left = "425"
Sheet1.CommandButton10.Width = "100"
Sheet1.CommandButton10.Left = "425"
Sheet1.OptionButton1.Width = "70"
Sheet1.OptionButton1.Left = "145"
Sheet1.OptionButton2.Width = "70"
Sheet1.OptionButton2.Left = "145"
Sheet1.OptionButton3.Width = "70"
Sheet1.OptionButton3.Left = "145"
------------------↑ここまで
を書き込む
(コマンドボタンやラジオボタンの数やあり/なしに応じて書き直す)
・ボタンが見えなくなったり、位置・大きさが変になった時、Ctrl+zで元の位置に戻る。
・ボタンは、グループ化してあってもOK。
2020年1月11日土曜日
DIY>台所に棚を付けてみた
台所に物の置き場所がなく、非常に使いづらそうなので、ちょっとした棚を作ってみた。
1)必要な機能
・幅が狭くてもいいので、ちょっとした物(調味料・食材など)を手軽に置ける
・ワイヤーネットを取り付けたい
・手元灯がほしい
・電源タップがほしい
2)概要
・倒れるのは良くない
火をつかうので、倒れずらいものにしたい。突っ張り棒では、必要な強度が出ないのでは?
・火の近くには、可燃物の素材は良くない。
火の近くの部材は、金属を使う方がいいのでは?
・スペースが限られているので、前面にワイヤーネットが来ると、棚が使えない。
ワイヤーネットは移動可能にしたい。
・棚には重いものは置かない
必要以上に頑丈にする必要がない、また製作費用が多くなるのでお財布に良くない。
3)見取り図
1=調理台 2=? 3=化粧壁 4=棚 5=換気扇 6=ガスレンジ
赤→の部分は、壁に両面テープで固定したL字金具で支える
A=直径25mm/95cm(調理台と上の棚との間隔に合わせて)
a=182cm b=67cm c=29cm d=38cm
e1・e2=98cm(端材のため長さ適当)
・突っ張り式ではなく、倒れる心配のない自立式にした。
・B、e1、e2は2×4材を使用、接合部は金具を使用
・Aは25mm単管パイプを使用、2×4材との結合は、垂木用の金具を使用
4)製作過程
①Bの柱を作る
2×4材を切り出し、4本用意する。
このように、部材を結合する。
コの字型の2×4材結合材で材をつなぐ。結構厚みがあるので、材の長さに気を付けなければいけないと思う。柱と底辺の材をつなぐものなので、材の幅ぐらいある大きいものを使用した。他の部分は、この半分の幅のもので結合した。
家の柱と床にあてながら、水準器を使って、最後部材が直角に結合できるように、木ねじを締める。
②B側の柱を作る
パイプカッターで、25mmの足場パイプを切断する。調理台と吊戸棚の間隔より少し短めにする。
吊戸棚側には、イレクターパイプ用のアジャスターをはめる(当然ぶがぶか)
垂木用の金具を、柱下側に取り付けて、倒壊防止にする。
柱Aと柱Bの上部は、前面に倒れてこないよう、両面テープで固定したL字金具で留めておく。
③柱Aと柱Bに棚受けをつけ、棚にする2×4材を固定する。
④電源タップを取り付ける
Bの柱に、テーブルタップの穴に合わせ、木ねじを入れ、テーブルタップを取り付ける
⑤ワイヤーネットを取り付ける
まず、棚にカーテンレールを2本平行にねじ止めする。ただねじ止めだけでは、動かしづらいので、間に木片をかまし、浮かせるようにする。
カーテンランナーをワイヤーネットに固定する。手元にあったエナメル線で縛り付けてみた。
カーテンレールの両端にはビニールテープを巻き、はずれないようにする。レールとランナーには、ほんのわずかCRCをぬりつけておく。
右の柱に、手元ライトを取り付け、完成。
1)必要な機能
・幅が狭くてもいいので、ちょっとした物(調味料・食材など)を手軽に置ける
・ワイヤーネットを取り付けたい
・手元灯がほしい
・電源タップがほしい
2)概要
・倒れるのは良くない
火をつかうので、倒れずらいものにしたい。突っ張り棒では、必要な強度が出ないのでは?
・火の近くには、可燃物の素材は良くない。
火の近くの部材は、金属を使う方がいいのでは?
・スペースが限られているので、前面にワイヤーネットが来ると、棚が使えない。
ワイヤーネットは移動可能にしたい。
・棚には重いものは置かない
必要以上に頑丈にする必要がない、また製作費用が多くなるのでお財布に良くない。
3)見取り図
赤→の部分は、壁に両面テープで固定したL字金具で支える
A=直径25mm/95cm(調理台と上の棚との間隔に合わせて)
a=182cm b=67cm c=29cm d=38cm
e1・e2=98cm(端材のため長さ適当)
・突っ張り式ではなく、倒れる心配のない自立式にした。
・B、e1、e2は2×4材を使用、接合部は金具を使用
・Aは25mm単管パイプを使用、2×4材との結合は、垂木用の金具を使用
4)製作過程
①Bの柱を作る
2×4材を切り出し、4本用意する。
このように、部材を結合する。
コの字型の2×4材結合材で材をつなぐ。結構厚みがあるので、材の長さに気を付けなければいけないと思う。柱と底辺の材をつなぐものなので、材の幅ぐらいある大きいものを使用した。他の部分は、この半分の幅のもので結合した。
家の柱と床にあてながら、水準器を使って、最後部材が直角に結合できるように、木ねじを締める。
②B側の柱を作る
パイプカッターで、25mmの足場パイプを切断する。調理台と吊戸棚の間隔より少し短めにする。
吊戸棚側には、イレクターパイプ用のアジャスターをはめる(当然ぶがぶか)
垂木用の金具を、柱下側に取り付けて、倒壊防止にする。
柱Aと柱Bの上部は、前面に倒れてこないよう、両面テープで固定したL字金具で留めておく。
③柱Aと柱Bに棚受けをつけ、棚にする2×4材を固定する。
棚を付けるときは、水準器で水平を見ながら、高さを調節する。
棚は、一応完成④電源タップを取り付ける
Bの柱に、テーブルタップの穴に合わせ、木ねじを入れ、テーブルタップを取り付ける
⑤ワイヤーネットを取り付ける
まず、棚にカーテンレールを2本平行にねじ止めする。ただねじ止めだけでは、動かしづらいので、間に木片をかまし、浮かせるようにする。
カーテンランナーをワイヤーネットに固定する。手元にあったエナメル線で縛り付けてみた。
カーテンレールの両端にはビニールテープを巻き、はずれないようにする。レールとランナーには、ほんのわずかCRCをぬりつけておく。
右の柱に、手元ライトを取り付け、完成。
2020年1月8日水曜日
気象>令和2年(2020年)の国民の祝日・休日
| 名称 | 日付 | 備考 |
|---|---|---|
| 元日 | 01月01日 | |
| 成人の日 | 01月13日 | |
| 建国記念の日 | 02月11日 | |
| 天皇誕生日 | 02月23日 | 新しい天皇誕生日(12月23日は平日) |
| 休日 | 02月24日 | 祝日法第3条第2項による休日(振替休日) |
| 春分の日 | 03月20日 | |
| 昭和の日 | 04月29日 | |
| 憲法記念日 | 05月03日 | |
| みどりの日 | 05月04日 | |
| こどもの日 | 05月05日 | |
| 休日 | 05月06日 | 祝日法第3条第2項による休日(振替休日) |
| 海の日 | 07月23日 | |
| スポーツの日 | 07月24日 | 体育の日をオリンピックに合わせて改名 10月第二月曜日体育の日から移動 |
| 山の日 | 08月10日 | 山の日を1日前倒し |
| 敬老の日 | 09月21日 | |
| 秋分の日 | 09月22日 | |
| 文化の日 | 11月03日 | |
| 勤労感謝の日 | 11月23日 |
内閣府「国民の祝日」について
2020年1月4日土曜日
2019年10月25日金曜日
PCソフトウェア>word2010・excel2010に関するトラブル
(1)wordの以前のフォームに入力する時、フォームの保護にならない
word2003でフォームを入れて作成したテンプレートをword2010で開き、開発→編集の制限で保護をしようとすると、チェックボックスがクリックできないようになる。
○設定
(2)excel2010のActiveXで作ったボタンが、起動時、勝手に小さくなる。
〇設定
○やったこと
参考資料
*1:マクロを有効化するとコマンドボタンのオブジェクト名が勝手に変更される
word2003でフォームを入れて作成したテンプレートをword2010で開き、開発→編集の制限で保護をしようとすると、チェックボックスがクリックできないようになる。
○設定
- ファイル形式は.doc。
- セキュリティは一番甘くしておく。
- Windows7+office2003
- office365のwordで保存しなおし→だめ
- word2010で保存しなおし→だめ
- word2003で、フオームの保護にして保存→word2010で開くと保護状態で始まり、フォームへの入力ができる。ただし、いったん保護を解除してしまうと、再び保護ができない。word2003で保存し直すともとに戻る。
- word2003で、マクロ→visual basic editor→デバッグ→VBAprojectのコンパイルを実施→だめ
- word2010で上と同様の操作→だめ
(2)excel2010のActiveXで作ったボタンが、起動時、勝手に小さくなる。
〇設定
- ファイル形式は、新しい形式。
- セキュリティはいじっていない。
- Windows7+office2003
○やったこと
- ボタンのグループ化→だめ
- シートの大きさをどれも100%にする→だめ
- 開発→visual basic editor→デバッグ→VBAprojectのコンパイルを実施→たぶんOK*1。ただし、一部を修正したら、再びコンパイルしなければならない。
参考資料
*1:マクロを有効化するとコマンドボタンのオブジェクト名が勝手に変更される
2019年10月13日日曜日
PCソフトウェア>複数のパワーポイントのスライドを連続してリピート再生する試み
(1)はじめに
ある特定の場所で大勢の人に何かを広報したい場合、ポスターを貼るという選択肢もあるが、余ったPCとモニターを使用して、何かインフォメーションができないか思い、考えてみた。
(2)仕様
公開場所
屋内の待合所
ハードウエア
22インチのモニターを置き、PCでパワーポイントのスライドを連続で流してゆく。実際はデスクトップタイプのパソコン(モニター一体型)を使用。OSは、Windows7。
動作概要・必要な機能・仕様等
1.朝パソコンのスイッチを入れると起動終了後、自動的にスライドの上映が始まる
2.スライドは、パワーポイントにて上映
3.複数のパワーポイントのファイルを連続して再生
4.それを、指定時間内繰り返す
5.指定時刻(業務終了時刻)ころ、再生を中止する
6.指定時間に、パソコンをシャットダウンする
7.曜日ごとに動作時間を変える(具体的には、土曜日は半ドンなので11:30頃終わりにする)
8.各種設定変更が簡単にできる
9.パワーポイントだけでなく、ビデオもコンテンツのひとつとして、スライドの合い間に混ぜて再生する。
2.スライドは、パワーポイントにて上映
3.複数のパワーポイントのファイルを連続して再生
4.それを、指定時間内繰り返す
5.指定時刻(業務終了時刻)ころ、再生を中止する
6.指定時間に、パソコンをシャットダウンする
7.曜日ごとに動作時間を変える(具体的には、土曜日は半ドンなので11:30頃終わりにする)
8.各種設定変更が簡単にできる
9.パワーポイントだけでなく、ビデオもコンテンツのひとつとして、スライドの合い間に混ぜて再生する。
動作概要・必要な機能等の補足
1に関して
スタートアップにファイル登録しておけば、とりあえずOKかな?
2に関して
複数の話題を一つのパワーポイントにしておけば、いろいろ使い勝手はいいが、メインテナンスが面倒になる。つまり一々ファイル全体の書き換えをしなくてはならないからだ。しかし、話題ごとに別ファイルにして、連続再生とすれば、別のファイルを差し替えたり、付け加えるという事で管理が楽になる。いっそのことファイル群全体をフォルダーごと入れ替えてしまえば、操作が分からない人でも簡単に取り扱えるのではないかと思う。PCの性能や個別に作ったファイルを持ち寄って再生することを考えれば、office97-2003バージョン(拡張子.ppt)で統一して作るのがいいのでは。また、よく考えたら、パワーポイントにこだわらなくても、再生するPCにアプリがインストールされていれば、Openofficeのファイルでもいいような気がする。
3・4・5について
無料で簡単にできる手段といったら、バッチファイル ※1 であろう。昔からあるし、ノウハウもいろいろと蓄積されているので、情報が簡単に入手でき、組み上げるのも楽だ。それにwindowsにタダでついてくるので、うってつけだろう。フリーソフトを使う手もあるが、ここは無難に手堅くバッチファイルで、と思っていた時期もありました。(結構難しい)
6・7について
ネットでいろいろ調べた結果、windowsに付属の、タスクスケジューラーを使用すればいいことがわかった。曜日ごとに動作時間が変えられるのも便利だ。と思っていたが、なぜか作動しなかった。したがって、今回はバッチファイルの記述からshutdown.exeを起動する事で解決した。
8について
バッチファイルなら、メモ帳で簡単に変更可能だ。具体的には、ファイルを右クリックして、「編集」を選べばよい。
9について
意外と難しい。再生に使用するソフトウェアの仕様により、思ったような動作結果が得られない。
スタートアップにファイル登録しておけば、とりあえずOKかな?
2に関して
複数の話題を一つのパワーポイントにしておけば、いろいろ使い勝手はいいが、メインテナンスが面倒になる。つまり一々ファイル全体の書き換えをしなくてはならないからだ。しかし、話題ごとに別ファイルにして、連続再生とすれば、別のファイルを差し替えたり、付け加えるという事で管理が楽になる。いっそのことファイル群全体をフォルダーごと入れ替えてしまえば、操作が分からない人でも簡単に取り扱えるのではないかと思う。PCの性能や個別に作ったファイルを持ち寄って再生することを考えれば、office97-2003バージョン(拡張子.ppt)で統一して作るのがいいのでは。また、よく考えたら、パワーポイントにこだわらなくても、再生するPCにアプリがインストールされていれば、Openofficeのファイルでもいいような気がする。
3・4・5について
無料で簡単にできる手段といったら、バッチファイル ※1 であろう。昔からあるし、ノウハウもいろいろと蓄積されているので、情報が簡単に入手でき、組み上げるのも楽だ。それにwindowsにタダでついてくるので、うってつけだろう。フリーソフトを使う手もあるが、ここは無難に手堅くバッチファイルで、と思っていた時期もありました。(結構難しい)
6・7について
ネットでいろいろ調べた結果、windowsに付属の、タスクスケジューラーを使用すればいいことがわかった。曜日ごとに動作時間が変えられるのも便利だ。と思っていたが、なぜか作動しなかった。したがって、今回はバッチファイルの記述からshutdown.exeを起動する事で解決した。
8について
バッチファイルなら、メモ帳で簡単に変更可能だ。具体的には、ファイルを右クリックして、「編集」を選べばよい。
9について
意外と難しい。再生に使用するソフトウェアの仕様により、思ったような動作結果が得られない。
(3)パワーポイントでスライドを作る時の留意点
1.画面のサイズ
ファイル→ページ設定で、スライドのサイズ指定を「画面のサイズにあわせる」とし、その下の欄の幅と高さに、上映に使用するPCの画面の大きさをセンチメートルで入力しておく。後から変えると、貼り付けた画像とか、文字の位置などが変化し修正に手間取る。PCの画面の大きさがわからなければ、試行錯誤でいろいろ大きさを変えて実際のサイズを割り出しておく。今回のモニターは36cm×21cmのサイズである。
2.スライドの画面切り替えの設定
画面の切り替えのタイミングの二つともチェックを入れ、切り替え時間は表示時間として入力する。入力を終えたら、全てに適用をクリックしておく。
3.スライドショーの設定
図のように設定しておく。特に「Escキー・・・・」のとろこにチェックを入れると、同じスライドをリピートすることになってしまう。また、「ツール」→「オプション」→「表示」の「最後に黒いスライドを表示する」のチェックをはずしておく。
4.完成
完成したパワーポイントのファイルを上映するPCにコピーしておく。
ファイル→ページ設定で、スライドのサイズ指定を「画面のサイズにあわせる」とし、その下の欄の幅と高さに、上映に使用するPCの画面の大きさをセンチメートルで入力しておく。後から変えると、貼り付けた画像とか、文字の位置などが変化し修正に手間取る。PCの画面の大きさがわからなければ、試行錯誤でいろいろ大きさを変えて実際のサイズを割り出しておく。今回のモニターは36cm×21cmのサイズである。
2.スライドの画面切り替えの設定
画面の切り替えのタイミングの二つともチェックを入れ、切り替え時間は表示時間として入力する。入力を終えたら、全てに適用をクリックしておく。
3.スライドショーの設定
図のように設定しておく。特に「Escキー・・・・」のとろこにチェックを入れると、同じスライドをリピートすることになってしまう。また、「ツール」→「オプション」→「表示」の「最後に黒いスライドを表示する」のチェックをはずしておく。
4.完成
完成したパワーポイントのファイルを上映するPCにコピーしておく。
(4)バッチファイルの作成
1.基本になる部分
今回の肝となる部分。まずは、単純に連続再生させるだけを考える。
バッチファイルは、パワーポイントファイルと同じフォルダーに置く。
サブフォルダーにデーターが入っている場合は、A.pptのところに「サブフォルダ名\」を入れておく。
データーの数に合わせて、起動するファイルの記述を、バッチファイルの:loopとgoto :loopの間に付け加えておく。(下の例では3個)
ここでトラブル発生。何と、パワーポイントが起動しない。原因は、POWERPNT.exeのファイルパスが、officeのバージョンにより違うことだった。上映するPCに合わせて"C:\Program Files\Microsoft Office\OFFICE11\"の部分を書き換えると無事動いている。停止は、Ctrl+Alt+Delでタスクマネージャーを起動し、バッチファイルのタスクを中止する事で行う。
バッチファイルは、パワーポイントファイルと同じフォルダーに置く。
サブフォルダーにデーターが入っている場合は、A.pptのところに「サブフォルダ名\」を入れておく。
データーの数に合わせて、起動するファイルの記述を、バッチファイルの:loopとgoto :loopの間に付け加えておく。(下の例では3個)
REM ファイルのオフセットをバッチファイルの置いてある位置に移動(定番)※1
cd /d %~dp0
REM 本体
:loop
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
cd /d %~dp0
REM 本体
:loop
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
ここでトラブル発生。何と、パワーポイントが起動しない。原因は、POWERPNT.exeのファイルパスが、officeのバージョンにより違うことだった。上映するPCに合わせて"C:\Program Files\Microsoft Office\OFFICE11\"の部分を書き換えると無事動いている。停止は、Ctrl+Alt+Delでタスクマネージャーを起動し、バッチファイルのタスクを中止する事で行う。
2.開始時刻と終了時刻の設定
さて、これだけでは、面白くないので、終了時間を設定し、その時間になったらスライドを中止するようバッチファイルを書き換えることにした。Ctrl+Alt+Delでいちいち停止するのは、初心者には操作が難しくなるのでなるべく避けるためだ。
と言う訳で、そのルーチンを付け加えた。※2
今回は、開始時間の検証については特に必要ないが、一応残しておいた。
と言う訳で、そのルーチンを付け加えた。※2
REM ファイルのオフセットをバッチファイルの置いてある位置に移動(定番)
cd /d %~dp0
REM 処理可能開始時間の定義(とりあえず9:00に設定)
SET START=0900
REM 処理可能終了時間の定義(とりあえず18:00に設定)
SET END=1800
REM 本体
:loop
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 処理可能開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (処理可能終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
REM 終了
:err
exit
cd /d %~dp0
REM 処理可能開始時間の定義(とりあえず9:00に設定)
SET START=0900
REM 処理可能終了時間の定義(とりあえず18:00に設定)
SET END=1800
REM 本体
:loop
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 処理可能開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (処理可能終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
REM 終了
:err
exit
今回は、開始時間の検証については特に必要ないが、一応残しておいた。
3.曜日により、終了時刻を変更する
さて、曜日により終了時間を変えると言う問題だが、まず当日が何曜日か決定しなければいけない。方法は、VBSを使用する方法と計算による方法の二つがある。
◎vbsを使用する場合※3-1,3-2
いずれも、曜日とエラー値(=1)を区別するため、曜日は2~始まっている。
新しいファイルを1つ作り、そこから値を得るため、余分な操作が必要。
パターン-1
パターン-2
◎バッチファイルの中で計算により日付から曜日を割り出す場合 ※4-1,※4-2
計算により曜日を曜日により終了時間を変更する。その計算方法については、ツェラーの公式を使用する。vbsのものと違い、余分なファイルを作らない。今回は※4-2のリスト(普通に変数を定義)を使用する。
これを使用したのが、以下のリストとなる。
IF文の記述に関しては、こちらを参考にした。※5-1 ※5-2
今回の設定は、「もし、当日が土曜日なら11:30に終了する」を実現する。
4.シャットダウンについて ※6-1 ※6-2◎vbsを使用する場合※3-1,3-2
いずれも、曜日とエラー値(=1)を区別するため、曜日は2~始まっている。
新しいファイルを1つ作り、そこから値を得るため、余分な操作が必要。
パターン-1
①メモ帳などのエディッタにてwday.vbsの名前で、以下ような内容のファイルを作成する。
REM errorlevelの値が予想外のエラー時は1、曜日の場合は2(日曜日)~8となる
WScript.Quit(weekday(date)+1)
②バッチファイルの中に以下を記述するとyoubiに値が入るWScript.Quit(weekday(date)+1)
cscript /b wday.vbs
SET youbi=%errorlevel%
SET youbi=%errorlevel%
パターン-2
バッチファイル中に、以下の制御文を記述することで、youbiに曜日の値が入る。予想外のエラー時は1、曜日の場合は2(日曜日)~8となる。(※3-3) これを実行すると、同じフォルダーに"tmp.vbs"が生成される。
echo WScript.echo (weekday(date)+1) > tmp.vbs
for /f %%X in ('cscript //nologo tmp.vbs') do SET youbi=%%X
for /f %%X in ('cscript //nologo tmp.vbs') do SET youbi=%%X
◎バッチファイルの中で計算により日付から曜日を割り出す場合 ※4-1,※4-2
計算により曜日を曜日により終了時間を変更する。その計算方法については、ツェラーの公式を使用する。vbsのものと違い、余分なファイルを作らない。今回は※4-2のリスト(普通に変数を定義)を使用する。
これを使用したのが、以下のリストとなる。
IF文の記述に関しては、こちらを参考にした。※5-1 ※5-2
今回の設定は、「もし、当日が土曜日なら11:30に終了する」を実現する。
REM バッチファイルの置いてある位置に移動(定番)
cd /d %~dp0
REM 処理可能開始時間 9:00
SET START=0900
REM 処理可能終了時間 18:00
SET END=1800
REM 当日の曜日計算
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM 曜日による時間変更
REM 土曜日(=0)なら11:30に終了するのでENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM 本体
:loop
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 処理可能開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (処理可能終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
:ERR
exit
cd /d %~dp0
REM 処理可能開始時間 9:00
SET START=0900
REM 処理可能終了時間 18:00
SET END=1800
REM 当日の曜日計算
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM 曜日による時間変更
REM 土曜日(=0)なら11:30に終了するのでENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM 本体
:loop
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 処理可能開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (処理可能終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
:ERR
exit
1.タスクスケジューラーを使用した場合
(たぶん)正しく設定したにもかかわらず、動作しなかった。原因は不明。
2.shutdown.exeをコマンドラインから使用する場合
"C:\windows\system32\shutdown.exe"を:ERRとexitの間に入れる。
オプションには、-r -t 60 -fまたは/r /t 60 /fを・・・・shutdown.exe"の後ろに付ける。
タスクスケジューラーでは、何としてもシャットダウンできなかったが、コマンドラインからは簡単にできた。したがって、今回は、コマンドラインからの指定でゆくこととした。
shutdownコマンドのオプション
コマンド
|
解説
|
| -i /i |
GUIインターフェースを表示する。GUIインターフェースでのデフォルト・タイムアウトは30秒 |
| -l /l |
ログオフする |
| -s /s |
シャットダウンする。 |
| -a /a |
シャットダウン実行の中止(Abort) |
| -m \\コンピューター名 | リモートコンピューターにログオフ/電源オフ/再起動を指示する。-l,/lとは併用できない。 |
| -t xx /t xx |
処理開始までのタイムアウトをxx秒で指定する。デフォルトは30秒 |
| -c "コメント" /c "コメント" |
イベントログに書き込まれるコメントを記入する |
| -f /f |
実行中のプロセスを警告なしで閉じる |
| -d u /d u p:xx:yy |
イベントログに書き込む電源オフ/再起動の理由コードを表示する。ユーザー・コードなら「u」、計画されたコードなら「p」をサブオプションに指示し、重大な理由コードをxxに、重大でない理由コードをyyに記入する。 |
変更したソースリストは、以下の通り。
REM バッチファイルの置いてある位置(フォルダー)に移動(定番)
cd /d %~dp0
REM 処理可能開始時間 9:00
SET START=0900
REM 処理可能終了時間 18:00
SET END=1800
REM 当日の曜日計算
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM 曜日による時間変更
REM 土曜日(=0)なら11:30に終了するのでENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM 本体
:loop
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 処理可能開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (処理可能終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
:ERR
"C:\windows\system32\shutdown.exe"/s /t 120 /f
exit
cd /d %~dp0
REM 処理可能開始時間 9:00
SET START=0900
REM 処理可能終了時間 18:00
SET END=1800
REM 当日の曜日計算
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM 曜日による時間変更
REM 土曜日(=0)なら11:30に終了するのでENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM 本体
:loop
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 処理可能開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (処理可能終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
:ERR
"C:\windows\system32\shutdown.exe"/s /t 120 /f
exit
5.このバッチファイルの弱点
1.時間ぴったりには終了できない
このバッチファイルは、一通り上映が終わったところで、終了時刻と終了設定時刻とを参照比較するので、上映するパワーポイントのファイル数がとんでもなく多いと、時間通りに終了することができない。
代案としては、スライド表示の手前で、callコマンドで、サブルーチン化した時刻判定の部分をその都度呼び出し、時刻を確認して時間内ならreturn(exit /b)、そうでないならGOTO :ERRで終了とするのはどうだろうか。というわけで、ソースリストを書きなおしてみた。※13
このバッチファイルは、一通り上映が終わったところで、終了時刻と終了設定時刻とを参照比較するので、上映するパワーポイントのファイル数がとんでもなく多いと、時間通りに終了することができない。
代案としては、スライド表示の手前で、callコマンドで、サブルーチン化した時刻判定の部分をその都度呼び出し、時刻を確認して時間内ならreturn(exit /b)、そうでないならGOTO :ERRで終了とするのはどうだろうか。というわけで、ソースリストを書きなおしてみた。※13
REM バッチファイルの置いてある位置(フォルダー)に移動(定番)
cd /d %~dp0
REM 処理可能開始時間 9:00
SET START=0900
REM 処理可能終了時間 18:00
SET END=1800
REM
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM 曜日による時間変更
REM 土曜日(=0)なら11:30に終了するのでENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM 本体
:loop
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
REM -----------開始/終了時刻判定ルーチン-------
:tout
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
exit /b
REM ----------バッチファイル終了/電源断--------
:ERR
REM pause
"C:\windows\system32\shutdown.exe"/s /t 120 /f
exit
cd /d %~dp0
REM 処理可能開始時間 9:00
SET START=0900
REM 処理可能終了時間 18:00
SET END=1800
REM
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM 曜日による時間変更
REM 土曜日(=0)なら11:30に終了するのでENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM 本体
:loop
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
REM -----------開始/終了時刻判定ルーチン-------
:tout
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
exit /b
REM ----------バッチファイル終了/電源断--------
:ERR
REM pause
"C:\windows\system32\shutdown.exe"/s /t 120 /f
exit
2.時間外では、ソースリストの修正が困難。
ソースリストの修正が残っている場合は、最後のshutdown.exeの前に、PAUSEを挿入しておく。(リストすぐ上の、赤字の部分 "REM pause"の"REM"をはずしておく。)
"REM"がない場合、終了まで1分あるので、その間にソースリストの最後の「REM PAUSE」のREMをはずし、いったん保存。
シャットダウン後、再び電源を入れると、バッチファイルが一時停止するので、バッチファイルを強制終了し、ソースリストを修正する。少し面倒だが、これでよいと思う。
ソースリストの修正が残っている場合は、最後のshutdown.exeの前に、PAUSEを挿入しておく。(リストすぐ上の、赤字の部分 "REM pause"の"REM"をはずしておく。)
"REM"がない場合、終了まで1分あるので、その間にソースリストの最後の「REM PAUSE」のREMをはずし、いったん保存。
シャットダウン後、再び電源を入れると、バッチファイルが一時停止するので、バッチファイルを強制終了し、ソースリストを修正する。少し面倒だが、これでよいと思う。
6.バッチファイル中でビデオ再生をする件(未完成)
バッチファイルの中に、ビデオ再生のコマンドを混ぜておき、パワーポイントのスライドやビデオを次々再生していく。ここでは、A.mp4という動画ファイルを再生するものとする。
1.ウインドウズメディアプレイヤーでビデオを再生する。
メディアプレーヤーのオプションスイッチ
その1
以下の様なリストとする。※7
◎wmplayer.exeを起動するコマンドラインを書く。wmplayer.exeはパソコンによっては位置が違うので必ず確認しておく。
◎再生するA.mp4は、絶対パスで指定する。バッチファイルで指定したパスが適用されないためだ。
しかし、ひとつ問題がある。それは、/closeスイッチが無効になっていることだ。つまり、再生が終わるとそのまま、待機状態になっているため、バッチファイルはそこでストップしている。
これに関しては、諸兄方がいろいろご苦労されているが、解決には至っていないようだ。※8・※12
その2
startを使用する。
◎再生開始後、すぐにバッチファイルに制御が移るので、timeoutコマンドで一定時間後、次の処理(スライド表示)に移るようする。(timeoutの時間はビデオの長さ=秒)※14
◎wmpをフルスクリーンで実行すると、パワーポイントのスライドが表示できない。
◎startコマンド直後に "" をはさんでおく。※10
2.他のメディアプレーヤーを使用する
KMplayer ※15 をデフォルトのプレーヤーとし、インストールしておく。その上で、以下のようなリストを記述する。※8
◎KMplayerをデフォルトのプレーヤーとしておく
◎timeoutの時間は、ビデオの再生時間(秒)にする
◎taskkillを実行すると、プレーヤーのウインドウが閉じられる
今回は、KMplayerを使用する事にした。リストは以下のようになる。
メディアプレーヤーのオプションスイッチ
| /play | 起動後直ちにファイル再生 | |
| /close | 再生終了後メディアプレイヤーを閉じる | WMP10では、サポートされていない |
| /fullscreen | フルスクリーンで再生する |
その1
以下の様なリストとする。※7
"C:\Program Files\Windows Media Player\wmplayer.exe" /play /close /fullscreen "C:\Users\kk\Desktop\A.mp4"
◎wmplayer.exeを起動するコマンドラインを書く。wmplayer.exeはパソコンによっては位置が違うので必ず確認しておく。
◎再生するA.mp4は、絶対パスで指定する。バッチファイルで指定したパスが適用されないためだ。
しかし、ひとつ問題がある。それは、/closeスイッチが無効になっていることだ。つまり、再生が終わるとそのまま、待機状態になっているため、バッチファイルはそこでストップしている。
これに関しては、諸兄方がいろいろご苦労されているが、解決には至っていないようだ。※8・※12
その2
startを使用する。
start "" "C:\Program Files\Windows Media Player\wmplayer.exe" /play /close "C:\Users\kk\Desktop\A.mp4"
timeout 1200
timeout 1200
◎再生開始後、すぐにバッチファイルに制御が移るので、timeoutコマンドで一定時間後、次の処理(スライド表示)に移るようする。(timeoutの時間はビデオの長さ=秒)※14
◎wmpをフルスクリーンで実行すると、パワーポイントのスライドが表示できない。
◎startコマンド直後に "" をはさんでおく。※10
2.他のメディアプレーヤーを使用する
KMplayer ※15 をデフォルトのプレーヤーとし、インストールしておく。その上で、以下のようなリストを記述する。※8
start "" "c:・・・・・\A.mpg"
timeout 1200
taskkill /f /im/ kmplayer.exe
timeout 1200
taskkill /f /im/ kmplayer.exe
◎KMplayerをデフォルトのプレーヤーとしておく
◎timeoutの時間は、ビデオの再生時間(秒)にする
◎taskkillを実行すると、プレーヤーのウインドウが閉じられる
今回は、KMplayerを使用する事にした。リストは以下のようになる。
REM ---------------フォルダー移動--------------
REM バッチファイルの置いてある位置(フォルダー)までパスを移動(定番)
cd /d %~dp0
REM ------------開始・終了時刻設定-----------
REM 処理可能開始時間を9:00に設定
SET START=0900
REM 処理可能終了時間を18:00に設定
SET END=1800
REM ---------------当日の曜日計算--------------
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM ------------曜日による時間変更-----------
REM 土曜日(=0)なら11:30に終了させるので変数ENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM -----------------本体--------------------
REM callとファイルの起動は一組として記述していく/ビデオはtimeoutの値設定する/上映順に記述
:loop
call :tout
start "" "C:\Users\・・・・・\A.mp3"
timeout 100
taskkill /f /im/ KMplayer.exe
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
REM -----------開始/終了時刻判定ルーチン-------
:tout
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
exit /b
REM ----------バッチファイル終了/電源断--------
:ERR
REM pause
"C:\windows\system32\shutdown.exe"/s /t 120 /f
exit
REM バッチファイルの置いてある位置(フォルダー)までパスを移動(定番)
cd /d %~dp0
REM ------------開始・終了時刻設定-----------
REM 処理可能開始時間を9:00に設定
SET START=0900
REM 処理可能終了時間を18:00に設定
SET END=1800
REM ---------------当日の曜日計算--------------
REM 本日の日付 TODAYに入る
set TODAY=%date%
REM 日付の分解 h y m1 m2 d
set /a h=%TODAY:~0,2%
set /a y=%TODAY:~2,2%
set m1=%TODAY:~5,1%
set m2=%TODAY:~6,1%
if "%m2%" equ "/" (
set /a m=m1
set /a d=%TODAY:~7,2%
) else (
set /a m=m1*10+m2
set /a d=%TODAY:~8,2%
)
if %m%==1 ( set /a y-=1&set /a m+=12 )
if %m%==2 ( set /a y-=1&set /a m+=12 )
REM ツェラーの公式 youbiに曜日が入る youbi--->0=sat 1=sun 2=mon 3=tue 4=wed 5=thu 6=fri
set /a youbi=( y + (y/4) + (h/4) - 2*h + (13*(m+1)/5) + d ) %% 7
REM ------------曜日による時間変更-----------
REM 土曜日(=0)なら11:30に終了させるので変数ENDの定義しなおし
if %youbi%==0 (SET END=1130)
REM -----------------本体--------------------
REM callとファイルの起動は一組として記述していく/ビデオはtimeoutの値設定する/上映順に記述
:loop
call :tout
start "" "C:\Users\・・・・・\A.mp3"
timeout 100
taskkill /f /im/ KMplayer.exe
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s A.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s B.ppt
call :tout
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.exe"/s C.ppt
goto :loop
REM -----------開始/終了時刻判定ルーチン-------
:tout
REM 現在の時間を取得(数字が1桁の場合は'0'埋め)
SET NOW=%TIME: =0%
SET NOWSTR=%NOW:~0,2%%NOW:~3,2%
REM SET CONSOLE_NOWSTR=%NOW:~0,2%時%NOW:~3,2%分
REM (現時間 < 開始時間)ならエラー
IF 1%NOWSTR% LSS 1%START% (GOTO ERR)
REM (終了時間 < 現時間)ならエラー
IF 1%END% LSS 1%NOWSTR% (GOTO ERR)
exit /b
REM ----------バッチファイル終了/電源断--------
:ERR
REM pause
"C:\windows\system32\shutdown.exe"/s /t 120 /f
exit
(5)参考にしたサイト
※1:バッチファイルで処理を自動化する[PC-More]
※2:指定した時間帯に動く(or 動かない)プログラミング[猫にWeb]
※3-1:Windowsのバッチファイルで曜日や日付によって処理を切り替える[Tech TIPS]
※3-2:バッチファイルでの曜日取得について質問します[yahoo!知恵袋]
※3-3:曜日を表示/条件分岐に使いたい[DOSプロンプト活用相談室LOG]
※4-1:バッチファイルだけで今日の曜日を取得する[FINE.jp::とあるIT系脱求職者の日記(仮称)]
※4-2:バッチで「ツェラーの公式」により曜日を計算する[Casual Developrs Notes]
※5-1:Windowsバッチファル制御構文[Camp Network]
※5-2:バッチファルで数値を比較する[知識ゼロからのWindowsバッチファイル超入門]
※6-1:コマンドラインからの電源オフや休止を実行する[Tech TIPS]
※6-2:コマンドプロンプトshutdown-(シャットダウン・再起動やログオフをする)
※7:バッチファイルからWindows Media Playerを起動させる方法[動かざることバグの如し]
※8:バッチファイル(拡張子.bat)でアプリを起動して終了して閉じました!その1~3[丁寧な暮らし]
※9:バッチファイルでIEを起動してローカルファイルを開く[Hatena Diary]
※10:コマンドプロンプトで複数のプログラムを一度に起動する[コマンドプロンプトの効率的活用方法の紹介]
※11:iexplore.exeのコマンドラインスイッチ(オプション、引数の指定方法)
※12:バッチでwavなどの音声を再生しよう(コマンドプロンプトから音を鳴らす方法)[Hatena Blog 主に言語とシステム開発に関して]
※13:バッチファルで関数もどき(サブルーチン)を実現する[まくまくノート]
※14:バッチファイルでタイマーを作る[QXエディタ入門] ※14-2:Windowsのコマンドプロンプトでsleepする3つの方法[ぺけみさお]
※14-3:バッチファイルでwaitを入れる
※14-4:指定した時間だけ待つ
※15:多くのフォーマットに対応した高機能マルチメディアプレイヤー!「The KMPlayer」[本格的に無料ソフト フリーソフト]
登録:
投稿 (Atom)












