msdnに記載されている通り、GetObject関数はIE9(標準モード)以降ではサポートされていません。 → MSDN:GetObject関数
HTML5を利用するためにHTAでレンダリングモードを変更するとGetObjectが使えなくなり、WMIからデータを取得したりすることができません。
HTML5を利用しつつGetObjectを使うためのサンプルを作成しました。
2017年4月22日土曜日
2017年4月21日金曜日
循環参照や参照の重複に対応したJSON化関数
先日公開したJSON化関数では、循環参照を含むオブジェクトを与えられると無限ループにはまってしまう問題がありました。また、複数のプロパティから単一のオブジェクトを参照しているケースではプロパティごとに異なるオブジェクトとして扱ってしまう問題がありました。
上記の問題を解消する方法を思いつき、サンプルを作成したので公開します。
上記の問題を解消する方法を思いつき、サンプルを作成したので公開します。
ラベル:
JavaScript,
JSONもどき
2017年4月20日木曜日
排他アクセス対象ファイルのひな形
先日公開した関数を使えば任意のファイルに対して排他的書き込みなどができます。
ただし、データそのものはただのテキストファイルですし関数も同じルールに従う関数同士でのみ仕組みが成り立つ内容になっています。
数年前に作成したプログラムで扱っているファイルに対して新たにプログラムを作成することになったのですが、排他的書き込みをコントロールしているプログラムファイルの所在が分からず(でもどこかで使われてはいる)、どういうルールだったか失念してしまい対応に苦慮しました。
そんな事が再発しないように、テキストファイル自体に書き込み用関数を入れて、いつどんなプログラムからでもその関数を使って書き込めば排他的書き込みが成立する、という雛形を作成しました。
ただし、データそのものはただのテキストファイルですし関数も同じルールに従う関数同士でのみ仕組みが成り立つ内容になっています。
数年前に作成したプログラムで扱っているファイルに対して新たにプログラムを作成することになったのですが、排他的書き込みをコントロールしているプログラムファイルの所在が分からず(でもどこかで使われてはいる)、どういうルールだったか失念してしまい対応に苦慮しました。
そんな事が再発しないように、テキストファイル自体に書き込み用関数を入れて、いつどんなプログラムからでもその関数を使って書き込めば排他的書き込みが成立する、という雛形を作成しました。
2017年4月19日水曜日
リロードじゃなければウィンドウサイズを変更する
F5キーを押すとHTAのウィンドウを閉じることなく再起動させることができます。
便利です。
resizeToという関数を使うとウィンドウのサイズを変更できます。
HTAは何も指定しなければモニタサイズに応じて大きく表示されますので、この関数を使わないとムダに大きく表示されてしまい不便なことがしばしばあります。
resizeToも便利です。
しかしresizeToを行うHTAでF5キーを使うと、リロード前に調整していたサイズから強制的にウィンドウサイズが変更されてしまい、わりと不便です。
できればresizeToを実行するのはHTA起動時のみにして、リロード時はリロード前のウィンドウサイズを保って欲しい…と思ったのでそれを叶える関数を作成しました。
便利です。
resizeToという関数を使うとウィンドウのサイズを変更できます。
HTAは何も指定しなければモニタサイズに応じて大きく表示されますので、この関数を使わないとムダに大きく表示されてしまい不便なことがしばしばあります。
resizeToも便利です。
しかしresizeToを行うHTAでF5キーを使うと、リロード前に調整していたサイズから強制的にウィンドウサイズが変更されてしまい、わりと不便です。
できればresizeToを実行するのはHTA起動時のみにして、リロード時はリロード前のウィンドウサイズを保って欲しい…と思ったのでそれを叶える関数を作成しました。
2017年4月18日火曜日
HDDやSSD、SDカード等のデータを完全に消去するプログラム
先日埋め尽くす.htaというプログラムを公開しましたが、そのプログラムの中から「ストレージの中身を完全に消去するための処理」だけ抽出して、処理完了までの残り時間を計算する機能を追加したプログラムを作成しました。
2017年4月17日月曜日
HTML5の機能で画像ファイルを埋め込みイメージタグに変換するサンプル
base64エンコードという処理をするとHTMLファイルに画像ファイルなどを埋め込むことが可能になります。
そのbase64エンコードをやってくれるwebサービスなどもありますが、ブラウザでHTML5の機能だけでやることも可能です。
その変換用サンプルを作成しました。
そのbase64エンコードをやってくれるwebサービスなどもありますが、ブラウザでHTML5の機能だけでやることも可能です。
その変換用サンプルを作成しました。
2017年4月16日日曜日
エラー事例:タグ名間違い要因のエラーメッセージが「未知の実行時エラー」
タグ名を間違えているエレメントのinnerTextプロパティを変更しようとしたら「未知の実行時エラー」が発生しました。
分かってしまえばどうということは無い内容ですが、初めて遭遇した時は問題のある箇所が全く見当たらず困惑しました。
時間が経つと忘れて同じ失敗を繰り返してしまうかもしれないので備忘録としてエラー事例を記録します。
分かってしまえばどうということは無い内容ですが、初めて遭遇した時は問題のある箇所が全く見当たらず困惑しました。
時間が経つと忘れて同じ失敗を繰り返してしまうかもしれないので備忘録としてエラー事例を記録します。
ラベル:
JavaScript,
エラー,
サンプル
2017年4月15日土曜日
2017年4月13日木曜日
2017年4月12日水曜日
2017年4月11日火曜日
JSON形式テキスト作成用関数
用途・目的
JSON形式テキストを作成する関数は先日作成済みでしたが、変数名などがゴチャゴチャしているのが気になっていました。
イチから書き直して関数や変数の名前と流れを整理して少しだけ短くシンプルに出来ました。
イチから書き直して関数や変数の名前と流れを整理して少しだけ短くシンプルに出来ました。
ラベル:
JavaScript,
JSONもどき
2017年4月10日月曜日
テキストエリア内のカーソル位置に追従して水平線を移動する
4Kモニタのように、高解像度で精密な映像を表示するモニタを使っている時はテキストエディタ画面上で点滅しているテキストカーソルも小さめに表示されるため、たまに見失うことがあります。
カーソルがどこにあるのか分かり易くするために、カーソルに水平線を追従させるサンプルを作成してみました。
カーソルがどこにあるのか分かり易くするために、カーソルに水平線を追従させるサンプルを作成してみました。
2017年4月9日日曜日
lineHeightが未定義のテキストエリアからlineHeightを取得するサンプル
1行あたりの高さを表すのがlineHeightプロパティですが「<textarea></textarea>」のようにlineHeightが定義されていないエレメントだと「lh = elem.lineHeight」のようにしても変数に入るのは長さ0のカラ文字列です。offsetWidthのような感じのプロパティはlineHeightにはありません。
それでもlineHeightが必要な場合があるので、取得するためのサンプルを作成しました。
それでもlineHeightが必要な場合があるので、取得するためのサンプルを作成しました。
ラベル:
HTA,
JavaScript,
サンプル,
テキストエリア
2017年4月8日土曜日
RGB値に対応する表示色を確認しながら調整するHTA
赤・緑・青の3要素の値を0~255の範囲で変えて任意の色を表現することができます……と言っても具体的にどういうことなのかイメージできない人も居ますし、できる人でも数値から実際の色を想起できる人は少数派のような気がしますので、値を変えつつ実際の色を確認しながらカラーコードを出力するサンプルを作成しました。
2017年4月7日金曜日
任意の文字列を含む名前のファイルやフォルダのリストを取得する
コマンドラインを使いこなせる方なら「dir /B C:\folder\*abc*.* > c:\temp\1.txt」のように入力するだけで良いのですが、使いこなせる人ばかりでもないのでインターフェースを作成しました。
2017年4月6日木曜日
時間の長さに応じた単位をつけた文字列を返す関数(詳細表示版)
用途・目的
ミリ秒単位の数値を、値の大きさに合わせて「1.5分」とか「2.1時間」などのように表示する関数を先日記事にしましたが、「○ヵ月○日○時間○分○秒」のような表示が欲しいケースもあるので、それに対応する関数を作成しました。
2017年4月5日水曜日
時間帯を色分けするhtaを改良
前verからの変更内容は以下の通りです。
・カウント中に積算時間が表示されるようにした。
・設定・記録内容を保存・読み込みできるようにした。
・指定した日時に終了・開始の記録を追加できるようにした。
・画面内レイアウト変更
などなど。
・カウント中に積算時間が表示されるようにした。
・設定・記録内容を保存・読み込みできるようにした。
・指定した日時に終了・開始の記録を追加できるようにした。
・画面内レイアウト変更
などなど。
2017年4月4日火曜日
改行コードが「LF」のみのテキストの表示を整える
2017年4月3日月曜日
時間帯を色分けするhta
毎日の活動内容をざっくり分類して、各活動の種類ごとに色を設定して、活動内容が変わるタイミングで対応する色を選択していき、最終的に各色ごとの合算時間を表示するHTAプログラムを作成しました。
2017年4月2日日曜日
時間の長さに適した単位をつけた文字列を返す関数
用途・目的
Dateオブジェクトを扱う際は単位がミリ秒の数値を扱うことが多いですが、ユーザーに見せる内容はミリ秒単位だと値が大きすぎてスケールが把握しづらいです。
分単位なのか、時間単位なのか、もっと大きな単位の数字なのかが分かり易い文字列を返す関数を作成しました。
分単位なのか、時間単位なのか、もっと大きな単位の数字なのかが分かり易い文字列を返す関数を作成しました。
2017年4月1日土曜日
一時画像フォルダ
資料作成のために一時的に画像ファイルをいくつか作成して、用が済んだら削除したい時があります。
今までは以下のやり方をしていました。
以下の方法で複数の画像を保存し、用が済んだらウィンドウを閉じるだけで勝手に削除されるようにするプログラムを作成しました。
今までは以下のやり方をしていました。
プリントスクリーン→ペイント起動→Ctrl + V→Ctrl + S→名前を入力して保存わりと面倒です。名前が重複しないように気を付けることとか、ペイントを他の用途で使って保存先フォルダの表示が変わると保存後のファイルを使う時や後始末する時に面倒だと感じます。
以下の方法で複数の画像を保存し、用が済んだらウィンドウを閉じるだけで勝手に削除されるようにするプログラムを作成しました。
一時フォルダを開く→「+」ボタンを押してpngファイルを追加→pngファイルを右クリック→Eキーでペイント編集開始→Ctrl + V→Ctrl + S
登録:
投稿 (Atom)