1

こんにちは、Vb プログラムで Web ブラウザーで使用する Cookie をインポートしたいと考えています。これらの Cookie は、高度な Cookie マネージャーと呼ばれるアドオンを使用して foirefox からエクスポートされたテキスト ファイルにあります。これは、YouTube および Google アカウントの Cookie の全文ファイル コンテンツです。

    accounts.google.com FALSE   /   TRUE    0   GALX    6eHg_ah2OcA
accounts.google.com FALSE   /   TRUE    0   GoogleAccountsLocale_session    en
accounts.google.com FALSE   /   TRUE    0   GAPS    1:_Nr1hdAKxmmjavGHMMvU0mmYvqJE8A:Nc1AzVmN-IKZb3oq
accounts.google.com FALSE   /   TRUE    0   LSID    s.DE|s.youtube|talk|youtube:DQAAALoAAADgCb0yghM0OyhoTEOWeKd__922mYyKa3H0yBIs5jGOfSbMfP6C76Ao7YBT3chA3BA4zmqB3w5so99qg0QzJgh4LmocSsTuOc7aAraSsUH0dxfz0lJpoWxYx7f3hXI1HB2XP6YVtlpHZi-VAjsaaRDLanfpMddm73RtUnlu4xSJoNAgF0xJNogs_Of4EPAssrchOowBKcdM1-P-aQMy7rgvo5V5RF1RxTVZ8dyWRdqk8ocqEk09M-dld3fLm7cZB7g
.youtube.com    TRUE    /   FALSE   0   VISITOR_INFO1_LIVE  2S8cjkP9HuI
.youtube.com    TRUE    /   FALSE   0   use_hitbox  d5c5516c3379125f43aa0d495d100d6ddAEAAAAw
.youtube.com    TRUE    /   TRUE    0   SSID    A6maF6dfv-b3voGtv
.youtube.com    TRUE    /   TRUE    0   SAPISID q2lzZ6EO9sD4zfaO/Ag61mffuXQhzbTylQ
.youtube.com    TRUE    /   TRUE    0   HSID    Al2Ze5_OdWHfE-lKA
.youtube.com    TRUE    /   TRUE    0   APISID  dCxiK0RIWXVF4ss9/ADUW4MrNC4wbMNIZo
.youtube.com    TRUE    /   FALSE   0   PREF    f1=50000000&fv=0.0.0
.youtube.com    TRUE    /   FALSE   0   ACTIVITY    1358853848282
.youtube.com    TRUE    /   TRUE    0   demographics    b5b9b36b16b837de11794f76ac5adc24e3QGAAAAZ2VuZGVydAEAAABtdAMAAABhZ2VpHgAAADA=
.youtube.com    TRUE    /   TRUE    0   SID DQAAALkAAABYU1N6s7Wc4ckiyqekON91HZLX2WNwPAtmyu82zizR8ahweELmw13pWScKM0DWZMn3DrGU4L-ycQQpQ2EirWKdJ0zfjdGZh3iZCfYhDZcCfDgAqSmWpbGS8UW0tbkapa7hTyoSlmu342A7xWtzujGSVW94RvmXmKc7f9U6jKQ55rTABiaoiZ3DEYqDjb2pSfGu9x1wRSTpDH09nGT_rvN-IPr6Exy9aLErbk0VHhjeQVD-a93jPbKs_71T9gGmr00
.youtube.com    TRUE    /   TRUE    0   LOGIN_INFO  ad4923957f199d9967473fbb9efc6facc3cAAAB7IjEiOiAxLCAiMiI6ICJSWVh2cXhhMHRMQmZaUHowTEpSdGFRPT0iLCAiMyI6IDEzNjEyNDgyMDYsICI0IjogIkdBSUEiLCAiNiI6IGZhbHNlLCAiNyI6IDEzNTg5NTY1ODAsICI4IjogNTMwMDM1NDIxMzY3fQ==`

私が知りたいのは、これらのテキスト ファイルまたはそのコンテンツを Vb Web ブラウザーで使用する方法です。

4

2 に答える 2

6

InternetSetCookie 関数は引き続き機能するはずです

http://netpl.blogspot.com/2008/09/property-of-mshtmlihtmldocument2-does.html

ファイルを解析 (簡単) してから、個々の Cookie ごとにメソッドを呼び出す必要があります。WebBrowser は Cookie を取得する必要があります。この手法は過去数回使用されています。

于 2013-10-07T21:45:20.803 に答える
6

WinFormsWebBrowserコントロールを使用するとします。

MSDN によるとCookies、WebBrower コントロールのプロパティはありません。これは、WebBrowser がデスクトップ IE と同じブラウザ状態を使用していると思われるためです...これは問題ではありません。

MSDN のこのスレッド ( http://social.msdn.microsoft.com/Forums/windows/en-US/e43239f3-3914-43ec-ac50-223b022ec2ea/webbrowser-control-and-cookies?forum=winformsdesigner ) によると、あなたはInternetSetCookieから関数をインポートすることで、Cookie を追加できwininet.dllます。

だから私はこのようなことをします(C#で、申し訳ありませんが、VBに変換するのは簡単なはずです)

// Ideally I'd parse the text-file using a finite-state-machine parser modelled on a CSV parser, but for this exercise I'll resort to `String.Split`.

private static List<String[]> GetCookieLines(String fileName) {

    List<String[]> cookieLines = new List<String[]>();
    using(FileStream fs = new FileStream( pathToYourCookies.txt, FileMode.Open ))
    using(StreamReader rdr = new StreamReader( fs, Encoding.UTF8 )) { 

        String line;
        while( (line = rdr.ReadLine()) != null ) {

            String[] components = line.Split('\t'); // assuming tab-separated file
            cookieLines.Add( components )
        }
    }
}

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern Boolean InternetSetCookie(string urlName, string cookieName, string cookieData);

public static void ImportCookies(String fileName) {

    List<String[]> cookies = GetCookieLines( fileName );
    foreach(String[] cookie in cookies) {

        String domainName = cookie[0];
        String name       = cookie[4];
        String value      = cookie[5];

        InternetSetCookie( domainName, name, value );
    }
}
于 2013-10-07T21:50:17.277 に答える