ウェブブラウザ開発ブログ
 
ウェブブラウザ開発ブログ

Programming

Ancia用の TypeScript 定義ファイルのご紹介

この度 @htsign さん より Ancia用の TypeScript 定義ファイルを作成いただきましたのでご紹介します。 作成していただきありがとうございます。 TypeScript 定義ファイルとは? TypeScript 定義ファイルは、TypeScript に対応したエディタで使用できます。 Typescript(.ts)へ定義ファイルを読み込む 例: /// <reference path="AnciaScript.d.ts"/> ことで、コード補間やメソッド呼び出しのパラメータ型エラーの事前チェックなどを行えるようになります。特にコード補完はメソッドの説明も出るため、スクリプト作成の手助けになります。 TypeScript エディタは、Atom 用プラグインの atom-typescript や、 Visual Studio Code があります。 「TypeScript エディタ」で Google 検索 すると色々出てきます。 TypeScript 定義ファイルの入手方法 Gist にてAncia用定義ファイルが公開されています。 Ancia スクリプトリファレンス にはない CmdExec() も定義されていますが、非公開メソッドのため使用は自己責任となります。
この投稿を読む

高解像度 HiDPI(Per-Monitor) に対応

更新履歴 Download 1.9.109から高解像度HiDPI(Per Monitor)に対応しています。国産Tridentブラウザで、Per Monitorに対応をしているのは初ではないでしょうか。HiHPI対応で、dpiを96で使用している場合は特に表示に違いは出ません。dpiが120以上(テキストのサイズが125%など)の場合で表示に違いが出ます。 1.9.109以降では鮮明に表示されますが、1.9.108まではOSが表示を拡大するため、ページ部分など全体的にぼやけた表示になります。記事topの画像はdpiが120の場合のものです(鮮明に表示されるHiDPI対応と鮮明に表示されないの画面スクリーンショット)。 AnciaでのHiDPI対応は、Per-Monitor Awareですが、異なるdpiのMonitorにWindowを移動したとき、アイコンサイズはMonitorのdpiに応じた表示に変化するまでは対応していません。Internet Explorerも同様の動作のようです。異なるdpiのMonitorに移動したときアイコンサイズまでdpiに合わせることになると、Faviconやファイルのアイコンをサイズに従い再度取得することになるため、負荷が非常に大きいです。ツールバーのアイコンだけならそれほどの負荷もなくdpiに応じたサイズに切り替えられるでしょう。 Internet Explorerの場合だと、サイドバーのアイテムアイコンなどは、シェルのイメージリストを使用しているようなので、シェルのイメージリストがMonitor単位のサイズではなくSystem DPIに応じた固定サイズになることから、そもそもHiDPI(Per Monitor)でサイドバーアイコンサイズは切り替えられないのだと思います。 Per-Monitor Awareである新しいブラウザEdgeはその点を考慮し、IEのお気に入り(ファイルシステムやDPIによりサイズが固定になるシェルイメージリストなど)は使用せず、直にブックマークを持っているのではないでしょうか。
この投稿を読む

キョリ測が動かないときがある

キョリ測という距離を測るサービスがありますが、Anciaでページを表示できないことがあります。調べると右上の広告のiframe取得で、サーバからHTTP応答204を受け取ると発生することがわかりました。 ・204応答でNavigateError 204応答を受け取ると、その後のリクエストがstopしてしまい、キョリ測のFlash表示もstopしてしまいます。204応答でリクエストがstopする現象は、なぜかIEでは発生しません。IEでは、204応答を受け取っても、その後のリクエストを続行するためです。 200応答を受け取ると、Anciaでも表示できます。IEコンポで発生する現象なのか、対応には調べる時間が必要そうです。
この投稿を読む

WTL81 11324

Windows Template Library (WTL) | Free Development software downloads at SourceForge.netで、WTL81 11324が出てます。更新履歴が「Changes Between WTL 8.1 And 8.0 @@ TODO」としか書いてませんね。下はざっと見た変更点です。 ・atlribbon.hが追加 ・atlapp.h 〜 IsRibbonUIAvailable()やIsWin7()、CRegKeyEx追加 ・atlctrlx.h 〜 CHyperLinkImplでリンクマウスオーバー時に下線表示になるっぽい ・atlddx.h 〜 DDX_TAB_INDEX(nID, var),DDX_COMBO_INDEX(nID, var),DDX_LISTBOX_INDEX(nID, var),DDX_LISTVIEW_INDEX(nID, var)が追加 ・atldlgs.h 〜 CDialogBaseUnits追加 ・atlframe.h 〜 CAutoUpdateUI追加 ・atlmisc.h 〜 AtlLoadMenuなどatluser.hに移動 atlsplit.h 〜 SPLIT_GRADIENTBAR,SPLIT_FIXEDBARSIZEが追加 SPLIT_GRADIENTBARを使ってみると、splitbarがかっこよくなります(左がSPLIT_GRADIENTBARあり、右がSPLIT_GRADIENTBARなし)。これは今のアプリに使ってもいいかもしれません。 新しくapp wizardにribbonが選択できて、はじめの画像は、ribbonありでビルドしてみたものです。
この投稿を読む

