タグ

プログラミングとROTに関するMikatsukiのブックマーク (3)

  • クラスモニカ

    ある特定の状況でどのようなオブジェクトが必要になるかを分かっていながらも、 それを取得するための手順に悩まされることがあります。 たとえば、Excelから特定の範囲を表すRangeオブジェクトを取得しようとした場合、 Workbooksオブジェクト→Workbookオブジェクト→Worksheetオブジェクト→Rangeオブジェクトという流れを実行することになり、 来必要でないオブジェクトも取得するため煩わしいといえます。 アプリケーションがモニカを使用するようになれば、このようなオブジェクトの階層を文字列として表すことができるため、 目的のオブジェクトを取得するまでの手順を短くすることができます。 モニカの正体は、IMonikerで識別できるCOMオブジェクトです。 このオブジェクトの役割は指定された文字列から関連するオブジェクトを検索することですが、 この文字列の形式は常に固定とは限

  • 夕暮ログ エクスプローラ(Explorer.EXE)で開いているフォルダのパスを取得する

    画像は私が現在使っているX-Finderというファイラーです。(X-Finderについて詳しくは公式サイトをご覧ください) 大変高機能でカスタマイズを仕切れていませんが、そのメニューに「エクスプローラの取り込み」や「他のウインドウのパス」といった項目が存在します。 その名の通り、エクスプローラで開いているパスを取得することができます。 それをC#でやってみます。 今回はdynamicやDllImportは使わずにやります。 参照の追加と用意 まずはテスト用のプロジェクトを作ります。 普通にフォームアプリケーションにしてください。 続いて、エクスプローラを操作するのに必要な参照の追加を行います。 エクスプローラはWindowsからInternet Explorerと同じ扱いを受けています。 そのためCOMを利用してアクセスすることができます。 「参照の追加」の「COM」タブから ・Micro

  • [ 960_COM オブジェクトとモニカ ] - Mr.XRAY

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ActiveX; type TForm1 = class(TForm) Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); private { Private 宣言 } function AInvoke(pDispatch: IDispatch; objName: String; wFlags: WORD; pVarArray: OleVariant; nArgs: Integer; var pVarResult: OleVariant): HRE

  • 1