2

2 つのレジストリ キーの URL と URL 時間を抽出しています。リストビューで表示したい。URLと時間の両方が異なるregキーにあるため、ループを使用して、リストビューの最初の列をループで2番目に埋めるにはどうすればよいですか.....

listViewCookies.Columns.Add("TYPED URL", 300);

listViewCookies.Columns.Add("TIME", 400);

string[] url = new string[2];
ListViewItem item;

using (RegistryKey rk = Registry.Users.OpenSubKey(strSID + @"\Software\Microsoft\Internet Explorer\TypedURLs"))
{
  try
  {
    foreach (string u in rk.GetValueNames())
    {
       url[0] = rk.GetValue(u).ToString();
    }
  }
  catch { }
}

using (RegistryKey rk = Registry.Users.OpenSubKey(strSID + @"\Software\Microsoft\Internet Explorer\TypedURLsTime"))
{
  try
  {
    foreach (string u in rk.GetValueNames())
    {
      object val = rk.GetValue(u);
      DateTime output = DateTime.MinValue;
      if (val is byte[] && ((byte[])val).Length == 8)
      {
        byte[] bytes = (byte[])val;
        System.Runtime.InteropServices.ComTypes.FILETIME ft = new System.Runtime.InteropServices.ComTypes.FILETIME();
        int valLow = bytes[0] + 256 * (bytes[1] + 256 * (bytes[2] + 256 * bytes[3]));
        int valTwo = bytes[4] + 256 * (bytes[5] + 256 * (bytes[6] + 256 * bytes[7]));
        ft.dwLowDateTime = valLow;
        ft.dwHighDateTime = valTwo;
        DateTime UTC = DateTime.FromFileTimeUtc((((long)ft.dwHighDateTime) << 32) + ft.dwLowDateTime);
        TimeZoneInfo lcl = TimeZoneInfo.Local;
        TimeZoneInfo utc = TimeZoneInfo.Utc;
        output = TimeZoneInfo.ConvertTime(UTC, utc, lcl);
        url[1] = output.ToString();
      }
    }
  }
  catch { }
}

item = new ListViewItem(url);
listViewCookies.Items.Add(item);
4

2 に答える 2

1

new を作成する代わりにListViewItem、最初に作成できます。

 ListViewItem item = new ListViewItem();

次に、最初の列を設定する場合:

 item.Text = "url ..." // Column 0 (Url)

2 番目の列を設定するには:

 item.SubItems.Add("time..."); // Column 1 (Time)

次に、最後に をListViewItemリスト ビューに追加します。

 listViewCookies.Items.Add(item);

編集、ここに変更された例があります:

   listViewCookies.Columns.Add("TYPED URL", 300);
   listViewCookies.Columns.Add("TIME", 400);

        ListViewItem item = new ListViewItem();


        using (RegistryKey rk = Registry.Users.OpenSubKey(strSID + @"\Software\Microsoft\Internet Explorer\TypedURLs"))
        {
            try
            {
                foreach (string u in rk.GetValueNames())
                {

                    item.Text = rk.GetValue(u).ToString();


                }
            }
            catch { }
        }


        using (RegistryKey rk = Registry.Users.OpenSubKey(strSID + @"\Software\Microsoft\Internet Explorer\TypedURLsTime"))
        {
            try
            {
                foreach (string u in rk.GetValueNames())
                {

                    object val = rk.GetValue(u);

                    DateTime output = DateTime.MinValue;
                    if (val is byte[] && ((byte[])val).Length == 8)
                    {
                        byte[] bytes = (byte[])val;

                        System.Runtime.InteropServices.ComTypes.FILETIME ft = new System.Runtime.InteropServices.ComTypes.FILETIME();
                        int valLow = bytes[0] + 256 * (bytes[1] + 256 * (bytes[2] + 256 * bytes[3]));
                        int valTwo = bytes[4] + 256 * (bytes[5] + 256 * (bytes[6] + 256 * bytes[7]));
                        ft.dwLowDateTime = valLow;
                        ft.dwHighDateTime = valTwo;

                        DateTime UTC = DateTime.FromFileTimeUtc((((long)ft.dwHighDateTime) << 32) + ft.dwLowDateTime);
                        TimeZoneInfo lcl = TimeZoneInfo.Local;
                        TimeZoneInfo utc = TimeZoneInfo.Utc;
                        output = TimeZoneInfo.ConvertTime(UTC, utc, lcl);

                        item.SubItems.Add(output.ToString());

                    }
                }
            }

            catch { }
        }

        listViewCookies.Items.Add(item);

    }
于 2013-08-23T13:00:27.777 に答える