タグ

2009年1月12日のブックマーク (8件)

  • Shell_NotifyIcon

    Version 5.00 以降: pnid パラメータで指定される NOTIFYICONDATA 構造体の uVersion メンバで指定されるバージョンに従って振舞うようにタスクバーに指定します。このメンバのデフォルト値は 0 であり、原型の Windows 95 の通知アイコンにおける振舞いになります。 pnid 必要な情報を格納した NOTIFYICONDATA 構造体のアドレスを指定します。構造体の内容は dwMessage パラメータに依存します。 戻り値 関数が成功すると 1 (TRUE) が返ります。それ以外の場合には 0 (FALSE) が返ります。 dwMessage パラメータに NIM_SETVERSION を指定した場合には、バージョンがうまく変更されると 1 (TRUE) が返ります。指定されたバージョンがサポートされていない場合には 0 (FALSE)

    yzx
    yzx 2009/01/12
  • WILL - タスクトレイに常駐するアプリを作る

    常駐型のプログラムでよくあるのが、通知領域(俗にタスクトレイと呼ばれます)に常駐するというやつです。 普段はウィンドウが表示されていないけど、通知領域のアイコンをクリックとかするとウィンドウが開くというものです。 こういうのを実現してみましょう。 私は、以下のようにして実現するのがいいと考えました。 目に見えない「メインウィンドウ」を作成する。 メインウィンドウが作成されたら、通知領域にアイコンを追加する。 通知領域のアイコンがクリックされたらメインウィンドウに通知されるようにする。 メインウィンドウは、通知を受けたらそれに対応した動作を行う。 以上です。 目に見えない「メインウィンドウ」を作成する理由ですが…。 当サイトで公開している「看板」というソフトのバージョン 1.xx では、このようなメインウィンドウを作成していませんでした。 ダイアログベースでプロジェクトを作成し

  • Best Site for Technology & Business Related Trending News

    Key Takeaways: The Science Behind Plasma Donation Understanding Plasma and its Importance Plasma, often referred to as the fourth state of matter,…

  • プロセスの保護

    このように、プロセスのハンドルを必要とする関数は数多く存在しますが、 自プロセスを保護したいという視点に立った場合、 中には呼ばれてほしくない関数も存在すると思われます。 たとえば、ReadProcessMemoryを呼び出せば、プロセスの特定のアドレスに格納されているデータを取得できますし、 TerminateProcessを呼び出せば、プロセスを強制終了することもできます。 自プロセスに対して、こうした外部からの関数呼び出しを失敗させるには、 そのような関数が必要とするアクセス権をACEのアクセスマスクから取り除けばよいでしょう。 このようにすれば外部プロセスは、OpenProcessの呼び出しでアクセス拒否のエラーが返ることになります。 自プロセスでは、OpenProcessではなくGetCurrentProcessでハンドルを取得するため、 アクセスが拒否されることはありません。

    yzx
    yzx 2009/01/12
  • STARTUPINFO を使用したウィンドウ プロパティの設定 - Win32 apps

    親プロセスでは、子プロセスのメイン ウィンドウに関連付けられているプロパティを指定できます。 CreateProcess 関数は、パラメーターの 1 つとして STARTUPINFO 構造体へのポインターを受け取ります。 この構造体のメンバーを使用して、子プロセスのメイン ウィンドウの特性を指定します。 dwFlags メンバーには、構造体の他のどのメンバーが使用されているかを決定するビットフィールドが含まれています。 これにより、ウィンドウ プロパティの任意のサブセットの値を指定できます。 システムでは、指定しないプロパティに既定値が使用されます。 dwFlags メンバーは、新しいプロセスの初期化中にフィードバック カーソルを強制的に表示することもできます。 GUI プロセスの場合、STARTUPINFO 構造体は、新しいプロセスが CreateWindow 関数と ShowWindo

    STARTUPINFO を使用したウィンドウ プロパティの設定 - Win32 apps
    yzx
    yzx 2009/01/12
  • プロセスIDとプロセスハンドルについて質問。

    ぴょぴょ 2007/11/13(火) 09:02:40 プロセスIDはWindowsシステムにおいて重複しないための整数値と聞きました。 それでハンドルとは1つのプロセス内で通用する重複しないポインタのようなものと考えています。 もう少しきちんと表現すると「ハンドル」=「仮想メモリのアドレスを示す」ですよね。 ここで疑問があります。 プロセスIDからプロセスのハンドルを取得するには次のようになるようです。 (ネット検索より) hProcess = OpenProcess( PROCESS_QUERY_INFORMATION, FALSE, 任意のプロセスID ); ここで取得できたプロセスのハンドルを使えば任意のプロセスID(別のプロセス)のハンドルを 取得したことになるのでしょうか? もしこのプロセスハンドルでカレントプロセス以外の情報をいろいろと取得できるとするとな

    yzx
    yzx 2009/01/12
  • 第1回 Windowsのプロセスを詳しく探る

    大手コンピュータ・メーカー勤務。入社以来10数年をソフトウェア開発の現場で過ごし,その後ソフトウェア品質部へ異動。現場への技術支援や品質教育開発などを主に行っている。「APIで学ぶWindows徹底理解」(日経BP社)などを執筆。 2007年1月末の一般向け出荷を控え,Windowsの世界では新バージョンVistaが注目を集めている。開発者にとってWindows Vistaの一番のポイントはと言えば, .NET Framework 3.0を標準で搭載する点を挙げる人が多いだろう。雑誌にせよWebにせよ,最近のWindowsプログラミングの記事のほとんどは .NET向けだ。マイクロソフトも,これまでネイティブ・コードでの開発が主流だったC/C++開発まで, .NETへの移行を促そうとしている。実際,マイクロソフトが無償で配布しているC/C++統合開発環境Visual C++ 2005 Exp

    第1回 Windowsのプロセスを詳しく探る
    yzx
    yzx 2009/01/12
  • Win32 API(プロセス一覧を取得するには)

    TOP/ プログラミング/ Win32 API Programming tips ・ここで使用するAPI EnumProcesses() OpenProcess() EnumProcessModules() GetModuleBaseName CloseHandle() CreateToolhelp32Snapshot() Process32First() Process32Next() ・プロセス一覧について プロセス一覧を取得する手段はWindows95系とWindowsNT系で異なります。 Windows95系はToolHelp32 APIを使用します。 WindowsNT系はPSAPIを使用します。ただしpsapi.dllはOSに含まれていないので配布しなければいけません。 Windows2000はToolHelp32 APIをサポートしています。 ・サンプル