1 votes

Y a-t-il un moyen de se connecter automatiquement à google chrome en programmant ?

Je dois connecter Google Chrome à un domaine Google Apps sur un grand nombre d'ordinateurs. Chaque ordinateur a accès à son nom d'utilisateur ainsi qu'à son mot de passe temporaire. Existe-t-il un moyen de se connecter à Chrome automatiquement? Il serait préférable de le faire sans installer de logiciel supplémentaire.

Jusqu'à présent, j'ai essayé de me connecter en utilisant le script Visual Basic SendKeys pour émuler des frappes de touches. Bien que cette méthode fonctionne, elle se casse souvent lorsque Chrome est mis à jour, lorsque l'ordinateur est lent, ou dans beaucoup d'autres circonstances imprévues.

0 votes

Vous pourriez peut-être faire quelque chose avec les commutateurs de ligne de commande --login.... Voir Liste des commutateurs de ligne de commande de Chromium

0 votes

Il semble qu'ils aient supprimé la commande --login-password

1voto

Michael Points 68

Ceci est plus une mesure provisoire qu'une solution, donc je ne vais pas marquer cela comme une solution.

Actuellement, je résous ce problème en ayant un programme générer et exécuter un fichier vbs pour entrer le nom d'utilisateur et le mot de passe de l'utilisateur. Ensuite, j'ai un autre programme qui vérifie le fichier de préférences de Chrome pour voir s'il a été configuré avec succès. Sinon, le script est relancé.

chromeConf.vbs (J'ai écrit un autre programme qui génère automatiquement ce fichier et l'exécute sur chaque ordinateur) :

Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "^{ESCAPE}" 'menu démarrer
WScript.Sleep 1000 'attendre le chargement
oShell.SendKeys "chrome.exe" 'chrome
WScript.Sleep 1000
oShell.SendKeys "{ENTER}"
return = oShell.Run("waitForFocus.exe Chrome", 0, true) 'attendre que Chrome s'ouvre
oShell.SendKeys "%{F4}" 'allez, disparais !
'Chrome doit être démarré deux fois pour garantir le même état de démarrage sur tous les ordinateurs.
oShell.SendKeys "^{ESCAPE}" 'menu démarrer
WScript.Sleep 1000 'attendre le chargement
oShell.SendKeys "chrome.exe" 'chrome
WScript.Sleep 1000
oShell.SendKeys "{ENTER}"
return = oShell.Run("waitForFocus.exe Chrome", 0, true)
oShell.SendKeys "chrome://settings" 'paramètres
oShell.SendKeys "{ENTER}"
WScript.Sleep 5000
oShell.SendKeys "{TAB}{TAB}" 'sélectionner connexion
oShell.SendKeys "{ENTER}"
WScript.Sleep 8000
oShell.SendKeys "{TAB}{TAB}" 'connexion
oShell.SendKeys "user@example.com"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{ENTER}"
WScript.Sleep 4000
oShell.SendKeys "password"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{ENTER}"
WScript.Sleep 4000
oShell.SendKeys "{TAB}" 'lien données
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{ENTER}"
WScript.Sleep 4000
oShell.SendKeys "{ESCAPE}" 'se débarrasser de la boîte de dialogue ennuyeuse
oShell.SendKeys "%{F4}" 'allez, disparais !

waitForFocus.exe source :

// waitForFocus.cpp : Ce programme attend le chargement d'une fenêtre d'un nom spécifié

#include "stdafx.h"
#include 
#include 
#include 

using namespace std;

LPWSTR pszMem;

BOOL CALLBACK FindWindowBySubstr(HWND hwnd, LPARAM substring)
{
    const DWORD TITLE_SIZE = 1024;
    TCHAR windowTitle[TITLE_SIZE];

    if (GetWindowText(hwnd, windowTitle, TITLE_SIZE))
    {
        string fstr = CW2A(windowTitle);  // convertir le titre de la fenêtre en chaîne de caractères
        if (fstr.find(LPCSTR(substring)) != string::npos && !(fstr.find("waitForFocus.exe") != string::npos)) { // est-ce ce que nous voulons
            cout << "Trouvé la fenêtre !" << endl;
            _tprintf(TEXT("%s\n"), windowTitle);
            SwitchToThisWindow(hwnd, true); // Le vrai activer l'émulation alt tab qui empêche le bug de fenêtre transparente
            return false;
        }
    }
    return true;
}

int main(int argc, char* argv[])
{
    if (argc > 2) {
        cout << "Ce programme prend 1 argument" << endl;
        cout << "L'argument doit être une partie du nom de la fenêtre que vous voulez attendre" << endl;
    }
    // le reste du code est omis pour des raisons de longueur et de lisibilité

validateGoogleChrome.exe source (ce programme vérifie si Chrome a été configuré. Il suppose que le nom d'utilisateur de l'ordinateur est le même que le nom d'utilisateur du compte Google Apps. Il doit également être exécuté dans %LOCALAPPDATA%\Google\Chrome\User Data\Default\Preferences) :

// validateGoogleChrome.cpp : Définit le point d'entrée de l'application console.

#include "stdafx.h"
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

// le reste du code est omis pour des raisons de longueur et de lisibilité

Je espère que ce code vous a horrifié et vous a incité à trouver une meilleure solution.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X