ExplorerBarPlus 1.4.4

更新内容  ダウンロード 64bit環境で、ウインドウサイズが変わらないことがある対処を行っています。ただ、Anciaで使用している場合は、今後出る1.0.1の更新を待つ必要があります。ほかに、Firefox4のお気に入りが読めない、Vista以降でTree表示をExplorerっぽくしています。 64bit環境でウインドウサイズが変わらないのは、 Controls won’t get resized once the nesting hierarchy of windows exceeds a certain depth (x64) - Decrypt my World - Site Home - MSDN Blogs が原因で、まさかこんな動作があるとは、、
この投稿を読む

jQueryのコード

jQueryのコードで、 438: var toplevel = false; ・・・ 444: if ( document.documentElement.doScroll && toplevel ) { で 444: if ( toplevel && document.documentElement.doScroll ) { のほうがほんの少し効率がいいと思いました。他にも同じような部分がありそうで、判定順序を変えるだけの影響が少なそうな、お手軽修正ではないでしょうか。
この投稿を読む

ReleaseバージョンでのCrash箇所の特定方法

Releaseバージョンでcrashしたときの場所の特定方法です。minidumpファイルか、最悪落ちた場所のアドレス情報があることが条件です。画像はわざとcrashさせています。 プロジェクトでマップファイルを作成する設定にしておく → プロジェクトのリンカ、デバッグ、マップファイルの作成ではいとする プロジェクトでcodファイルを作成する設定にしておく → プロジェクトのC/C++、出力ファイル、アセンブリの出力で、アセンブリ コード、コンピュータ語コード、ソース コード(/FAcs)を選択 mapファイルから落ちた関数を特定 画像だと0x004180ff が落ちた箇所で、mapファイルで、落ちた箇所の範囲の関数を調べる。下のmapファイルの内容では、MsgLoop関数内と分かる。 0001:000170bd ?MsgLoop省略 004180bd f MainFrm.obj 0001:000171dd ?省略 004181dd f i MainFrm.obj 落ちたオフセットを求める 〜 0x004180ffと0x004180bdからオフセットは0x42となる codファイルでMsgLoopのオフセット0x42を調べる 下のcodファイルで0x42からソースコードの行が特定できる。 ; 5971 : *(int*)(0) = 100; 00042 c7 05 00 00 00     00 64 00 00 00 mov DWORD PTR ds:0, 100 ; 00000064H Anciaでは落ちたときのGetExceptionInformation()情報とモジュール一覧、minidumpファイルを出力する予定です。minidumpファイルがあれば、スタックトレースが出るので、かなり状況が分かるはずです。
この投稿を読む

ExplorerBarPlus 1.4.1

更新内容  ダウンロード Ancia0.8.0.6で分かったBSTRのパラメータ渡し誤りのバグを修正しています。そのほか、あまりバージョンアップしていなかったので、気になったところを直しています。SimpleFavPanelのアイコンを変更していますが、元のアイコンは、削除していないので、パネルのアイコン設定から変更できます。 BSTRのパラメータ渡し誤りというのは、 inline void func(BSTR bstr){ ・・・ } 関数1 inline void func(LPWCSTR psz) 関数2 { BSTR bstr=SysAllocString(psz); func(bstr); SysFreeString(bstr); } というのがあるとき、 TCHAR sz[256]; //CStringもなぜか、関数1が呼ばれる lstrcpy(sz, _T(“aaa”)); func(sz); が、関数2ではなく関数1を呼んでしまうというものです。これは、オーバーロードの仕様?で、constより、完全一致のBSTR(WCHAR*)が優先的に一致していることだと思います。関数1の名前を変更したので、全て直っているはずです。直した後はAnciaで落ちなくなりました。 v1.4.0の4/25日のインストーラで、インストールが不十分だったので、インストーラを差し替えています。もし、v1.4.0をインストールした方は、v1.4.1をインストール、または、再度v1.4.0のインストールをお願いします。
この投稿を読む

ExplorerBarPlusのタブモード表示対応

更新履歴 download ExplorerBarPlusのタブモードとお気に入りを表示できるようになりました。ほかのIEツールバー、サイドバーはまだ表示できません。ExplorerBarPlusの表示は、メニュー[表示(V)]->エクスプローラバーから行えます。スクリプトでの表示/非表示もまだ出来ません。 タブマネージャでCPUの詳細情報を表示するようにしました。この表示情報でできればcup-zの様にCPUのロゴを表示したいのですが、AMDの場合は、http://www.amd.com/jp-ja/0,,3715_7374_15589,00.htmlからそのままのイメージを使うことでよさそうですが、インテルの場合は、そう簡単にはいかないようです。なんとかインテルのロゴも表示したいのですが、、 CPU情報の表示はCPUIDを元にしていますが、確認マシンが少ないので、間違った表示になるかもしれません。Aero Glassの表示は、結構大変でした。これで、ドロップアクションの背景もAero Glassに出来るかも、、
この投稿を読む
ページ上部に戻る