• 締切済み

レジストリの文字列から

macchunの回答

  • macchun
  • ベストアンサー率50% (3/6)
回答No.5

Windows NT/2000/XP 等で動作させるのでしたら、以下の方法があります。 1. ファイル名を UNICODE に変換する(MultiByteToWideChar() などで) 2. ファイル名の先頭に "\\?\" を付記する(例えば、"C:\BACKUP" なら "\\?\C:\BACKUP" に変換)。 3. mkdir()/CreateDirectory() の代わりに CreateDirectoryW() を使用する。 これを行うことによって、相対パス(例えば"C:BACKUP")を指定したときにエラーが発生するようになるはずです。 ただ、この方法は Windows 95/98/Me では使用できません。もしこれらのOSも対象とする場合には、フルパスを取得して、それと相違がある場合には失敗させる方法もありますが、いかがでしょうか?

関連するQ&A

  • C言語

    レジストリのキーから値を取得し、その取得した値の中フォルダのファイルの有無を調べあるなら他のフォルダにそのファイルをコピーしたいのですがわかりません。。。レジストリのオープンとキーの取得はわかるんですが。 例 ルートキーHKEY_LOCAL_MACHINE\SOFTWARE\HRPS\BPSS   値の名前 PathName キーの値 c:\program\HRPS このキーの値からc:\program\HRPS の中のファイル(file.c)をチェックし、あれば別のフォルダc:\program\fileの中にコピーしたいんです><

  • C言語で取得した文字列を、C++の文字列として取り扱いたいです。

    C言語で取得した文字列を、C++の文字列として取り扱いたいです。 皆さんこんにちは。 C言語で取得したchar型で定義された文字列を、 C++の「std::string」に渡したいと思っております。 どうすればかなうでしょうか? 具体的には次のような内容です。 ■C言語側 ---- char key1 = "deperture"; ---- ■C++側で「key1 = key2」としたいです。 ---- std::string key2 = key1; ---- C言語側で記述されている「key1」の値(deperture)を、 C++ソース内の「key2」に渡したいと思っています。 こうゆう場合、どんな方法をとれば適切でしょうか。 C言語側でのchar型の文字列の値を、 C++側の「std::string」型として C++のソースへ渡す方法が分からないです。 アドバイスいただけるとありがたいです。 簡単な例を頂けると更に大変ありがたいです。 以上どうぞ宜しくお願い致します。

  • レジストリの値

    どなたかWindows2000を使っておられる方、下のレジストリの値を教えていただけないでしょうか。 HKEY_CLASSES_ROOT→folder→open→command の値です。

  • Windowsのレジストリをみて、コントロールパネルの値を知りたい

    お世話になります。 厳密にいうと、C,C++の質問ではないかも知れませんが プログラムから、Windowsの地域と言語のオプションの 言語タブの「東アジア言語のファイルをインストールする」が チェックされているか否かを取得したいと思っています。 C,C++でやるんなら、レジストリの値を見ればいいのだろうと 思うのですが、どのレジストリをみればいいか、ご存知ないでしょうか? (それとも、レジストリをみないで、コンパネの値を問い合わせる APIがあったり???)

  • レジストリエディタで・・・

    レジストリエディタで「お気に入り」フォルダを別ドライブに移動したら、 フォルダの種類と属性が変わってしまったのですが、大丈夫なのでしょうか? フォルダの種類・・・シェルお気に入りフォルダ→ファイルフォルダ 属性・・・システムの部分のチェックボックスがチェック→されていない 回答宜しくお願いします。

  • C言語で文字列置き換え

    をしたのですが 例 取得した値でC:\\programfile\\LOGがあり 文字列処理を行ってLOGをRESULTにかえ C:\\programfile\\RESULT としたいのですがうまくいきません。 strtokを使って、その後にstrcatで連結させようとしたのですが・・・。教えてください><

  • レジストリの削除について

    たびたび質問すいません。 初めてレジストリを削除するのですがわからないので教えてください。 http://support.microsoft.com/kb/2748410/jaの 「方法 2: レジストリを手動で更新する」 4. レジストリから次の 2.0 キーを参照して、削除します。 HKEY_CLASSES_ROOT\TypeLib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 をしようとしてるのですが 【1】「2.0」のフォルダで右クリックして削除するのか、 【2】「HELPDIR」で右クリックして削除するのか、 どちらでしょうか? [{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}] の値が入ってるのは、【2】のほうだけど、リンク先には、「HELPDIR」でとは書いてないので、 どうすればいいか迷っています。 ご教授よろしくお願いします。

  • レジストリの検索

    こんにちは。 お世話になります。 早速ですが、 WSHを使って、レジストリキーを検索し、そのキーの入ってるフォルダごと削除するような vbsを作りたいのですが、レジストリキーを検索する方法がわかりません。 検索したいレジストリキーの場所は、コンピュータによって変わってしまうので あるキーワードを元にレジストリ全体を検索し、そのキーのパスを取得したいと考えています。 レジストリの検索方法をご存知の方、やり方を教えていただけないでしょうか。 よろしくお願いいたします。

  • エクセルファイルのセル値に特定文字列を追加して別ファイルに

    VB2008でのプログラム方法についての相談です。以下の手順を実現したいです。 (1)エクセルファイルのあるセル中にあるデータを取得 例)A1セルの値"AA"、A2セルの値"BB"、A3セルの値"CC"..... (2)決まりきった特定文字列と(1)の値を結合 例)くっつけたい文字列 " "+AA ⇒ くっつけたい文字列"AA" くっつけたい文字列 " "+BB ⇒ くっつけたい文字列"BB" くっつけたい文字列 " "+CC ⇒ くっつけたい文字列"CC" (3)テキストファイルを生成 ○○○.txt 例) くっつけたい文字列"AA" くっつけたい文字列"BB" くっつけたい文字列"CC"

  • 最も多い文字列を検索するには

    皆様いつもお世話になっております。 最も多い文字列を検索するにはどのようにすればよいでしょうか。 具体的には (1)A列に6文字の文字列が並んでいます。 (2)先頭4文字の文字列で最も多い種類の文字列の値を取得する (3)最も多い文字列以外の文字列を含む行を削除する というプログラムを組みたいと思います。 よろしくお願いします。