2010年1月22日

WindowsのサービスからGUIを持つプロセスを起動

Windows Vista/7ではセッション0の分離が行われたため、単純にサービスからGUIプロセスを起動できなくなりました。そこで
  1. Win32APIのWtsGetActiveConsoleSessionID関数で現在ログオンしているユーザのセッショントークンを取得。
  2. サービス(SYSTEMアカウント上で動作している)のプロセスのユーザトークンを取得。
  3. ユーザトークンを複製。
  4. ログオンユーザのセッションを複製したトークンに設定。
  5. 複製したトークンを使用してWin32APIのCreateProcessAsUser(ja)関数でプロセスを起動。
という手順を踏み、サービスからGUIを持つプロセスを起動する方法を説明した記事。興味深い。とりあえずメモ。

From Zero To One » Blog Archive » How to start a GUI process from service, under Windows Vista/7

Microsoft OOB Update 2010/01

Microsoftの定例外のセキュリティアップデートがリリースされています。
MS10-002

2010年1月21日

RAD Studio/Delphi/C++Builder 2010 Update 4/5適用後のTTimerの振る舞いについて

Team Japanの高橋さんの

Team Japan » TTimerコンポーネント

によれば、TTimerのSetEnabled(True)の実装がRAD Studio/Delphi/C++Builder 2010 Update 4/5適用で変更され、これに伴なってメインスレッド以外のスレッドからTTimerをスタートしようとするとうまくいかないという報告があるようです。

QC81256: Changing TTimer.Enabled from thread does not work anymore since Update 4 for Delphi 2010
QC80376: RAD Studio 2010 IdTCPServer1Execute Error (After latest updates)

2010年1月19日

RAD Studio/Delphi/C++Builder 2009 Hotfix 3

RAD Studio/Delphi/C++Builder 2009のHotfix 3がリリースされています。IntraWebでUTF-8のWebRequestの内容を解析するTUTF8ContentParserの中国語(繁字体)マルチバイト文字の処理の問題を解決するようです(高橋さんによれば従来サポートでのみ配布していたものが正式公開になったようです)。IntraWebを10.0.21に更新した上でUTF8ContentParser.pasをプロジェクトフォルダに配置してリンク対象にし、かつ実行時パッケージを使用しないようにする、という変則的なものです。

Delphi/C++Builder/RAD Studio 2009用 Hotfix 3
27563 Hotfix 3 for Delphi 2009 and C++Builder 2009
Team Japan » Delphi/C++Builder 2009向けHotfix 3 for IntraWeb 10

なおこの問題は最新のRAD Studio/Delphi/C++Builder 2010では発生しない(The problem does not occur in the latest 2010 version.)とのことです。

2010/01/20追記: IntraWeb 10.0.21についてはTeam Japanのこちらの記事も参考になります。

Team Japan » IntraWeb Ver10.0.21 がリリースされました

2010/01/25追記: EDNの日本語の記事が出たのでリンクを差し替えました。

2010年1月13日

Microsoft Monthly Update 2010/01

今日はMicrosoftのセキュリティアップデートの日です。
MS10-001

2010年1月7日

2010/01開催のウェブセミナー

2010/01/14 18:00-19:00(JST) 1/14 - Webセミナー「詳細!DataSnap」
2010/01/21 17:00-18:00(JST) 1/21 - Webセミナー「エンバカデロ・テクノロジーズによるツール・クラウド All-Access」Replay download
2010/01/27 18:00-19:00(JST) 1/27 - Webセミナー「DB Optimizerによるデータベース パフォーマンスチューニングの概要と評価方法」

時間があれば…。

2010/01/14追記: 「詳細!DataSnap」は気がついたら終わっていた。だめじゃん…。

2010/01/26追記: うぅむ、時間がない…。

2010/02/25追記: 2010/01/21分のリプレイのリンクを追加しました。

2009年12月25日

TTouchKeyboardのハッキング

Chris BensenさんによるDelphi 2010の新機能の一つ、タッチキーボードのhackについての解説です。

Hacking the TTouchKeyboard Part Iではまずキーボードレイアウトの名称の一覧を取得し、この名称からキーボードレイアウトをロードします。

Hacking the TTouchKeyboard Part IIでは取得したキーボードレイアウトをXMLで読み書きする、というサンプルプログラムが紹介されています(タッチキーボードとは直接関係ない部分だからか説明省略です)。

Hacking the TTouchKeyboard Part IIIでは逆にXML表現のキーボードレイアウトをコンパイルしてリソースとしてリンクすることができる形式に変換するキーボードレイアウトコンパイラが紹介されています。

