おはようございます。
WIN32 APIで、現在実行中のプログラムを列挙するにはどうしたらいいのでしょう?
誰か教えてください
現在走っているプログラム(WIN32 API)
Re: 現在走っているプログラム(WIN32 API)
勘違いでしたら申し訳ありません。スルーしていただいて結構です。
もしかして、タスクマネージャーでいいんでしょうか?
一応正しい出し方として特定のボタンを同時押しで出てきてくれます。
(正直言って裏でうごいている分は、多すぎてどれがどれだかわかりませんが・・・)
「Ctrl+Shift+Esc 」
http://ja.wikipedia.org/wiki/Windows_%E ... 3%E3%83%BC
↑タスクマネージャーのウィキ
もしかして、タスクマネージャーでいいんでしょうか?
一応正しい出し方として特定のボタンを同時押しで出てきてくれます。
(正直言って裏でうごいている分は、多すぎてどれがどれだかわかりませんが・・・)
「Ctrl+Shift+Esc 」
http://ja.wikipedia.org/wiki/Windows_%E ... 3%E3%83%BC
↑タスクマネージャーのウィキ
ニャン!!\(゜ロ\)(/ロ゜)/
Re: 現在走っているプログラム(WIN32 API)
以前、タスクマネージャっぽいアプリを自作しようとして途中で放り出したことがありました。。
その時ネットで調べた情報で、WinXPでの話ですが参考までに。
「現在走っているプログラムを列挙」は、「現在実行中のプロセス一覧」という意味でしょうか。
プロセス一覧を取得する方法としてマイクロソフトが正式にオススメしているのは、
nonさんのリンクの通りだと思います。
(ToolHelp32ライブラリまたはPSAPIライブラリを使う方法)
ただ、タスクマネージャ相当の情報を得たい場合、これらのライブラリだとけっこう面倒です。
標準のタスクマネージャや、その他の同様のフリーソフト等は、NtQuerySystemInformation
という非公式APIを使っていると思われます。ntdll.dllに入っているこの関数、個人的に試しに
使ってみたところ、一気にいろいろな情報が取得できて、まさにタスクマネージャのためにある
関数という感じでした。なぜ非公式なのかはわかりません。
あと、私が引っかかった点ですが、EnablePrivilege関数でSE_DEBUG_NAME特権を有効に
しないと、情報を取得できないプロセスがありました。
http://dixq.net/forum/viewtopic.php?f=3&t=6984
その時ネットで調べた情報で、WinXPでの話ですが参考までに。
「現在走っているプログラムを列挙」は、「現在実行中のプロセス一覧」という意味でしょうか。
プロセス一覧を取得する方法としてマイクロソフトが正式にオススメしているのは、
nonさんのリンクの通りだと思います。
(ToolHelp32ライブラリまたはPSAPIライブラリを使う方法)
ただ、タスクマネージャ相当の情報を得たい場合、これらのライブラリだとけっこう面倒です。
標準のタスクマネージャや、その他の同様のフリーソフト等は、NtQuerySystemInformation
という非公式APIを使っていると思われます。ntdll.dllに入っているこの関数、個人的に試しに
使ってみたところ、一気にいろいろな情報が取得できて、まさにタスクマネージャのためにある
関数という感じでした。なぜ非公式なのかはわかりません。
あと、私が引っかかった点ですが、EnablePrivilege関数でSE_DEBUG_NAME特権を有効に
しないと、情報を取得できないプロセスがありました。
http://dixq.net/forum/viewtopic.php?f=3&t=6984
Re: 現在走っているプログラム(WIN32 API)
非公開ではないと思いますが,利用は非推奨だとは思います (APIの先頭にそう書いてあるので)。たろ さんが書きました:標準のタスクマネージャや、その他の同様のフリーソフト等は、NtQuerySystemInformation
という非公式APIを使っていると思われます。ntdll.dllに入っているこの関数、個人的に試しに
使ってみたところ、一気にいろいろな情報が取得できて、まさにタスクマネージャのためにある
関数という感じでした。なぜ非公式なのかはわかりません。
MSDN: NtQuerySystemInformation function
Ntなんとか,というAPIは大抵DDK用の,低レベルAPIになります (NtCreateFile API等)。
Device Driver向けのAPIであるが故に,SDKには入っていないのだと思いますよ。
Re: 現在走っているプログラム(WIN32 API)
NtQuerySystemInformation
このライブラリの使い方がサッパリです(笑)
どなたかご教授ください
このライブラリの使い方がサッパリです(笑)
どなたかご教授ください
C,C++,C#,これらを極めることを「3C政策」と言う
Re: 現在走っているプログラム(WIN32 API)
僕の意図としては、今指定のウィンドウを透明化するプログラムを作っていまして、この「ウィンドウを指定する」というところで、現在走っているプログラムのウィンドウの名前を全て取得し、ユーザーに選ばせる、というのを想定しています。
どうしたらいいですか?
どうしたらいいですか?
C,C++,C#,これらを極めることを「3C政策」と言う
Re: 現在走っているプログラム(WIN32 API)
EnumWindows APIでウィンドウを列挙できます。
Re: 現在走っているプログラム(WIN32 API)
オカピーさん、この件には関係ありませんが前のトピックでも指摘した点です。
いくつかのトピック未解決状態ですが解決していないのでしょうか?
解決しない状態で次々とトピを立てるのはあまりよろしくない行為です。
もしくは前のトピでも書きましたが、解決済みなら解決チェックをしてください。
いくつかのトピック未解決状態ですが解決していないのでしょうか?
解決しない状態で次々とトピを立てるのはあまりよろしくない行為です。
もしくは前のトピでも書きましたが、解決済みなら解決チェックをしてください。