вставлять cookie в Chrome с помощью приложения Windows Form в VB

57
5

Мне нужно ввести cookie в FireFox и Chrome через приложение Windows Form, написанное на VB. Для этого я не смог найти какой-либо код или документацию в Интернете. Ниже приведен пример, как я это сделал для IE, но я не знаю, с чего начать с FireFox или Chrome. Любая помощь будет оценена по достоинству.

Option Explicit On
Module createCookie
Private Declare Function InternetSetCookie Lib "wininet.dll" _
Alias "InternetSetCookieA" _
(ByVal lpszUrlName As String, _
ByVal lpszCookieName As String, _
ByVal lpszCookieData As String) As Boolean

Private Declare Function InternetGetCookie Lib "wininet.dll" _
Alias "InternetGetCookieA" _
(ByVal lpszUrlName As String, _
ByVal lpszCookieName As String, _
ByVal lpszCookieData As String, _
lpdwSize As Long) As Boolean

Public Function setCookie(cookieExpTimeGMT As String)
Dim bRet As Boolean

bRet = InternetSetCookie("http://testsite.com", "CookieName", "Cookie Value" & "; expires = " & cookieExpTimeGMT)

Return bRet
End Function
End Module

спросил(а) 2016-03-29T19:08:00+03:00 4 года, 6 месяцев назад
1
Решение
106

Я нашел решение своего вопроса. Firefox и Chrome используют файлы SQLite DB для хранения файлов cookie. Для записи файла cookie в файл DB можно использовать System.Data.SQLite (поиск google для загрузки). Дата истечения срока действия отличается от Firefox и Chrome. Chrome - это количество микросекунд с 1/1/1601, а Firefox - количество секунд с 1/1/1970.

Imports System.Data.SQLite
Imports System.Environment

Module createCookieChrome
Public Function setChromeCookie(newValue As String, orgValue As String, cookieExpTimeGMT As String, hostName As String, cookieName As String, currentTime As String)
Dim fRtn As Boolean = False
Dim chromeCookiePath As String, strDb As String

chromeCookiePath = GetFolderPath(SpecialFolder.LocalApplicationData) & "\Google\Chrome\User Data\Default\Cookies"
If chromeCookiePath = Nothing Then
fRtn = False
Else
Try
strDb = "Data Source=" + chromeCookiePath + ";pooling=false"
Dim SQLConn As SQLiteConnection = New SQLiteConnection(strDb)
Dim SQLcmd As SQLiteCommand = SQLConn.CreateCommand()

SQLcmd.CommandText = "INSERT INTO 'cookies'('creation_utc','host_key','name','value','path','expires_utc','secure','httponly','last_access_utc','has_expires','persistent','priority','encrypted_value') " & "VALUES (" & currentTime & ",'." & hostName + "','" & cookieName & "','" & newValue & orgValue & "','/'," & cookieExpTimeGMT & ",1,1," & currentTime & ",1,1,1,'')"
SQLConn.Open()
Dim rtV As Int64 = SQLcmd.ExecuteNonQuery()
SQLConn.Close()
fRtn = True
Catch e As Exception
fRtn = False
End Try
End If

Return fRtn

End Function
End Module

ответил(а) 2016-04-15T23:16:00+03:00 4 года, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема