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

Outils Delphi Discussion :

Compatibilité D5 / VNC


Sujet :

Outils Delphi

  1. #1
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut Compatibilité D5 / VNC
    lorsque je fais tourner mon appli à travers VNC, j'ai aléatoirement un accessViolation sur ClientToScreen.

    Quelqu'un a deja eu ce genre de pb ?
    Faut-il prendre des précautions particulières pour etre compatible VNC ? (ou autre outil de prise de main d'ailleurs)

    merci
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Tiens, c'est bizarre. Tu utilise quelle version de VCN?
    As-tu essayé de faire une petite appli de test pour vérifier si le problème vient bien de là?

  3. #3
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Etrange, nous utilisons LapLink et PCAnyWhere sans problèmes de ce genre depuis... Windows 3.11 et Delphi 1. Quel est donc celui que tu utilises ? As-tu le même problème sur tous les postes ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  4. #4
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    VNC 3.3.6, WinNT sp6, D5

    en fait, le probleme n'est pas systématique, mais il n'apparait que quand je lance depuis VNC (environ 1 fois sur 4), jamais quand je lance l'appli en local.
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  5. #5
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Nous avons eu de temps en temps des problèmes assez bizarres avec les VNC, la plupart ont été résolus en réduisant les accélération matérielles graphiques ( Bureau->proproiétés->Paramètres->avancées->Peformances mettre le curseur vers "aucune" ).
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  6. #6
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    merci Nono, je vais essayer ça.

    Je passe en résolu, je ferai un nouveau thread si nécessaire
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [Résolu] Compatibilité D5 et VNC
    Salut Gord's

    Dommage que je n'ai point vu ton message à temps !
    Et oui, j'ai eu le même problème l'an dernier et comme ça m'a pris du temps avec un collègue de comprendre ce qui se passait, voici nos conclusions :

    L'exception est reproductible mais pas systématique avec D5 et une version particulière de VNC (sais plus laquelle !)
    En tout cas, VNC provoque l'erreur qui n'est pas contrôlée par D5 mais qu'il l'est par D6 et D7.

    Corrolaire : pas de compatibilité, il faut compiler avec D6 ou D7

    On a vu que l'exception de notre soft venait de ScreenToClient. On a ensuite remonté jusqu'a FindDragTarget, puis FindVCLWindow, et enfin FindControl.

    Or dans le code Delphi, l'implémentation de FindControl change suivant les versions.
    Et seul D5 (et VNC !) permettent de claquer l'exception.

    Quand on regarde le code de FindControl et notamment les commentaires, on voit qu'il y a eut du changement...
    J'ai posé la question directement au support mais pas de réponse...


    Voici le code de FindControl en D5 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    { Find a TWinControl given a window handle }
    function FindControl(Handle: HWnd): TWinControl;
    begin
      Result := nil;
      if (Handle <> 0) then
      begin
          Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)))
      end;
    end;
    Code de FindControl en D6 :

    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
     
    { Find a TWinControl given a window handle }
    { The global atom table is trashed when the user logs off.  The extra test
      below protects UI interactive services after the user logs off.  }
    function FindControl(Handle: HWnd): TWinControl;
    begin
      Result := nil;
      if (Handle <> 0) then
      begin
        if GlobalFindAtom(PChar(ControlAtomString)) = ControlAtom then
          Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)))
        else
          Result := ObjectFromHWnd(Handle);
      end;
    end;
    Code de FindControl en D7 :

    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
    21
     
    { Find a TWinControl given a window handle }
    { The global atom table is trashed when the user logs off.  The extra test
      below protects UI interactive services after the user logs off.  
      Added additional tests to enure that Handle is at least within the same 
      process since otherwise a bogus result can occur due to problems with 
      GlobalFindAtom in Windows.  }
    function FindControl(Handle: HWnd): TWinControl;
    var
      OwningProcess: DWORD;
    begin
      Result := nil;
      if (Handle <> 0) and (GetWindowThreadProcessID(Handle, OwningProcess) <> 0) and
         (OwningProcess = GetCurrentProcessId) then
      begin
        if GlobalFindAtom(PChar(ControlAtomString)) = ControlAtom then
          Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)))
        else
          Result := ObjectFromHWnd(Handle);
      end;
    end;

    Voilà, j'espère que ça aura éclairé ta lenterne ! (mieux vaut tard que jamais)

  8. #8
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    merci Bennyouioui !!!
    En fait, on n'en a plus besoin, mais ça fait toujours plaisir de comprendre, nous nous étions arraché les cheveux la dessus !
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. help!! problème de compatibilité ascendante
    Par valfredr dans le forum XMLRAD
    Réponses: 5
    Dernier message: 16/06/2003, 16h15
  2. [7RC3] Compatibilité avec les anciennes versions ...
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 3
    Dernier message: 15/05/2003, 16h46
  3. [Kylix] Kylix et serveur VNC
    Par ghost942 dans le forum EDI
    Réponses: 2
    Dernier message: 10/01/2003, 23h11
  4. Compatibilité Visibroker 4.5 C++ Builder
    Par manuel dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 21h57
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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