• 締切済み

APIについて

アプリケーションソフトがが環境変数の値を取得する場合、環境変数を取得するAPI関数が「あそこのレジストリに要求された変数があるから取りに行いこう」という感じでとりに行って、アプリケーションに返してるんでしょうか?

みんなの回答

  • notnot
  • ベストアンサー率47% (4843/10252)
回答No.2

レジストリというからにはWindowsの話ですよね。 プログラムが動く時点では環境変数はプロセス固有のメモリ領域にあるので、APIはそのメモリ上のエリアを参照するだけでしょう。プログラムが起動してからレジストリを変更しても、すでに起動済みのプログラムが参照する環境変数には影響しません。 環境変数のためにレジストリを読むのは、Windowsの起動時と、エクスプローラがプログラムを起動する時くらいだと思います。レジストリ自体もメモリ上にあるので、参照はメモリ上のレジストリを見て、更新時にメモリとレジストリファイルの両方を更新しているのだと思います。

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

何かやりたい事があって、うまく行かないようでしたら、 その事を具体的に書くほうがコメントがつきやすいと思いますよ。

関連するQ&A

  • SNMPマネージャAPIでメモリリークしてしまう

    初めて投稿します。 ネットワークに接続したプリンタ4台を、SNMPを使って状態監視するソフトを作成しています。以下のソース(文字数制限のため、大半をコメントで記述しています)を実行すると、SnmpMgrRequest()関数内でメモリリークを起こします。 この関数の戻り値はエラーではありません。しかもプリンタ1台のみを監視するとメモリリークしません。この関数をコメント化しても起きません。 SNMPは始めてなので何が悪いのかよくわかりません。 どなたか何かご存知であればご教示お願いします。 開発環境はWindowsXP(SP1) VC++6 SP5を使用しています。 (ソースの拡張子は.cです。) void main(){ while(1){ for (i = 0 ; i < 4 ; i++) { mib=StsGet([プリンタのIPアドレス]); } Sleep(600); } } int StsGet(LPSTR adr) { //SnmpUtilMemAlloc ()でSNMPエージェントのアドレス取得 //SnmpUtilMemAlloc()でコミュニティ取得 //変数バインディングの初期化 //SnmpMgrStrToOid()でOIDを文字列から値に変換 //SnmpUtilMemReAlloc ()で変数バインディングにメモリを割当て //変数バインディングにOIDを追加 //SnmpMgrOpen ()でSNMPマネージャAPIのオープン(タイムアウト:100ms、リトライ:1回) // SnmpMgrRequest()でSNMPマネージャAPIに指定操作(Get)を要求 //SnmpUtilVarBindListFree(),SnmpUtilMemFree()で各変数を解放 //SnmpMgrClose()でSNMPマネージャAPIとの接続を終了 return [プリンタ状態;] }

  • APIの使いかたを教えてください

    borland C++でListCamのようなビデオカメラシステムを作成したいと思っています。 ビデオをキャプチャするために、API関数を使って作ろうと思っているのですが、いまいち、よくわかっていません。 どんなAPIを使えばいいのか、どんなソフトをAPIで操作すればいいのか教えてください。

  • VB6.0のレジストリ情報取得方法

    VB6でレジストリの情報取得について、質問いたします。 VBにて、レジストリのセクション名を取得(検索して存在するなら真の値を返すだけでもよい)したいのですが、APIとか関数はあるのでしょうかまたは、出来るのでしょうか?調べた限り見つからない・・・・(-_-; 宜しくお願いします。

  • Softの情報取得 APIについて

    お願いします。 急いでいるので、文面等問題ありましたら、申し訳ございません。 早速ですが、PC内のインストールされているソフト情報を取得したいのですが、API等で取得可能でしょうか?(ソフト名等) APIの関数を教えていただきたいです。また、関連するホームページ等もあればおしえてくださいませ。 作成する言語 出来れば、VB またはVC++ 大変申し訳ありません。よろしくお願いします。

  • Win32Apiで書式付リッチエディットの内容をコピーしたい。

    Win32Api(MFCやCLRではない)で書式付リッチエディットの内容をコピーしたいのですがGetWindowText関数を使い、char型の変数に入れてやると文字色やフォントなどの情報がなくなってしまいます。 このような場合書式付の文字を取得する場合どうすればよろしいでしょうか。

  • js api

    javascriptにおいてapiと関数同じ物なのでしょうか? 以下引用 APIとは、アプリケーションプログラムインターフェイスの略語で、プログラミングの際に使用できる命令や規約、関数等の集合の事を指す。 ソフトウェア開発の際、いちから全てを作るより、APIを利用すればもともとあるプログラムを呼び出して、その機能を組み込んだソフトウェアを開発することができる。 APIの中に関数が含まれているという事でしょうか?

  • VBでのAPI

    いつもお世話になっています。 今回初めて、APIを使うVBのプログラミングをしているんですが、サーバからのファイル名取得でつまずいています。 long型変数 = FtpFindFirstFile(セッション番号, ディレクトリパス, str型変数, 0, 0) って感じで、何かしらファイルが存在するかどうかは戻り値で判定できるのですが、ファイル名自体が取得できません。(複数ファイルが存在するときは、どれか一つのファイル名が取得できれば問題ないです) いろんなサイトを調べたのですが、「引数の文字列変数に"情報"が取得される」ようなふうに書かれており、はっきりしません。ちなみに私の作成中のPGでは、引数の文字列変数は何も格納なれない状態です。 どなたか詳しい方、教えてくれませんか?

  • VBでのファイル検索(API以外で)

    誰か教えていただければうれしいです VBでファイル検索をしたいのですが まず利用可能なドライブを取得して ドライブごとに検索してファイルがあれば その絶対パスとファイルのあったドライブ名を グローバル変数に格納したいのですが API関数を使わない方法がわかりません わかるかたがいらっしゃれば教えていただけないでしょうか

  • ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法

    ●やりたいこと ExcelVBAで、APIを実行し、外部ソフトのウィンドウに含まれている エディットテキストを取得して、セルに出力したい 使用する関数・宣言、できればコードを教えていただけませんでしょうか。 イメージはこちらをご参考いただけると幸いです。 ​http://situmon-img.blogspot.com/2008/08/1.html​ 変数hwindowに親ウィンドウのハンドルが取得されています。 エディットボックスのハンドル、IDは分かりません。 エディットボックスのハンドルを取得し、 分かっているクラス・ハンドルの文字列を取得 といった流れになるのではと思っております。 変数にさえ文字列が取得できれば、 当然ですが、Range("B2")=変数 で大丈夫です。 変数は、ひとつを使いまわしで構いません。 変数をエディットテキストの数だけ用意しても構いません。

  • pthread_self APIの高速化

    HP-UX上でCを使ってスレッドプログラムを書いています。 プログラム内部でスレッドIDを変数に保持して、その変数を元に、pthread_detachなどのAPIをコールするような作りになっているのですが、pthread_self APIで毎回、自スレッドIDを取得するようにすると、処理スピードは遅くなるのでしょうか。(どれくらい?気にするほど?) 感覚的には遅くなりそうな気がしてはいますが、プログラム変数の場合だと、予期しない変数の書き換えが発生した場合(これはこれでバグですので対応が必要になりますが・・・)などに余計な影響を受けることになり、どっちが得策なのか考えあぐんでいます。