Hacking the TTouchKeyboard Part IVではXML表現のキーボードレイアウトファイルの各要素が説明されています。

(以下追記予定)

2009年12月24日

2009年12月23日

IDE Fix Pack 2.9リリース

Andreas HausladenさんのIDE Fix Pack (for Delphi/C++Builder 2007/2009/2010)がアップデートされてVersion 2.9になっています。

Andy’s Blog and Tools » New IDE Fix Pack 2.9

2009年12月18日

Windows Vista以降のOSでgsecがサービス動作のFirebirdに接続できないとき

Windows Vista以降のOSにFirebirdをインストールし、サービスとして動作させた後に、ユーザを作成するためにgsecでサーバに接続しようとするとローカルプロトコルが動作せずにエラーになることがあります。この場合は一旦Firebirdのサービス("Firebird Guardian"か、存在しなければ"Firebird Server")を停止し、firebird.confの

# IpcName = 
となっている行を

IpcName = Global\FIREBIRD
としてFirebirdを起動するとローカルプロトコルが正常に動作し、gsecで接続できるようになります(Firebird 2.x)。Firebird 1.5では

IpcName = Global\FirebirdIPI
とします。

元ねたはキムラデービーブログ | [IBDeveloper] FirebirdはWindows Vistaの上で動作しますか?設定ファイル(aliases.conf/firebird.conf)のリファレンス - Firebird WikiDoes Firebird work on Windows Vista or Windows 7?あたり。

RAD Studio/Delphi/C++Builder 2007 informal, unofficial fix for Windows 7

RAD Studio/Delphi/C++Builder 2007をWindows 7の64bit版で動作させるとデバッガで例外が発生してしまう問題(RAD Studio/Delphi/C++Builder 2009ではHotfix 2で修正されていた)の私的で非公式な修正をChris Hesikさんがリリースしています。

Chris’ CodeGear Debugger Blog » RAD Studio 2007 informal, unofficial fix available: Windows 7 problem addressed
ID: 27521, RAD Studio 2007 Debugger Fix for Windows 7

内容的にはOlaf Monienさんのバイナリパッチと同等のものに加えて、いくつかのWindows 7環境における問題のfixを含んでいるようです。なおThis fix has not been tested at all, and it is not supported in any way by Embarcadero. If it works for you, great… if not, you’ve been warned.(超訳:この修正は完全にテストされてはおらず、エンバカデロによりサポートされません。あなたの環境で動作すれば素晴らしい…んですが、もし駄目だったとしても、警告しましたよ)だそうです。

また(もうないとは思いますが)新しいアップデートがリリースされた場合はこのファイル(bordbk105N.dll)を元のものに戻すか、削除後に修復セットアップしてからアップデートを適用する必要があると思われるので注意が必要です。

2009年12月15日

RAD Studio/Delphi/C++Builder 2010 Update 4, Update 5, Boost Library Update

RAD Studio/Delphi/C++Builder 2010のUpdate 4, Update 5 (database pack), Boost Library Updateがリリースされています。2009/11/13にwithdrawとなったUpdate 2, Update 3, Boost Updateの修正に加えてそのほかの修正も行われているとのことです。

27492 Update 4, 5 & Boost Lib for RAD Studio, Delphi & C++Builder 2010
リリース ノート: Delphi 2010 および C++Builder 2010 Update 4、Update 5(データベース パック)、Boost Library Update

2009年12月14日

Delphi 2010 Handbook続報

Marco CantuさんによればDelphi 2010 Handbookは大体完成して2010/01末には書籍として販売されるようです。また新たな試みとして全体を3部に分割してPDFで月曜日(2010/12/14)から先行販売するそうです。今回は日本語訳の動きはないのですかね。

Delphi 2010 Handbook Almost Ready

2009/12/15追記: 予告どおりPDF版のPart 1が9.80USD(846JPY)で発売されました。Part 2、Part 3は15日の間隔でリリースされるそうです。

Delphi 2010 Handbook Part 1 PDF Available

2009年12月12日

Firebird 2.5 Release Candidate 1リリース

新しいスレッディングアーキテクチャを採用し、新たにSuperClassicが追加されたFirebird 2.5のRelease Candidate 1がリリースされています。RCはもう一度予定されているようです。

Firebird File Repositories (download)
Firebird 2.5 Release Notes

2009年12月10日

[書籍]Firebird徹底入門

ジュンク堂書店の新宿店で

Firebird徹底入門/木村明治はやしつとむ坂井恵著/翔泳社/ISBN 978-4798119632/3,990円

を買ってきました。結構分厚いですね。表紙は残念ながら焼き鳥ではありません。

2009年12月9日

Microsoft Monthly Update 2009/12

今日はMicrosoftのセキュリティアップデートの日です。
MS09-069
MS09-070
MS09-071
MS09-072
MS09-073
MS09-074

2009年12月6日

DelphiSpeedUp 2.8/IDE Fix Pack 2.8リリース

Andreas HausladenさんDelphiSpeedUpがアップデートされてVersion 2.8になっています。Delphi/C++Builder 6/7/2005/2006/2007のデバッガのステップイン([F7]キー)の動作が改善されています(Delphi 5についてはSorry Delphi 5 users, but I can’t support you anymoreとのこと)。
またIDE Fix Pack (for Delphi/C++Builder 2009/2010)もアップデートされてVersion 2.8になっています。上記のデバッガのステップインの問題のほかに、呼び出し履歴(call Stack)とローカル変数(local variables)の表示更新を不必要に行わないようにし、Delphi/C++Builder 2010のオブジェクトインスペクタで[F1]キーが効かない問題も修正されます。

Andy’s Blog and Tools » DelphiSpeedUp 2.8 and IDE Fix Pack 2.8 released

2009年12月4日

RAD Studio/Delphi/C++Builder 2009 Hotfix 2

RAD Studio/Delphi/C++Builder 2009のHotfix 2がリリースされています。Windows 7の64bit版におけるデバッガの問題など3点の不具合を修正するものです。RAD Studio/Delphi/C++Builder 2007用のhotfixもお願いしたいところです。

Hotfix 2 for Delphi, C++Builder and RAD Studio 2009
27476 Hotfix 2 for Delphi 2009 and C++Builder 2009

2009/12/18追記: Chris HesikさんによるRAD Studio/Delphi/C++Builder 2007用のUnofficial, informal fixがリリースされました。

2009年12月2日

第15回エンバカデロ・デベロッパーキャンプ終了

スピーカの皆さん、関係者の皆さん、懇親会に参加したみなさん、おつかれさまでした。David.Iさんも下手な説明ともっと下手な英語でくだらない話を聞いていただいてありがとうございました。

ずっと放置状態でしたが、ここまでで出ていない情報をいくつか。

G1(オープニングセッション)
  • 来年(2010年)は従来のような“リアル”なデベロッパーキャンプは2回(東京、大阪)にして、“バーチャル”なものをもう2回程度、というように考えている。 by 藤井さん
    »“バーチャル”なら、参加者はもちろんセッションスピーカも“リアル”ではなかなか来てもらえないような人(たとえばMarco CantuさんとかDEKOさんとか)にも出てもらいやすくなる、と。ただしwebセミナーの“盛り上がらなさ”感などを考えるとある程度の聴衆は必要かも、とか、時間帯は色々な意見があって難しい(webセミナーでも時間帯の希望はばらついていたそうで)、とか、時間差をつけての録画の再配信って、とか、一度小規模な形で試してみるか、とか、うまくいくようにするには考えなければいけないことがたくさんありますね、なんてお話もさせていただきました(番外編で)。

G2(コミュニティトーク)
  • Project Xでは(KylixのようにIDEを移植するのは難しいので)クロス開発、リモートデバッグの形態になる。
  • VCLのWindows 7対応は(Windows 7とDelphi 2010のリリースのタイミングの関係から)まだ不足しているので今後対応を進めていきたい。
  • Unicodeの扱いが難しいのは新しいやり方になれるしかない。
    »Unicodeの扱いは.NETでのサポート範囲に留まり、独自のアプローチはあまり考えていない、というようなニュアンス。
  • マルチコアをよりうまく使うようなもの(文法的なものやライブラリなど)は現在開発中の新しいコンパイラで考えたい。
  • 分散処理へのアプローチはDataSnapで。
  • クラウドコンピューティングについては未だ業界標準が存在していないのでなんとも。
    »コンポーネントでサポートするような方向性はありかもしれない。


2009/12/15追記: セッション資料がダウンロードできるようになっています。またはやしさんによるストリーミングビデオも見られるようになっています。

第15回 エンバカデロ・デベロッパーキャンプ - 資料ダウンロード
第15回エンバカデロ・デベロッパーキャンプ | Tomneko blog

2009/12/24追記: G1「Delphi/C++Builderの今そして未来」のセッションビデオが公開されています。またG1/G2関係の情報を追加しました。

セッションビデオ「Delphi/C++Builderの今そして未来」