Internet Explorer から Cookie を取得したい。だから私はウェブからのコードに従います。bodis.comなどのサイトにログインしてから、Cookieを読み取ろうとしました
Private Declare Function InternetGetCookieEx Lib "wininet.dll" Alias "InternetGetCookieExA" (url As String, cookieName As String, cookieData As System.Text.StringBuilder, ByRef size As Integer, dwFlags As Int32, lpReserved As IntPtr) As Boolean
Private Const InternetCookieHttponly As Int32 = &H2000
Public Function GetUriCookieContainer1(uri As Uri) As System.Net.CookieContainer
Dim cookies As System.Net.CookieContainer = Nothing
' Determine the size of the cookie
Dim datasize As Integer = 8192 * 16
Dim cookieData As New System.Text.StringBuilder(datasize)
Dim sURL = uri.ToString
sURL = "http://google.com" ' for simplicity sake
If Not InternetGetCookieEx(sURL, Nothing, cookieData, datasize, InternetCookieHttponly, IntPtr.Zero) Then
If datasize < 0 Then 'always return 0 even though I am sure there is cookies
Return Nothing
End If
...
datasize が常に 0 である理由。Cookie があることはわかっています。sURL="http://google.com" を入れて、google.com Cookie が必要であることを全員が理解できるようにします。私はすでに google.com にログインしており、実際に Cookie があります。
他のサイトも色々試しました。http://bodis.com http://www.bodis.comなど。どれも機能しません。