タグ

Windowsとプログラミングに関するGajuのブックマーク (5)

  • STAとMTA

    COMにおけるクライアントとサーバー間の通信では、当事者の知らないところで数多くの複雑な処理が行われています。 たとえば、COMのクライアントはサーバーがDLLとして実装されていようと、 EXEとして実装されていようとほぼ同じコードを記述できますが、 これはCOMが通信に必要な処理を内部的に行っているからです。 また、サーバーのオブジェクトを実装する際には、 マルチスレッドによる同時アクセスを防ぎたい場合がありますが、 これもそうした旨をレジストリに登録していれば、 COMによって適切な調整が行われます。 つまり、単一のスレッドだけオブジェクトにアクセスすることが保障されることになります。 今回は、こうした事がどのような方法で可能になっているかを考えるために、 アパートメント(以下、アパート)について焦点を当てます。 オブジェクトが単一のスレッドのアクセスだけを想定しているか、 あるいはマ

  • Windows 8.1 でバージョン判別するときの注意点 | grabacr.nét

    Windows 8.1 固有の機能 (例えば、Per-Monitor DPI とか) を使いたい場合などで、実行中の OS が Windows 8.1 かどうか判別するためには、 OS バージョンが 6.3 であるかどうかを確認すればよい、ということになります。 バージョンを取得してみる というわけで、.NET Framework のアプリケーションでバージョンを取得します。 オーソドックスに、Environment.OSVersion を使いましょう。 バージョンを表示するだけの簡単なコンソールアプリを組みました。

  • 伸縮モード変更【Windowsプログラミング研究所】

    伸縮モード変更 概要:綺麗に画像を拡大・縮小する 画像を拡大または縮小させると、汚くなってしまいます。 それは標準の拡大・縮小アルゴリズムに問題があるからです。 今回はそのアルゴリズムを変更して、綺麗に拡大・縮小させる方法を解説します。 ■画像を読み込む 「BMPをDDBとして読み込む」のプログラムを流用しています。 読み込む画像ファイルだけ変更しました。 HBITMAP hBitmap; static HDC hMemDC; static BITMAP bmp; case WM_CREATE: //ビットマップを読み込む hBitmap=(HBITMAP)LoadImage(0,"Parrots.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); if(hBitmap==NULL){ MessageBox(hWnd,"ビットマップがありません",NULL,MB

  • CMD.EXEの遅延環境変数の展開 - KOBUN

    Win32 環境変数の即時展開 バッチファイルを書いていると、変数が思っても見なかった動きをして、困ってしまうことがあります。例えば @echo off setlocal set HOGEHOGE="foobar" if %HOGEHOGE% == "foobar" ( set HOGEHOGE="hogehuga" echo %HOGEHOGE% ) endlocal といった内容のバッチファイルがあったとします。これをぱっと見ると"hogehuga"という出力がされると期待してしまいますが、実際に実行してみると"foobar"という出力結果が得られます。なぜこのような結果になるかといいますと、各コマンドが実行されるときに環境変数が展開されるのではなく、バッチファイルのテキスト行が読み取られるときに展開が行われてしまうからで、上の例は次のように解釈されているために期待した結果が得られな

  • Process Monitor

    概要 Process Monitor はプロセスが行った処理 (ファイル システム、レジストリ、プロセスおよびスレッドの活動) をリアルタイムで表示するツールです。そのため、 Process Monitor はシステムのトラブルシューティングやマルウェア検出などに役立てることができます。 画面構成 Process Monitor は procmon.exe をダブルクリックして実行することで、利用開始できます。Process Monitor の画面構成は非常にシンプルで、コンピューター上で行われた処理内容が 1 行ずつ、上から順番に表示されます。処理の順番を確認できるので、どこまでの処理が成功していて、どこからの処理に失敗しているか、といったトラブルシューティングに役立てることができます。 使用法 Process Monitor を起動すると既定で記録が開始されます。開始と停止は capt

    Process Monitor
  • 1