• 締切済み

VB6.0での%windir%アクセス方法

Windows2000とWindowsXPの端末で使用するツールをVB6.0で作成しています。 プログラムですが、  Windows2000の場合であればc:\winnt、  WindowsXPの場合であればc:\windowsの ディレクトリに保存しているファイルを参照し、 そのファイルをいじくる流れになります。 Winntフォルダやwindowsフォルダという情報は、コマンドプロンプトであれば%windir%で勝手にOSの種類から認識/判別してくれるのですが、 これがVBでは認識しません・・・。 どのようにすれば、VBで%windir%を認識/判別することができるのでしょうか??? なんか説明が上手くないのですが、意味、分かりますでしょうか?? ヨロシクお願い致します。

みんなの回答

回答No.1

うるおぼえですので正確な解答ではないのですが システムディレクトリーを教えてくれる命令が ありますので それを使えばよいです。

AS-67002
質問者

お礼

早速のご返信、ありがとうございます。 そんな命令が在るのか無いのかすら分からなかったのですが、在ると分かればあとはもう少し自分で探してみたいと思います。 ありがとうござます。

関連するQ&A

  • VB6でOSごとのシステムディレクトリを求めたいです。

    VB6でOSごとのシステムディレクトリを求めたいです。 Windows95,Windows98,WindowsME,Windows2000,WindowsXP,Windows2003 Windowsの各エディションのsystemディレクトリをVisualBasicで取得したいのですが 何かスマートな方法はありますか? 私はXPしか持っていないので、他はわかりませんが、 %windir% と %OS% の環境変数を見れば判別できそうですが、 i%OS% = "WINDOWS_NT" なら   システムパス = %windir% & "\\system32" それ以外は、   システムパス = %windir% & "\\system" で、良いのでしょうか? Windows2000はsystem32だったような・・・・  それ以外はわからないので 詳しい人教えてください。 他にスマートな方法があるのでしたら、そちらもお願いします。

  • VB2010からコマンドの実行方法

    環境  VisualBasic2010Express  WindowsXPSP3 前提  あるプログラムをインストールしていると使えるコマンドがあります。  コマンドプロンプト上から、バッチファイルを実行すると正常動作します。  仮に j.bat とします。  内容は   dxf -o -s c:\test\test0.dxf   dxf -o -s c:\test\test1.dxf   dxf -o -s c:\test\test2.dxf  こんな感じです。  dxfの本体は、とあるフォルダにあるdxf.exeと思われます。  (同名ファイルが複数あるので、特定できていません)  パスが通っているのか、カレントディレクトリ(?)に関係なく実行可能です。  このバッチファイルを実行すると処理は正常です。 現状  VBでボタンを押したらバッチファイルと同じ処理をするプログラムを作りたいのですが  実行する内容が毎回変化します。(dxfコマンドの引数が変わる)   よって同じバッチファイルは使えません。  Dim Buffer(2) As String  Dim Ret(2) As Integer   for i =0 to 2    Buffer(i) = "dxf -o -s c:\test\test" & i & ".dxf"    Ret(i) = Shell(Buffer(i), vbNormalFocus)   next i  こんなプログラムですが、処理がされてません。  コマンドプロンプトは一瞬3個開きます。  dxfをフルパスで記述しても同じです。 質問(1)    コマンドプロンプト上にメッセージが出ているようなのですが    一瞬で消えるので読めません。    コマンドプロンプトを閉じない方法はありませんか?    なければ出力を残す方法はありますか? 質問(2)    バッチファイルを毎回生成して、    そのバッチファイルをShellコマンドで実行すれば動くのかも知れませんが    他に良い方法はありませんか? よろしくお願いします。 私は、VB2010は初めて。 VB6で2個プログラムを作った程度です。 コマンドプロンプト関連(?)は初めてです。

  • フォルダのアクセス権の一覧を取得方法について

    Windowsのコマンドプロンプトでフォルダのアクセス権の一覧を取得したいです。 ディレクトリとサブディレクトリのアクセス権とオーナーが誰かだけ取得したいのですが、方法はありますでしょうか? PowerShellで実行しましたら、「get-acl 許可されていない操作を実行しようとしました。」と出まして、上手くいきません。 そこで、コマンドプロンプトで取得しようと考えているのですが、なかなか良い方法が見付かりませんでして。 ファイルに出力する形式にしたいです。 ご回答頂ければ幸いです。宜しくお願いします。

  • 拡張子を指定して、ファイルの差分を取る方法

    WindowsXPです。 フォルダを比較して、ファイル(テキストファイル)の差分をとる方法をお教えください。 ここで重要な条件は、比較する拡張子を指定できなければなりません。 例えば、拡張子が、txtのファイルのみとか、txtとcfのみなど。 サブディレクトリの中のファイルも比較できなければなりません。 どうも、このような場合には、diffというものを使うらしいのですが、 コマンドプロンプトでdiffと打っても 「'diff' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 というだけで、使えないようです。

  • C#でフォルダをロックする方法

    C#でフォルダをロックする方法を教えて下さい。 実現したい挙動は、こんな感じです。 1, コマンドプロンプトで、カレントディレクトリを「C:\test」にする 2, その状態で「C:\test」を削除しようとする 3, 「別のプログラムがこのフォルダを開いているので、操作を完了できません。」(Vistaの場合) つまり、フォルダはコマンドプロンプトのカレントディレクトリになっている間は削除することができませんが、これをコマンドプロンプトではなくプログラムから制御したいのです。(1プログラムで複数) ちなみに、ファイルをロックするのは stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None); という記述でできましたが、わかっていたことですが、フォルダではやはり失敗します。 よろしくお願いします。

  • DLLの登録をVBで行いたい(VB2005)

    いつもお世話になっております。 VB2005で開発しています。 DLLを登録するときに、コマンドプロンプトから regsrv32 ファイル名.dll と実行すると思います。 これをVBから行いたいのですが、何か良い方法はございませんか? 具体的には、VBでレジストリ登録するファイルの一覧を出力して、 それをレジストリ登録したいのです。 VBとバッチを組み合わせれば、実現可能なのですが、 ファイルを2つに分けたくないので、VBだけで処理できないものかと 思いました。 コマンドプロンプトで実行するコマンドをVBから同じように実行できれば良いのですが・・・ もしよろしければ、ご教示ください。 よろしくお願い致します。

  • VB5.0からVB6.0への移行について

    VB5.0からVB6.0への移行について プログラマー初心者です。 VB5.0で作成したプロジェクトを、VB6.0で開くと、 【'C:\...\marquee.ocx'を読み込めません。--プロジェクトのロードを続けますか?】と 【'C:\...\raocx32.dll'を読み込めません。--プロジェクトのロードを続けますか?】の メッセージが出力されます。 "marquee.ocx"と"raocx32.dll"は、ともにWebサイトよりダウンロードして、 'C:\WINDOWS\system32'に保管しましたが、認識しません。 コマンドプロンプトで、 'regsvr32 marquee.ocx'を実行させましたが、 【"marquee.ocx"は実行可能ファイルではないか、 またはこのファイルのヘルパが登録されていない可能性があります。】 というメッセージが出力されます。 "marquee.ocx"と"raocx32.dll"を読み込ませたいのですが、 方法を教えてください。 宜しくお願い致します。

  • OSを判別する方法

    現在、OSを認識してHOSTを修正するプログラムを作成しています。 OSを判別する際に With udtOSVersionInfo ' プラットフォームを表示 Select Case .dwPlatformId 'Win95/98/ME Case VER_PLATFORM_WIN32_WINDOWS 'WinNT/Win2000/WinXP Case VER_PLATFORM_WIN32_NT 上記の方法を用いていますが、ホストファイルの場所はOSによって 異なります。 WinNT/Win2000 C:\WINNT\SYSTEM32\DRIVERS\ETC\HOSTS WinXP C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS VBでOSを認識する際にWinNT/Win2000/WinXPをさらに どうやって判別すればいいでしょうか?

  • FTPで一覧リストを作成し取得(Get)したい

    VBで、FTPサーバに接続し、指定のディレクトリーからいくつかのファイルをダウンロードしています。ダウンロードするファイル数が沢山あり、出来る事なら、そのディレクトリー内のファイル名の一覧リストがほしいのです。DOSコマンドから見るときは、'ls'や'dir'は使えるのですが、一覧の作成ができません。DOSプロンプトからFTPサーバをOPENし、dir > aaa.txt と入力すると自端末のC:\document and Settings\自分のフォルダー配下に、そのaaa.txt は作られるのですが、中身が入ってきません。ファイルの一覧がほしいとき、VBではどのようにコーディングすればいいのでしょうか。教えていただければ本当に助かります。よろしくお願いいたします。

  • コマンドプロンプト

    Windows付属のコマンドプロンプトの使い方について。 moveコマンドで、ファイルを移動することができると聞きましたが、 ディレクトリ(フォルダ)の移動は、どうすれば良いですか? moveコマンドですと、ディレクトリ名の変更になってしまいます。 ここでの移動とは、カレントディレクトリを変更するcdではありません。 よろしくお願いします。

専門家に質問してみよう