使用言語:C OS:NT4.0WS
プロセスビューアで表示されるような、プロセスIDやプロセス名を
取得する方法を探しています。
Cの標準関数で無ければAPI関数での方法でもどちらでも構わないので
よろしくお願いします。

A 回答 (4件)

>psapi.dllはあるようなのですが、psapi.libが見つからないのですが、


>プラットフォームSDKをインストールするだけでは手に入らないのでしょうか?

手に入るはずですがねぇ。もしかしたら最新のPlatform SDKをインストール
した方がいいのですかね。

インストールの説明
http://www.mars.dti.ne.jp/~kattoshi/Program/Inst …

Platform SDKのインストール先http://msdn.microsoft.com/downloads/sample.asp?u …
    • good
    • 0
この回答へのお礼

お蔭様でPID取得できました。ありがとうございました!

お礼日時:2001/07/27 11:01

こちら(URL参照)もご参考にされてはいかがでしょう。



参考URL:http://www.microsoft.com/japan/support/kb/articl …
    • good
    • 0

>*.obj : error LNK2001: 外部シンボル "_EnumProcesses" は未解決です


>Debug/*.exe : fatal error LNK1120: 外部参照 1 が未解決です。

ライブラリをインポートしてないからですね。
psapi.lib
をインポートしてみてください。

設定方法はVC++6.0なら
プロジェクト→設定→リンク→オブジェクト/ライブラリモジュール

psapi.lib
を加えてビルドしてみてください。

私のPCはNTでないので、検証できないので許してください。

この回答への補足

psapi.dllはあるようなのですが、psapi.libが見つからないのですが、
プラットフォームSDKをインストールするだけでは手に入らないのでしょうか?

補足日時:2001/07/25 16:06
    • good
    • 0

EnumProcessesを使うことは考慮されてるかもしれませんが、


どのくらい調査されたのか分からないので、これを紹介します。

サンプルの紹介は下記URLで。

参考URL:http://members.tripod.com/~masapico/api_EnumProc …

この回答への補足

回答ありがとうございます。
ここのサンプルも試してみたのですが、エラーが取れずに困っております。
----------------------------------------------------------------
*.obj : error LNK2001: 外部シンボル "_EnumProcesses" は未解決です
Debug/*.exe : fatal error LNK1120: 外部参照 1 が未解決です。
----------------------------------------------------------------
この2つのエラーに悩まされています。
EnumProcessesを使うには何か特別なことをしなければならないのでしょうか?

補足日時:2001/07/25 13:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q美容室の広告に載っている「ワンプロセス」の意味。

髪を切ろうと思い、ホットペッパーで美容室を
探していました。

カラーとか、パーマのとこに「ワンプロセスのみ」
という表示がされていることがありますが、
これはどのような意味なのでしょうか?

ご存知の方、教えてください。よろしくお願いします。

Aベストアンサー

ワンプロセスと言うのは、1回だけと言うことです。

たとえばカラーなら、1度薬液を付けるだけとかです。
カラーの場合は、新生毛とカラーの毛(既成毛)とでは色合いが違いますので、同じ薬液を塗れませんので2プロセス以上の施術になりますね。

QC++ API 全般 APIの概要は

独学にてプログラミングを勉強しているのですが、いきづまってしまったので質問お願いします。

※Visual Studio 2008 Express Editionsを使用しています。

まだプログラミングに関しての勉強を始めて1ヶ月程度で、最初はVB.NETから始めて、最近C++に乗り換えました。
趣味の範囲でのゲームを作ろうと思っていて、C++とDirectXでの開発を予定しています。(しかし、最終的にはゲームに限らずプログラミングの技術と知識を習得することを目標にしています。)(DirectXに関してはまだ手をつけていません。)
まったく1からのスタートで、現在win32コンソールアプリケーションにてコードの勉強をしているところです。

勉強に使っている参考文献は
・VisualC++.NET逆引き大全500の極意
・ゲームプログラマになる前に覚えて起きたい技術(これを買うには早すぎたようです…。第一章も半分くらいしか理解できません…。)

サイトは
・主に「0からのゲームプログラミング」というサイトです。
http://www.plustarnet.com/aspil/Programming/



本題の質問ですが、APIというものがいまいち理解できません。
(1)上記のような目的で使用するAPIは、標準 Windows APIというものでいいのでしょうか?

(2)win32コンソールアプリケーションでは実行できるのに、win32プロジェクトでは実行できないのはなぜでしょうか?
#include<windows.h>

int WINAPI WinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
PSTR lpCmdLine ,
int nCmdShow ) {
MessageBox(NULL , TEXT("Hello Wold!") ,
TEXT("メッセージボックス") , MB_OK);
return 0;
}

(3)http://www.plustarnet.com/aspil/Programming/CConsole.htm
このURLのコンソールAPIというのは、一般的に使われているものでしょうか?それともこのサイトのオリジナルのものでしょうか?win32コンソールアプリケーションでAPIを使うには、このURLのCConsoleクラスとうものをインクルードしないといけないのでしょうか?#include<windows.h>と宣言することによって気軽に使いたいものを使うことはできないのでしょうか?

(4)#include<windows.h>
とした場合、作るものが「win32コンソールアプリケーション」だったり「win32プロジェクト」だったり「windowsフォームアプリケーション」だったりで、使用方法などがまったく別になってしまうのでしょうか?

(5)そもそも、上記の目的の場合APIを勉強する必要はあるでしょうか?

(6)勉強をしたほうが後々に役立つ場合、どのAPIを勉強するのがいいのでしょうか?(APIといっても様々なものがあるんだなと思い質問しました。もし勘違いでAPIというものは一つしかないとしたらすみません。)


なぜAPIに関してかというと、単純に上記のサイトで言語編の一番上から順に見ていったからです。
初心者すぎて質問が的外れかもしれませんがよろしくお願いします。

独学にてプログラミングを勉強しているのですが、いきづまってしまったので質問お願いします。

※Visual Studio 2008 Express Editionsを使用しています。

まだプログラミングに関しての勉強を始めて1ヶ月程度で、最初はVB.NETから始めて、最近C++に乗り換えました。
趣味の範囲でのゲームを作ろうと思っていて、C++とDirectXでの開発を予定しています。(しかし、最終的にはゲームに限らずプログラミングの技術と知識を習得することを目標にしています。)(DirectXに関してはまだ手をつけていません。)
...続きを読む

Aベストアンサー

まず"API"というものそのものについてわかっておられないようです。

現在のプログラミングは非常に複雑化してきました。
また、(特にプロフェッショナルな場合)納期も短期化してきています。

そんなわけで、プログラミングも一から全て作るのは非現実的な状態です。
誰かの作ってくれたものを利用する場面が非常に多くなりつつあります。
(並行して開発する場合も多くあります)

その際、
どのような物(関数でも良いし、クラスとかでも良い)をどうやって
(パラメータとか呼び出し順序とか)
使うか
を定めておかないと、利用しようにも利用できませんよね。
この定めた規約のことをAPIと呼びます。

Windowsには
・ファイルを操作する関数
・画面にグラフィックを描画する関数
等々様々なものが提供されています。

たとえば、ファイルを操作するには
CreateFileで開き、ReadFileで読み込み、WriteFileで書き込み
CloseHandleで閉じる
という手順が定められています。
この規約は”Win32API”と呼ばれます。
CreateFileなどWin32で定められた個々の関数は
Win32API関数
と呼ばれます。

Windows上で動くプログラムは基本的には
Win32APIを利用します。

しかし、Win32APIには色々不便な点も多く、
それを補うものが作られてきました。
DirectXもその一例です。
もちろん、DirectXも(ごみではなく)"利用される"ために作られたものですので
Win32API同様、利用するための規格(API)があります。
Direct X APIと呼ばれたりします。

ですから
(1)はWin32APIです
(2)は明らかに逆です。
   Win32プロジェクトとは通常のEXEの他にDLL(EXEのための部品です。単独では動きません)など様々な開発を行えます。コンソール専用ではないので、
コンソール用の設定がされていません。したがって、コンソールのソースを持ってきただけでは動作するようになりません。
(自分でプロジェクトの設定を行えばコンソールアプリになります)

(3)についてはそのサイト専用です
ピンク色の部分をコピーしてConsole.hという名称で保存してください。
そして#include "Consol.h"
すれば自動的にWindows.hも取り込まれます。
別途Windows.hを取り込む必要はありませんし
Windows.hで定義されているものは自由に使えます

(4)win32コンソールアプリケーションとWindoiws プロジェクトの違いについては
先に述べましたので省略します。
"Windows フォームアプリケーション"とは
".NET (ドット ネット)"という新しい技術に基づくものです。
今までのWin32APIとは別物です。
当然APIも異なります。
原則的にはWin32APIは利用できません。
(C++/CLIという方法で利用できますが、それなりの設定が必要です)

(5) 目的に合ったAPIを勉強する必要があります。
先ほどものべましたが".NET"を使うには
Win32APIとは別の知識が必要です。
逆に、".NET"の知識しかない場合、Win32コンソールアプリは作れませんので
Win32APIを勉強しなくてはなりません。
もっとも、これは厳密な言い方ではありません。
Cの標準関数で収まる範囲であれば、Win32APIの知識は不要です。

(6)
既に述べています。
APIはたくさんあります。
あなたも、たとえばWin32プロジェクトでDLLを作成する場合、
どのように利用するかを考えてAPIを定める必要があります。

まず"API"というものそのものについてわかっておられないようです。

現在のプログラミングは非常に複雑化してきました。
また、(特にプロフェッショナルな場合)納期も短期化してきています。

そんなわけで、プログラミングも一から全て作るのは非現実的な状態です。
誰かの作ってくれたものを利用する場面が非常に多くなりつつあります。
(並行して開発する場合も多くあります)

その際、
どのような物(関数でも良いし、クラスとかでも良い)をどうやって
(パラメータとか呼び出し順序とか)
使...続きを読む

Qプロセス監視とサービス監視

下記の質問にてプロセスとサービスの違いについて少し理解ができました。
http://oshiete.goo.ne.jp/qa/7395829.html

しかし、私の理解が正しいとするとプロセスはサービスよりも詳細な単位になるためプロセス監視を行えばサービス監視は行えているということになります。

そこで二点質問がございます。
1.上記の私の理解は正しいか
2.プロセス監視ではなく、サービス監視を行う具体的な意味は

ご教示いただけますと幸いです。

Aベストアンサー

・UNIX系のinetdやwindowsのsvchostなどプロセス名とサービスが単純に結びついていないサービスがあります。
・プロセスは起動しているが、ハングアップなどでサービスとして機能していない場合があります

QRS232Cを制御するAPI関数

RS232Cを細かく制御したいのですが、そのようなAPI関数はあるでしょうか?

Aベストアンサー

参考になりますでしょうか。
http://homepage2.nifty.com/kasayan/vb/vbj1.htm
http://village.infoweb.ne.jp/~fwhs4721/softworkshop.htm#RS232Cからデータを読み込む(対測定器)

Q子プロセス、

親プロセスから子プロセスを生成するとは具体的に何を意味しているのでしょうか?
またresume文とはなんでしょうか?
何をしてくれているのでしょうか?
なぜUNIXは安定していると言われるのでしょうか?
聞いたけど忘れてしまいました、
お願いします。

Aベストアンサー

再レスです。
身近な例ですとエクセルとかで新規作成ボタンを押すと新しいシートが作られるじゃないですか。
いくつも作れてどれも同じ動作やインターフェースをしています。
それらのシートはボタンが押されるまで存在しなかったものです。
また、それらは独立しているので、どのシートに移動しても構いませんよね。
立派な子プロセスですよね。メモ帳なんかだと親プロセスが新たに開きますね。
この例ではユーザーの操作によるものですが、プログラムによっては内部でプロセスを作り並列的に動作するものもあります。

QWin32APIで作成したDLLをC#.NETで使用した時のDLL内の関数の動作について

いつもお世話になっております。
今回ご教授頂きたい内容なのですが、
Win32APIで作成したDLLをC#.NETで使用した時のDLL内の関数の動作についておききします。
下記サイトで公開されている「ビットマップ形状に合わせてリージョンを作成する」CreateRgnFromBitmap関数についてなのですが、
http://orangeknowledge.jpn.org/tips/sdk001.html
Win32APIでこの関数をDLL化したものをWin32APIで暗黙的リンク、明示的リンクで利用した場合は正常にCreateRgnFromBitmap関数が正常に動作するのですが、C#.NETで同DLLを利用した時に、関数を呼ぶ事はできますがなぜか正常に動作しません。

デバッグモードで処理内容をみてみたのですが、
// 一行分画像データを DIB で取り出す(bmpなので下から取り出す)
GetDIBits(hDC, hBitmap, bm.bmHeight - y, 1, pScanData, (LPBITMAPINFO)&bi, DIB_RGB_COLORS);
の部分でpScanData配列に一行分の画像データが正常に入っていませんでした。
そのためGetDIBitsの次に行う判定
// 一行分の透明/非透明の変化点を調査する
for (int x = 0; x < bm.bmWidth; x++){
if (pScanData[x] != dwTransColor){ // 透明色でなければ
・・・省略・・・
で正常に判定が行われず引数としてわたされている「DWORD dwTransColor」透明色部分を正常に判定できていませんでした。
なぜWin32APIでは正常に動作するのにC#.NETでは正常に動作しないのでしょうか?
色々と試してみたのですがいっこうに分かりません。
ご教授よろしくお願い致します。

いつもお世話になっております。
今回ご教授頂きたい内容なのですが、
Win32APIで作成したDLLをC#.NETで使用した時のDLL内の関数の動作についておききします。
下記サイトで公開されている「ビットマップ形状に合わせてリージョンを作成する」CreateRgnFromBitmap関数についてなのですが、
http://orangeknowledge.jpn.org/tips/sdk001.html
Win32APIでこの関数をDLL化したものをWin32APIで暗黙的リンク、明示的リンクで利用した場合は正常にCreateRgnFromBitmap関数が正常に動作するのですが、C#.NETで同DLL...続きを読む

Aベストアンサー

 こんにちは。
 C#.NETのBitmapクラスで読み込んだビットマップにアルファチャンネルが付加されているからではないでしょうか。

for (int x = 0; x < bm.bmWidth; x++){
if ((pScanData[x] & 0xffffff) != dwTransColor){ // 透明色でなければ

 として見ては如何でしょうか。
 後、RとBの関係が逆転している事も考えられます。

for (int x = 0; x < bm.bmWidth; x++){
COLORREF color = pScanData[x] & 0xffffff;
BYTE R = GetRValue(color);
BYTE G = GetGValue(color);
BYTE B = GetBValue(color);
color = RGB(B, G, R);//此処でRとBを逆転させる
if(color != dwTransColor){

 見たいにすれば逆転出来ると思います。
 取り合えず、真赤に塗り潰したビットマップを読み込ませて、pScanData[x]の値を確認みるのが手っ取り早いと思います。

 こんにちは。
 C#.NETのBitmapクラスで読み込んだビットマップにアルファチャンネルが付加されているからではないでしょうか。

for (int x = 0; x < bm.bmWidth; x++){
if ((pScanData[x] & 0xffffff) != dwTransColor){ // 透明色でなければ

 として見ては如何でしょうか。
 後、RとBの関係が逆転している事も考えられます。

for (int x = 0; x < bm.bmWidth; x++){
COLORREF color = pScanData[x] & 0xffffff;
BYTE R = GetRValue(color);
BYTE G = GetGValue(color);
BYTE B = GetBValue(...続きを読む

Qビジネスの場における「プロセス」とは?

初めまして、今現在大学生で、企業にてインターンをやっています。

上司や社員と会話、会議をする際に「プロセス(Process)」という言葉がよく使われるんですが、その言葉自体の概念、意味を理解できていないせいでまったくピンと(理解で)きません。

例えば、ある事、業務を上司に説明した際に、
「プロセスでものを考えないと伝えたいことが上手く伝わらない」、
「このプロジェクトに関してのプロセスを資料としてまとめて」など言われます。

ここで言う「プロセス」とはどういう事でしょうか?
質問が抽象的過ぎて、答えにくいかと思いますがお願いします。

Aベストアンサー

日本語としては「手順」・「流れ」でいいんですが、「プロセス」と
言った場合、言外に「何か全体としての"システム"が存在して、
その結果としての"手順"」という意味があります。

「システム」が中身で、それが外に出てきたものが「プロセス」と
いう感じですね。往々にしてこの2つの言葉はセットにして使われ
たりしますし・・・。

単に「手順」と受け取ると、言外にある「全体としての"システム"」
を見落としてしまう可能性がある、という点には注意して下さいね。

QC,C++,Win32APIだけでSFCレベルのゲーム

この言語だけでSFCレベルのゲームは作れるのでしょうか?
(具体的に言うとスーパーマリオワールドの1ステージくらい)
それとも、やはりDirectXやOpenGLなどを使わないと無理なのでしょうか?
教えていただけると有難いです。
またDirectXを使う場合、Win32APIの知識はどれくらいあれば足りますか?よく参考書とかに載っているテトリスを作れるくらいで足りるでしょうか?

Aベストアンサー

>この言語だけでSFCレベルのゲームは作れるのでしょうか?
作れます。

>DirectXやOpenGLなどを使わないと無理なのでしょうか?
もともとCやC++は目的に応じた様々なライブラリ類を組合わせて
アプリケーションの作成を行う為、必要なモジュールを自作又は
他のライブラリ等を使用することで可能になります。

>またDirectXを使う場合、Win32APIの知識はどれくらいあれば足りますか?
WinAPIの知識の多少ではなくDirectX等のドキュメントを見て何を
利用すれば良いか探し出して使用できれば十分です。
#通常はWinAPIを全て理解する必要も、理解している人もいません。

Qillustrator 特色やグローバルプロセスカラーについて

illustrator初心者です。
スウォッチパレットというのがあって、グローバルプロセスカラーや特色などあるのですが、このグローバルプロセスカラーを特色に変換するということはどういう意味があるのですか?
また、色を登録するときにはどの色でも特色として登録することができるのでしょうか?
よろしくお願いします。

Aベストアンサー

>一般に使う場合にはillustratorのスウォッチオプションの特色をプロセスカラーに変換して使用したりすることにはどんな意味があるのですか?それとも、これはほとんど印刷所向けのための機能なのでしょうか?

こうした板で色に関する論議をする際は、RGBカラー系とCMYKカラー系を切り分けておかないとややこしくなります。
一般の人にはCMYKも特色も無縁の領域ですから、先にも言ったように「どうぞお好きなように」です。つまり家庭用や事務用プリンタのインクはお望みのインクに変えることはできないからです。同様にプロセスカラーというCMYKについても一般のパソコンユーザには無縁な領域であり、使いようのない色体系です。
このようにプロセスカラーとかillustratorのスォッチとして登録されているDICやパントンなどは、インキを変更できる商業印刷機だけの独特のカラー体系で、それをパソコン上で事前にシミュレートする機能としてあると受け止めてください。
ただしモニタのカラー体系はRGBですから、スオッチにある特色も印刷された時の色とはずれがあります。そこで実際に印刷されたカラーチップで確認しておかないと、結果確認にはなりません。

>DTPをマスターするには印刷会社などにアルバイトしたほうが早く覚えられるのでしょうか・・・。

将来商業印刷関連の職種を指向するなら、この世界の空気に触れておくことは有意義でしょう。ただし色の決定権はデザイナーやクライアントにあるので、印刷所のオペレーターが自己決定するケースはそうザラにあるわけではありません。その辺も考慮の内に入れておいてください。
もしDTPとCMYKカラー体系について勉強したいのであれば、
↓『DTP&印刷スーパーしくみ事典』がお薦めです。

http://www.jagat.or.jp/books/Catalog/itaku.htm

参考URL:http://www.jagat.or.jp/books/Catalog/itaku.htm

>一般に使う場合にはillustratorのスウォッチオプションの特色をプロセスカラーに変換して使用したりすることにはどんな意味があるのですか?それとも、これはほとんど印刷所向けのための機能なのでしょうか?

こうした板で色に関する論議をする際は、RGBカラー系とCMYKカラー系を切り分けておかないとややこしくなります。
一般の人にはCMYKも特色も無縁の領域ですから、先にも言ったように「どうぞお好きなように」です。つまり家庭用や事務用プリンタのインクはお望みのインクに変えることはできないからで...続きを読む

QCの関数からC++の関数(DLL)を呼ぶ方法について

C++関数からCの関数を呼ぶには extern "C" を使うのはわかるのですが
C関数からC++の関数を呼ぶ方法がわかりません。
『外部参照 1 が未解決』になってリンクが出来ません。

ちなみにC++の関数はDLLで、他のC++関数からは呼ぶことも実行出来ることも
確認済みです。

よろしくお願いします。

Aベストアンサー

基本的に、呼ぶことができません。と言うのも、c++ には、関数のオーバーロードと
言う機能があって、同じ関数名でも、引数の並び(型や個数)が違うと別の関数として
扱われます。

この機能は c にはありませんから、たとえひとつしかその名前の関数を書いてなくても
オーバーロードの仕組みを持った関数になるわけですから、それは c から呼ぶことは
できません。


> C++関数からCの関数を呼ぶには extern "C" を使うのはわかる

正確には、そうじゃないんです。

c++ は、型のチェックが厳密ですから、関数を呼ぶ場合には、そのプロトタイプ宣言が
必須です。

普通に書くと、c の関数なのか、c++ の関数なのかの区別が付かないので、c の
関数なんだよ、と宣言をするのが extern "C" なんです。

で、本題に戻って、「c++ で記述した関数を c から呼ぶには?」ということなの
ですが、答えは「extern "C" で宣言をした、c++ の関数を作る」ということに
なります。

例えば、以下の関数は思いっきり c++ で記述した関数ですから、関数自体は c++
じゃないとコンパイルできませんが、c から呼ぶことが可能です。

★ヘッダ

#ifdef __cplusplus
extern "C" {
#endif

void print_string(char*);

#ifdef __cplusplus
}
#endif


★ソース

#include "ヘッダファイル"
#include <iostream.h>

void print_string(char* str)
{
cout << str << endl;
}

基本的に、呼ぶことができません。と言うのも、c++ には、関数のオーバーロードと
言う機能があって、同じ関数名でも、引数の並び(型や個数)が違うと別の関数として
扱われます。

この機能は c にはありませんから、たとえひとつしかその名前の関数を書いてなくても
オーバーロードの仕組みを持った関数になるわけですから、それは c から呼ぶことは
できません。


> C++関数からCの関数を呼ぶには extern "C" を使うのはわかる

正確には、そうじゃないんです。

c++ は、型のチェックが厳密...続きを読む


人気Q&Aランキング

おすすめ情報