IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Questions sur le composant CppWebBrowser


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par d�faut Questions sur le composant CppWebBrowser
    Bonjour � tous.

    Dans le but de cr�er un navigateur de type : Borne Internet Publique, j'utilise le composant CppWebBrowser.

    Mon application est presque finie a 2 d�tails pr�s :

    1) J'aimerais d�sactiver le clic droit dans le CppWebBrowser, je ne vois pas comment faire, avez vous une solution ?

    2) Malheureusement, certains sites ont des liens qui s'ouvrent en popup lancant par la m�me occasion Internet Explorer et j'aimerais �viter cela.

    Je vous remercie d'avance pour votre aide !

  2. #2
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    Salut
    Pour ton clic droit
    [HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions]
    "NoBrowserContextMenu"=dword:00000001

    C� fonctionne depuis windows 98 jusqu � ( pour moi ) seven et IE 8
    Test� egalement dans l extension IE pour firefox , pas de souci

    Vois aussi

    NoBrowserClose D�sactive la fermeture des fen�tres d Internet Explorer par la barre de titre, par le menu Fichier, par la barre des t�ches, par le raccourci Alt + F4, etc...
    NoBrowserContextMenu D�sactive le clic droit sur les pages Web pour afficher le menu contextuel.
    NoBrowserOptions D�sactive la commande Options Internet du menu Outils.
    NoBrowserSaveAs D�sactive la commande Enregistrer sous du menu Fichier.
    NoFavorites D�sactive le menu Favoris.
    NoFileNew D�sactive la commande Nouveau du menu Fichier.
    NoFileOpen D�sactive la commande Ouvrir du menu Fichier.
    NoSelectDownloadDir D�sactive la s�lection d un dossier de t�l�chargement lorsque vous t�l�chargez un fichier. Vous ne pouvez que cliquer sur le bouton Ouvrir.
    NoTheaterMode D�sactive le mode d affichage en plein �cran (via la raccourci clavier F11 ou par le menu Affichage).
    NoViewSource D�sactive la commande Source du menu Affichage et du menu contextuel.
    NoNavButtons D�sactive les boutons Pr�c�dente et Suivante de la barre d outils.
    NoPrinting D�sactive les commandes Imprimer, Aper�u avant impression, et Mise en page du menu Fichier.


    Pour ton histoire de popup , fais un programme qui detecte IE et le ferme
    Pour pousser le vice , fais en un autre qui surveille , si le premier est en marche et qui le relances au cas o�
    Et bien sur meme chose pour le 1er sauf qu il surveille l existence du 2eme

    Je te conseille aussi de surveiller l explorer , les boites de dialogues sauvegarder et ouvrir ( genre site d upload ) , menu demarrer , gestionnaire des taches , raccourcis clavier , ...

    Dans ton 1er programme cr�� , utilises une liste blanche de processus , tout ce qui n est pas dedans , sera ferm�

    Allez vite fait en batch avec une sortie en csv donc exploitable en c++ qui te donne ta liste blanche
    Tasklist >1.txt /FO CSV

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    Memo1->Clear();
    ShellExecute(0,"","cmd.exe"," /c Tasklist >1.txt /FO CSV  /FI \"USERNAME ne AUTORITE NT\SYSTEM\" /FI \"STATUS eq running\"  ",NULL, SW_SHOWNORMAL );
    Sleep(2000);
    TStringList *fichier = new TStringList();
    fichier->LoadFromFile( "1.txt" ) ;
    TStringList *ligne ;
      for( int i=1; i< fichier->Count; i++ )
          // 1 car la 1ere ligne contient le nom des colonnes
         {ligne = new TStringList() ;
          ligne->Text = StringReplace(fichier->Strings[i], ',' , "\n", TReplaceFlags()<< rfReplaceAll );
            for(int j=0; j < ligne->Count; j++)
            {  if ( j%5==0 )
               // 5 car "Nom de l'image","PID","Nom de la session","Num‚ro de session","Utilisation m‚moire"  Comme 5 colonnes
                {Memo1->Lines->Add(  StringReplace(ligne->Strings[j], '"' , "", TReplaceFlags()<< rfReplaceAll ) ) ;
                 }
            } delete ligne    ; }   delete fichier ;
     
    }

    Apres il existe taskkill
    Et plus particulierement avec l argument IM
    L exemple ci dessous aura comme effet de fermer notepad
    TASKKILL /IM notepad.exe

    On peut imaginer cel� avec un programme ne faisant pas partie de la liste blanche
    Apres tu vas me dire que la fenetre dos qui apparait , c est pas beau
    Alors je conseillerai cmdow

    Le fichier cmdow.exe n'est pas un virus, mais une commande de Windows qui permet de modifier la position, la taille, et m�me de cacher une fen�tre console (outil qui permet de taper des lignes de commandes pour les programmeurs). Meme si depuis peu, certains logiciels antivirus d�tectent ce petit logiciel comme un virus, parce que justement il est capable d'agir sur des fen�tres de Windows.

    Si cmdow ne fonctionnait pas , utilises chp
    http://www.commandline.co.uk/chp/

    Dans un .bat
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    chp cmd.exe /c "tasklist >1.txt /fo csv"
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ShellExecute(0,"","C:\\Windows\\System32\\CHP.exe ","cmd.exe /c \"Tasklist >1.txt /FO CSV  \"  ",NULL, SW_SHOWNORMAL );

    Voil� tu n as plus qu � ajouter un timer et mettre dans son evenement une fonction qui recupere les processus et les compare � la liste blanche

    J ai juste un petit souci , je n arrive pas avec chp � passer les arguments /fi ... de tasklist � travers un shellexecute

    Bonne journ�e

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par d�faut
    Bonjour cedni, merci pour ta r�ponse,

    Pour le clic droit, j'ai fait comme tu m'a dis, ca fonctionne parfaitement.

    Par contre pour les popups on ne s'est pas compris :

    Les popups sont bloqu�s compl�tement pour le moment dans mon application.
    C'est a dire que si on click sur un lien qui est sens� s'ouvrir dans une nouvelle fenetre, c'est bloqu� et justement, ce que je veux c'est que cette page qui devait s'ouvrir en popup, s'ouvre dans la page actuelle !

    Merci d'avance

  4. #4
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    donne moi l url d un site qui fait �� et je verrais ce que je peux faire

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par d�faut
    Citation Envoy� par cedni Voir le message
    donne moi l url d un site qui fait �� et je verrais ce que je peux faire
    Voila un exemple :

    Le site http://www.auchan.fr

    Si tu cliques sur Billeterie � gauche, il ouvre dans une nouvelle page, cependant avec le composant CppWebBrowser, il ouvre Internet Explorer ( j'ai r�ussi a le bloquer ) mais j'aimerais quand meme ouvrir la page, dans le composant CppWebBrowser

    Merci d'avance

  6. #6
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    lol
    test avec firefox et ie
    je tombe sur un 404 , t en as pas un autre ?
    http://www.auchan.fr/index.jsp#

  7. #7
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    Un lien target blank , c est bon ?

    Sinon pour le moment , j arrive � afficher le lien externe dans l activex mais j ai tout de meme IE qui se lance

    Vois egalement ce lien
    http://www.bsalsa.com/

    C est un browser multi onglet dispo pour delphi , mais souvent on arrive � installer les meme composants

  8. #8
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::CppWebBrowser1NewWindow2(TObject *Sender,    LPDISPATCH *ppDisp, VARIANT_BOOL *Cancel)
    {
    *Cancel=true;
    WideString RedirectUrl = Memo1->Text.c_str()   ;
    //CppWebBrowser1->Stop();
     CppWebBrowser1->Navigate(RedirectUrl);
    }
    //-----------------------------------------------
     
    void __fastcall TForm1::CppWebBrowser1StatusTextChange(TObject *Sender,  BSTR URL)
    {
    Memo1->Text=URL ;  // variable recuperée BSTR URL
    }
    voil� �� devrait etre bon
    donc deux evenements : StatusTextChange et NewWindow2

    *Cancel=true; , c etait ��
    Quelqu'un peut m expliquer la signification de l asterisque devant Cancel ??

    Avec ce code on voit de suite combien il serait ais� de cr�er un navigateur � onglets ...

  9. #9
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Cancel est un pointeur, et la variable Cancel contient donc une adresse, pour pouvoir consulter le contenu de l'adresse ou pour pouvoir le modifier il faut mettre * devant la variable, ce qui signifie pour le compilateur "va � l'adresse contenu par la variable qui suit".

  10. #10
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    Merci il va falloir que j assimile les pointeurs

  11. #11
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Oui,
    pour ca tu peut consulter ce tuto, mais attention car il parle du C et du C++ qu'il faut bien diff�rentier et il est assez vieux, il y as maintenant de merveilleux outils qui permettent de ce passer de pointeur : http://chgi.developpez.com/pointeur/

    Sinon il y as le tr�s bon penser en C++ que je recommande de lire et sont chapitre sur les pointeurs

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par d�faut
    Citation Envoy� par cedni Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::CppWebBrowser1NewWindow2(TObject *Sender,    LPDISPATCH *ppDisp, VARIANT_BOOL *Cancel)
    {
    *Cancel=true;
    WideString RedirectUrl = Memo1->Text.c_str()   ;
    //CppWebBrowser1->Stop();
     CppWebBrowser1->Navigate(RedirectUrl);
    }
    //-----------------------------------------------
     
    void __fastcall TForm1::CppWebBrowser1StatusTextChange(TObject *Sender,  BSTR URL)
    {
    Memo1->Text=URL ;  // variable recuperée BSTR URL
    }
    voil� �� devrait etre bon
    donc deux evenements : StatusTextChange et NewWindow2

    *Cancel=true; , c etait ��
    Quelqu'un peut m expliquer la signification de l asterisque devant Cancel ??

    Avec ce code on voit de suite combien il serait ais� de cr�er un navigateur � onglets ...
    C'est donc l'evenement NewWindow2 qui g�n�re la page IE lors d'une popup ?
    Je ne peux pas tester actuellement car je suis au travail, je testerais ce soir d�s mon retour mais merci d'avance si ca fonctionne

Discussions similaires

  1. Questions sur le composant tJDCB*
    Par Scorpio85 dans le forum D�veloppement de jobs
    R�ponses: 5
    Dernier message: 10/06/2008, 19h02
  2. Question sur le composant WebBrowser
    Par djmustru dans le forum Delphi
    R�ponses: 4
    Dernier message: 15/03/2007, 11h14
  3. une question sur les composants
    Par m14w dans le forum Delphi
    R�ponses: 2
    Dernier message: 17/05/2006, 19h26
  4. [C#] Question sur le composant listview...
    Par irnbru dans le forum Windows Forms
    R�ponses: 4
    Dernier message: 18/11/2005, 10h26
  5. petite question sur le composant IBX ...
    Par vbcasimir dans le forum Bases de donn�es
    R�ponses: 4
    Dernier message: 05/01/2005, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo