seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

Windows

C#でUACの昇格可能なEXEのCOMオブジェクトを作成する方法

概要 本サンプルはC#によるOut-of-processのCOMサーバーの作成と、それをUACの昇格可能なCOMにする手順を示すものである。 ※ ビルド可能なプロジェクト一式はGitHub上にあります。 github.com COM Elevation Monikerについて Vista以降、管理者権限が必要な…

C++でATLを使わずにレジストリフリーのCOMサーバーを作成してWSHから利用する方法

概要 C++で、ATLを使わずにCOM DLLを作成する。ただし、レジストリは一切使わない。 作成したCOM DLLはレジストフリーで利用できるように、Side by Side Assemblyのマニフェストをつける WSHから、Microsoft.Windows.ActCtxコントロールを使ってSxSでCOMを呼…

Visual Studio 2013 Expressで標準サポートされるテンプレートエンジン(T4)の活用方法

コードジェネレータの有用性とT4 業務系のアプリケーションを作成していると、多かれ少なかれデータモデルのようなものをソースコード上のエンティティクラスとして表すために似たようなコードをたくさん書かなければならないことがある。もちろん手で地道に…

JavaアプリをExe化するLaunch4jの使い方と仕組み

Launch4jとは? Launch4jとは、JavaアプリケーションのExeラッパーを作成するツールである。以下よりダウンロードできる。http://launch4j.sourceforge.net/ このLaunch4jを使うことで、実行可能JarをExeファイルとして起動できるようにラップすることができ…

AspireS3に搭載されているハイブリッドドライブ"ExpressCache"のメモリ浪費と有用性について調べてみた。

※ パフォーマンス計測を追加し内容も少し訂正しました。(2013/4/13) ASUS Aspire S3とExpressCache ASUSのUltrabookである、Aspure S3-391を購入してもらった。スペックは以下のとおりである。 Windows7 64ビット Intel Core i5-3371U 1.7GHz 4GBメモリ(増設…

Tivoli Access Manager(TAM)のASP.NETでの使い方メモ(備忘録)

概要 一年ほど前に、IBMのTivoli Access Manager(TAM)によるシングルサインオンのユーザ認証の仕組みをASP.NETのアプリに組み込んだ。 記憶があいまいになってきているので、まだ覚えてるうちに、ASP.NET側での要点を備忘録として残す。 要点 TAMはゲートウ…

Windows8のHyper-VのOn/Offを簡単に切り替えられるようする方法

※ 急いでいる人はオチを見てね! 概要 新しくマシンを新調したら、Windows8のクライアントHyper-Vを有効にできるCPUだったので、ためしにHyper-Vを有効にしてみた。 Hyper-Vはハイパーバイザ型なので、ホストOS自身も仮想化されることになる。このため、ゲス…

JNLPのJava AppletをChromeでも使うお作法 一式メモ

JDK1.6u10以降の新しいアプレットでは、 ファイルの読み書き、クリップボードへのアクセス、ローカルマシンのファイルのアクセスが可能になっている JNLP APIを使い、Java Web Startと同じ使用方法 サンドボックスは従来どおり有効、(ファイルアクセス等はユ…

少し古いノートPCにWindows8を入れたらCPUが本気を出してくれなくなったときの対応方法

要約 少し古いノートPCにWindows8を入れたら激遅になってしまった場合、 まず、タスクマネージャかパフォーマンスモニタで現在のCPUの速度を確認する Windows Vista/7/2008/8などの最近のOSはCPUの省電力機能に対応してクロック数を可変できるようにしている…

C#でアプリケーション設定を取得・保存する、いくつかの方法

基本はapp.config(web.config)に集約される DotNETではアプリケーション設定の類を扱うには、ざっくりと以下の方法があげられる。 app.config (ウェブアプリケーションの場合は、web.config) appSettingsによる単純な key=value 形式の文字列データによる方…

ファイルの変更を監視する方法

Win32 APIにはファイルの変更を監視する方法として、少なくとも2つの方法がある。私は従来よりファイル監視のためのAPIとして、FindFirstChangeNotification関数を愛用している。 だが、WindowsNT系のUNICODEビルドであれば使えるというReadDirectoryChangeW…

ADO.NETの型つきデータセットを自分で実装する方法

概要 Visual StudioのExpressでない有償版か、もしくはExpressであってもmdfファイルをローカルに持つSQLServerへのデータベースアクセスでは、Visual Studioのアドインまたは内蔵されるツールによって、データベースへのアクセスをタイプセーフにアクセスで…

iTunes for Windowsの重複トラックにマークをつける方法

約10年間の愚痴 Windows 2000の頃からWindows Media Playerのみを愛好してきて、WMA形式こそがもっとも優れたフォーマットだと勘違い(?)していた私も、Media Player 11(on Vista)のあまりのできの悪さに、ついにiTunesの軍門に下ることにした。以下、Windows…

Windows7を入れてみた。

一昨日はさすがにTechnet Plus Directにはログインさえままならない混雑だったが、昨日の朝にリトライすると上手くダウンロードできた。ベータもRCもチェックしていなかったが、リリースされたということなのでHyper-Vに入れて試してみた。 メモリ1GB、HDD64…

[Windows] HVRemote.wsfでリモートで仮想マシンを使ってみた。(Hyper-V挫折の記録)。

※ 2009/02/21追記 前提 ハードウェアはHPの格安サーバML115(たぶん初期型。G5ではない)。CPUはOpteronでデュアルコア。HPで選んだ標準のCPUのまま、換装はしていない。メモリは6GB。BIOSにAMD-Vを有効にするようなオプションは存在せず*1、 某ブログで紹介さ…

Windows VistaでWebDAVは標準では動かない。

Windows Vista(SP1)から、CentOS5.2上のApache2で作ったWebDAVフォルダにアクセスしようとすると、MacOSX10.5 LeopardやMicrosoft WindowsXP-SP3では問題ないのに、Vistaからではアクセスできない。なお、WebDAVは外出中からも使えるようにHTTPSオンリーにし…

Windows Scriptファイル(wsf)を使ってイベントログを保存したりメールを送信したりするサンプル(JScript使用版)

WSFソースコード <package> <job id="exportEventLog"> <runtime> <description>イベントログの指定したログを指定したファイル(*.evt)として保存します。 実行時ユーザは管理者権限がなければなりません。 </description> <named name="logName" helpstring="ログ名" type="string" required="true" /> </named></runtime></job></package>

XP(SP3)+IE7の環境で、Curlを使った画面でのIEのタイムアウトを回避する

とあるCurlというマイナーなRIAツールを使ったウェブアプリケーションを使うことになったが、そのアプリケーションはリクエストを投げて画面が帰ってくるまで5分〜30分以上かかる場合がある。それでも、Windows XP(SP2) + IE6の環境では問題なかった。ところ…

CentOS 5.2にWindowsからリモートデスクトップ

XDMCPの設定でリモートを許可。 ファイアウォールの設定で、ポート177(UDP)を許可。 Xming.exeとフォントをインストール。(CygwinのXwin.exeでも可。) http://www.straightrunning.com/XmingNotes/※[重要] 2008/10/16追記: Xming-20060328-setup.exeが必要で…

PowerShellでイベントログを扱う方法

PowerShellでイベントログを解析する PowerShellにはイベントログにアクセスする方法が用意されていて、 イベントログをオブジェクトとして扱うことができる。セキュリティログを取得したら、そのオブジェクトに対してイベントIDでフィルタリングできる。 $e…

Windows Vista (ultimate 多言語版) SP1

Ultimateで言語パックをいれたから、5カ国語版のServicePack1はインストールできず、多言語版を待つ必要があった。 ようやく他言語版がでたようなので週末に入れてみたのだが、とくに体感的には何も変わりない。 sp1の不具合 thumbs.dbの件 ところで、「Vis…

ACCESS(MDB)の実行計画を見る方法

ACCESS(MDB)でクエリの実行計画を見るには、以下のようにレジストリを変更する。*1 レジストリ変更 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Debug] "JETSHOWPLAN"="ON" このようにすると、実行時にsh…

RAMDisk [QSoft] Enterprise Liteをつかってみる。

動機 私の作業マシンは、ちょっと古いタイプで、CPUはPentium4 2.66GHz、HDDはSAMSUNG SV401Hで、メモリは512MBだった。 デフラグもかけたし、いらないサービスもとめている。 だが、なんか、よくわからないが、とにかく遅い。仕方ないので2GBのメモリに換装…

アップグレードしたVistaにできる謎の隠しフォルダ

Vista Home PremiumからUltimateにアップグレードしたマシンに、$Windows.~Qとかいう2.5GBぐらいある隠しフォルダがCドライブ直下にできていた。 何か不思議に思ったら、KBに、「 Windows Vista に以前のバージョンの Windows をアップグレードすると、いく…

C++からSQLite3を使ってみる。

Python2.5でSQLite3を使って以来、C++でも試したいと思っていた。 Windows用のSQLite3のDLLは、msvcrt.dllのみに依存する、という手軽なものであり、DLL自体のサイズも400KB足らずと軽量である。 これを実際にプログラムに組み込んで使ってみた。 必要なもの…

ActiveScriptSiteに独自のオブジェクトを公開する。

上の続き。ActiveScriptHostでスクリプトにオブジェクトを公開するには、ActiveScriptのAddNamedItemメソッドを呼び出して名前を予約する。これは、SetSiteを呼び出したあとに行う必要がある。なお、名前を登録するだけでオブジェクトは、この時点では必要な…

ActiveScriptHostのスクリプトに渡すIDispatchの作り方(レジストリなし)

ActiveScriptHostのスクリプトに渡すIDispatchの作り方のメモ。スクリプトはオートメーション型でのみ動作するので、IDispatchを実装したオブジェクトを渡す必要がある。 DUALインタフェースを手作業で作るのは煩雑すぎるが、ATLのウィザードを使うと余計な…

VistaのSUA(旧SFU)にOpenSSHを入れてみる。

Vista(RC2)では標準のシステムコンポーネントの1つとしてSUAを入れることができるが、現在のところ、実際にはMSのサイトからダウンロードする形式になっている。 SVR-5と、そうでないタイプの2つの形式を入れられることになっていて、beta2ではSVR-5がうまく…

ActiveScriptHostの最小(?)の雛形

#include <stdio.h> #include <tchar.h> #include <locale.h> #include <atlbase.h> #include <atlcom.h> #include <activscp.h> class __declspec(uuid("{B54F3741-5B07-11cf-A4B0-00AA004A55E8}")) VBScript; //class __declspec(uuid("{F414C260-6AC0-11CF-B6D1-00AA00BBBB58}")) JScript; class __declspec(uuid("{147F…</activscp.h></atlcom.h></atlbase.h></locale.h></tchar.h></stdio.h>

Apache2.2(Win32)でWebDAV

ダイジェスト認証を使う場合、"OPTIONS"メソッドは「認証なし」にする。 (親ディレクトリが保護されている場合も同様。) ← 重要!? 親ディレクトリを見に行っているようであり、そこで認証がコケると先に進まない。 ※ アクセスログに「_vti_inf.html」といっ…