Программно acess история Google chrome
Я хочу проиндексировать все действия пользователей и веб-сайты в google chrome. я понимаю, что google chrome индексирует все данные в базе данных sqlLite. как я могу программно получить доступ к истории chrome web в моем собственном приложении
3 ответа:
Вам нужно загрузить соответствующую сборку со страницы SQLite downloads
Как только вы добавляете ссылку на сборку SQLite, она очень похожа на стандартную ADO.net
Вся история пользователей хранится в базе данных истории, расположенной по пути в строке подключения ниже
SQLiteConnection conn = new SQLiteConnection (@"Data Source=C:\Users\YourUserName\AppData\Local\Google\Chrome\User Data\Default\History"); conn.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; // cmd.CommandText = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"; // Use the above query to get all the table names cmd.CommandText = "Select * From urls"; SQLiteDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Console.WriteLine(dr[1].ToString()); }
В приложении Windows form с инструментом Datagridview-кнопка click event
private void button1_Click(object sender, EventArgs e) { string google = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\History"; string fileName = DateTime.Now.Ticks.ToString(); File.Copy(google, Application.StartupPath + "\\" + fileName); using (SQLiteConnection con = new SQLiteConnection("DataSource = " + Application.StartupPath + "\\" + fileName + ";Versio=3;New=False;Compress=True;")) { con.Open(); //SQLiteDataAdapter da = new SQLiteDataAdapter("select url,title,visit_count,last_visit_time from urls order by last_visit_time desc", con); SQLiteDataAdapter da = new SQLiteDataAdapter("select * from urls order by last_visit_time desc", con); DataSet ds = new DataSet(); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; con.Close(); } try // File already open error is skipped { if (File.Exists(Application.StartupPath + "\\" + fileName)) File.Delete(Application.StartupPath + "\\" + fileName); } catch (Exception) { } }
Ссылка Источник
Здесь я скопировал файл истории в путь запуска приложения, чтобы избежать ошибки SQLite "база данных заблокирована".
Используется ниже код, получающий "Windows/x86_64" в результате
try { Class.forName ("org.sqlite.JDBC"); connection = DriverManager.getConnection ("jdbc:sqlite:/C:/Users/tarun.kakkar/AppData/Local/Google/Chrome/User Data/Default/History"); statement = connection.createStatement (); resultSet = statement.executeQuery ("SELECT * FROM urls"); while (resultSet.next ()) { System.out.println ("URL [" + resultSet.getString ("url") + "]" + ", visit count [" + resultSet.getString ("visit_count") + "]"); } } catch (Exception e) { e.printStackTrace (); }