2009-07-29 22 views

答えて

3

これを行う唯一の方法は、Win32シェル関数GetProfileTypeを呼び出すことです。 P/Invokeを使用して呼び出しを行い、次にPT_ROAMING(値が2)のpdwFlagsパラメーターのout値をチェックする必要があります。 1はハードではないでしょう作成

BOOL WINAPI GetProfileType(  
    DWORD *pdwFlags 
); 

私はpinvoke.netに、この機能のためではなく、このような単純なシグネチャを持つサンプルの署名が表示されません。

+0

@Bubbafat:ローミングプロファイルのユーザーには、デフォルトでインストール権がないのは本当ですか?これらのアクセス許可を設定する方法は? – gneash

1
[DllImport("Userenv.dll", EntryPoint = "GetProfileType", SetLastError = true, CharSet = CharSet.Auto)] 
    public static extern bool GetProfileType(ref uint pdwflags); 

    [Flags] 
    enum Win32ProfileType : uint { 
     Local=0x00, 
     Temporary=0x01, 
     Roaming=0x02, 
     Mandatory=0x04 
    } 


    public void SomeTest() 
    { 
     uint type = 0; 
     if (GetProfileType(ref type)) { 
      //todo 
     } 
    } 
関連する問題