Crash explorateur Win7 la Methode ClipBoard.Clear (VB.NET)

JCDevelop Messages postés 1 Statut Membre -  
Kalissi Messages postés 221 Statut Membre -
Bonjour,

Débutant en VB.Net, dans un but formatif j'ai entrepris l'écriture d'un petit programme qui a pour objectif la collecte d'informations (chaînes de caractères), lesquelles sont sauvegardées dans un fichier. L'utilisation de ces informations, une fois sélectionnées dans une liste, se fait par l'intermédiaire du Presse Papier vers une autre application.

Aucun problème en mode debug, L'EXE est aussi généré sans problème, tout ça fonctionne bien.

J'ai cependant identifié un grave problème avec l'utilisation de la méthode
' My.Computeur.CLIPBOARD.CLEAR() ' pour effacer le contenu du PP à la fermeture du formulaire.
Mon application fait "crasher" de l'explorateur windows : "Explorateur a cessé de fonctionner ..."

J'ai essayé avec d'autres méthodes :
La méthode suivante est refusée par le compilateur : Clipboard.SetText(""), la valeur ne pouvant être Nulle
Celle-ci : Clipboard.SetText(" ") bien entendu fonctionne sans problème, aucun crash et dont je pourrai me contenter.

Mais j'aimerai comprendre ??????

J'ai "fouillé" et pas vraiment trouvé de réponse claire : un ou deux sites étrangés en parle sans apporter réellement de solution.

Auriez-vous une petite idée ? Merci !

JC
(dev s/ VB Express 2010)

9 réponses

  1. Kalissi Messages postés 221 Statut Membre 20
     
    Bonjour,

    As-tu importé l'espace de nom :

    Microsoft.VisualBasic.MyServices

    Voir ici :
    <http://msdn.microsoft.com/fr-fr/library/fbkdxwy6(v=vs.90).aspx>

    K
    0
  2. JCDevelop
     
    Bonsoir,

    J'ai essayé cela :

    'Imports Microsoft.VisualBasic.MyServices'

    Malheureusement le problème n'est pas résolu pour autant.
    Merci pour la réponse,
    JC
    0
  3. Kalissi Messages postés 221 Statut Membre 20
     
    re:

    J'essairai peut-être ceci :

    Clipboard.SetText(String.Empty) ???

    K
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. JCDevelop
     
    Bonsoir,
    Testé, malheureusement c'est refusé par VB.net express !!
    pas de chaîne vide.

    Ce qui me surprend, c'est que je sois le seul (apparemment, vu l'absence de réponse, j'ai aussi posté sur un autre forum).
    J'ai 3 PC à la maison (W7 x64), le problème de crash est sur les 3.
    Bizarre, bizarre !!
    0
  6. Kalissi Messages postés 221 Statut Membre 20
     
    re:

    Pour l'instant, je n'ai pas d'autres idées.

    Peut-être plus tard quand j'aurai remonter mon poste avec Linux Open Suse 12.2,
    et que j'aurai virtualisé les version de Windows, je pourrai faire des test.

    J'ai rencontré ce problème sur VBA et j'ai du ajouter une déclaration d'API.


    Public Declare Function CountClipboardFormats Lib "user32" () As Long
    Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Function EmptyClipboard Lib "user32" () As Long
    Public Declare Function CloseClipboard Lib "user32" () As Long

    Je ne sais pas si tu peux obtenir ces API sur W7 64 bits

    k
    0
  7. JCDevelop
     
    Je viens de tester ta proposition. Le problème n'est pas résolu.
    Du moins sur mes machines qui sont en W7 X64. Il faudrait que je teste sur W7 X32.
    En fait l'explorateur est instable (mon appli refermé) tant que le Presse Papier est vide. Dès qu'il est rempli à nouveau le problème disparait.

    Je vais aussi interroger le forum Msdn.

    Merci pour ces réponses !
    JC
    0
  8. Kalissi Messages postés 221 Statut Membre 20
     
    Bonjour,

    Voilà, j'ai trouvé ces lignes de code dans un programme codé sous VB2008


    Clipboard.SetDataObject(String.Empty)
    Clipboard.SetDataObject(txtNM_ORG_INT_EXT.Text.Trim)

    n.b. Pas tester sur VB2010

    K
    0
  9. Kalissi Messages postés 221 Statut Membre 20
     
    Bonjour,

    (Efface le contenu di presse-papier)
    Clipboard.SetDataObject(String.Empty)
    (Capture la valeur d'un TextBox (txtNm_ORG_INT_EXT) dans le presse papier)
    Clipboard.SetDataObject(txtNM_ORG_INT_EXT.Text.Trim)

    txtNM_ORG_INT_EXT.Text.Trim

    txtNM_ORG_INT_EXT corespond à un TextBox
    txtNM_ORG_INT_EXT.Text correspond à sa valeur texte
    txtNM_ORG_INT_EXT.Text.Trim correspond à sa valeur trimmer ( suppression des espaces inutiles)

    K
    0