ロック済み VB.NETからレジストリ操作のAPI使用方法について

  • 2010年8月9日 14:17
     
     

    VB2003 にて Windows CE デバイスアプリケーションを試作中です。

    アプリケーションのユーザー固有の情報をレジストリに保存して使用したいのですが、
    アプリケーションから Windows CE デバイスのレジストリを操作する方法について教えていただけませんでしょうか。

    Win32.RegistryクラスがないのでAPIを使用する必要があるというところまではわかったのですが、
    インポートするDLL、使用するAPI等について明確な情報が得られていない状況です。

    対象となるデバイスOSは Windows CE 5.0 です。
    よろしくお願いいたします。

すべての返信

  • 2010年8月19日 7:05
     
     

    こんにちわ。ナカタと申します。

    > インポートするDLL、使用するAPI等について明確な情報が得られていない状況です。

    試していないので恐縮ですが、

    インポートするDLLはcoredll.dllで、

    Win32APIは

    ■RegCreateKeyEx(http://msdn.microsoft.com/en-us/library/ms891450.aspx

    ■RegSetValueEx(http://msdn.microsoft.com/en-us/library/ms891469.aspx

    ■RegQueryValueEx(http://msdn.microsoft.com/en-us/library/ms891462.aspx

    ■RegCloseKey(http://msdn.microsoft.com/en-us/library/ms891448.aspx

    などなどでしょうか。

    APIに関しては他にもありますので、MSDNを調べてみてください。

     

  • 2010年8月24日 13:56
     
     

    .Net CF 2.0以降はWin32.Registryが使用可能です。ただしデバイスの.Net CFバージョンはベンダ次第なので確認は必要です。
    .Net CF1.0系ではp/invokeでWin32レジストリAPIを呼び出すしかありません。

    またVB2003ではWindowsCE5.0用開発はできない(正確に言えばデバッグツールなどが使えず実用的でない)上に、.Net Framework2.0以降(CF2.0も)の開発ができませんが、これは問題ないのでしょうか?
    趣味の範疇ならかまいませんが、業務ならば適切なツールを使用して開発すべきと思います。

  • 2010年8月25日 12:36
     
     

    ナカタさん、ホーミンさんありがとうございます。
    それから返信遅れてしまって申し訳ないです。

    >インポートするDLLはcoredll.dllで、

    coredll.dllでしたか。とても助かります。
    今すぐにはできないのですが、Libraryを参考にやってみます。


    >.Net CF 2.0以降はWin32.Registryが使用可能です。ただしデバイスの.Net CFバージョンはベンダ次第なので確認は必要です。

    情報が不足していました。すみません。
    対象の端末は.Net CF 1.0標準対応とのことです。


    >またVB2003ではWindowsCE5.0用開発はできない(正確に言えばデバッグツールなどが使えず実用的でない)上に、.Net
    >Framework2.0以降(CF2.0も)の開発ができませんが、これは問題ないのでしょうか?
    >趣味の範疇ならかまいませんが、業務ならば適切なツールを使用して開発すべきと思います。

    現時点ではまだ試作の段階なので、それも含めて検証しているところです。
    (端末メーカーからはVB2003での開発が可能と情報をいただいています)
    また、確かにVB2003で起動するWindows CE エミュレータがWindows CE 4.0なので多少やりにくいところはありますが、
    今のところActiveSync4.2を使用して実機でのデバッグができていますので、引き続き検証を進めていくつもりです。