begin process at 2012 02 14 12:20:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Texte

 > 

INTERDIRE COPIER/COLLER SUR TEXTBOX


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

INTERDIRE COPIER/COLLER SUR TEXTBOX

jeudi 24 mars 2005 à 23:19:27 | INTERDIRE COPIER/COLLER SUR TEXTBOX

bouv

Membre Club
Bonjour,

J'aimerai savoir s'il existe un moyen d'interdire la fonction Coller sur une textbox.
Je veux interdire certain caractères. Je les ai bloqué dans la fonction KeyPress
Mais je viens de me rendre compte que l'on peut contourner le pb avec un copier/coller

Merci d'avance

Bonne prog
++
vendredi 25 mars 2005 à 06:28:33 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Avec une fonction de Hook ou peut-être avec un menu qui possède le raccource CTRL+V  il est possible de rediriger le collage pour l'annuler.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
vendredi 25 mars 2005 à 09:26:02 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
pas besoin de hook, un vulgaire sous classement de fenêtre suffira. Vous essaierez vous mêmes la traduction VB, c'est pas mon truc.

Une variable globale dans le module:
WNDPROC oldProcEd; // en C
en VB: Dim oldProcEd As Long ' devrait aller

la fonction callback, laisse passer tous les messages à l'exception de WM_PASTE:
LRESULT CALLBACK EdProcNoPaste(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  if(mssg == WM_PASTE) return 0;
  return CallWindowProc(oldProcEd, hwnd, mssg, wParam, lParam);
}

Dans votre FormLoad, initialiser le pointeur de fonction en changeant le callback original du EDIT pour qu'il aille sur la nouvelle:
oldProcEd = (WNDPROC) SetWindowLong(votreEdit.hwnd, GWL_WNDPROC, (long) EdProcNoPaste);

voilà, le tour est joué.

ciao...
BruNews, MVP VC++
lundi 28 mars 2005 à 12:54:24 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

bouv

Membre Club
Ok merci a tous les deux je vais essayer de mettre ça en place. Je pense que la solution de BruNews est plus appropriée étant donné que j'utilise un control utilisateur.
J'espere juste etre capable de mettre ça en place.

Merci encore a tous les 2.

Bonne prog
++
lundi 28 mars 2005 à 14:40:38 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

bouv

Membre Club
Yes j'ai reussi mais pas sans mal.
Merci BruNews et merci à Renfield pour sa superbe DLL.
Merci également à DARKSIDIOUS même si je n'ai pas retenu son idée.

Bonne prog
++
mardi 31 mai 2005 à 14:28:53 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

danielgrd

Je suis beaucoup intéressé par ce bout de code... Par contre, est-ce que quelqun pourrait faire la conversion en VB, soit Bouv ou autre. Parceque je comprend pas trop ce langage...

Merci d'avance!

--------------
la fonction callback, laisse passer tous les messages à l'exception de WM_PASTE:
LRESULT CALLBACK EdProcNoPaste(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  if(mssg == WM_PASTE) return 0;
  return CallWindowProc(oldProcEd, hwnd, mssg, wParam, lParam);
}

Dans votre FormLoad, initialiser le pointeur de fonction en changeant le callback original du EDIT pour qu'il aille sur la nouvelle:
oldProcEd = (WNDPROC) SetWindowLong(votreEdit.hwnd, GWL_WNDPROC, (long) EdProcNoPaste);
---------


mercredi 1 juin 2005 à 15:11:14 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

bouv

Membre Club

danielgrd>>
J'ai utilisé la DLL de Renfield ReySubclasser que tu trouvera assez facilement sur ce site.
Le code que j'utilise :

Dim WithEvents SubClasser As ReySubClasser

Private Sub Form_Initialize()
    'On initialise le sous classement
    Set SubClasser = New ReySubClasser
    call SubClasser.Controls.Add (TxtBox.hWnd)
    call SubClasser.Messages.Add (WM_PASTE)
    call SubClasser.StartSubClassing
End Sub

'On arrete le sous classement
Private Sub Form_Terminate()
    call SubClasser.StopSubClassing
    Set SubClasser = Nothing
End Sub

'On recupere le message de sous classement et on le traite
Private Sub SubClasser_Msg1(ByVal hWnd As Long, ByVal uMsg As Rey_SubClasser.MessageConstants, ByVal wParam As Long, ByVal lParam As Long, MsgBehavior As Rey_SubClasser.MsgBehaviorConstants, RetValue As Long, ByVal OldProc As Long)
    'Si on recupere l'evenement COLLER on vide le presse-papier
    If uMsg = WM_PASTE Then Call Clipboard.SetText ("")
End Sub


Bonne prog
++

lundi 6 juin 2005 à 16:22:32 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

danielgrd

Bonjour Bouv,

Merci pour la réponse... Je ne l'avais pa vue!

J'ai par contre une question, comment je fais pour incorporer la .DLL de Renfield dans mon projet? J'ai trouvé le Dll mais pas comment l'insérer dans un projet...

Merci d'avance

lundi 6 juin 2005 à 21:26:54 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

bouv

Membre Club
Tu va dans le menu Projet, puis Référence
et tu coche la case Rey_SubClasser

Pense bien a redistribuer la dll avec tes applis

Bonne prog
++
vendredi 17 juin 2005 à 22:57:10 | Re : INTERDIRE COPIER/COLLER SUR TEXTBOX

danielgrd

Bonjour,

Mon programme, une fois compilé en .EXE à toujours bien fonctionné... Mais je l'avais toujours testé sur le même ordinateur...

Il y a quelques jours j'ai décidé de le tester sur un autre ordi...

Et là, avant même que mon logiciel s'exécute, j'obtiens le message d'erreur suivant :
'Vous ne disposez pas de la licence appropriée pour utiliser cette fonctionnalité'

Et ensuite cela quitte....

Après des d'intenses recherches, j'en suis venu à l'évidence que le problème viens de ici:
------------------
Private Sub Form_Initialize()
If SIP2 = 0 Then
    Set SubClasser = New ReySubClasser
    Call SubClasser.Controls.Add(Text_Msg.hWnd)
    Call SubClasser.Controls.Add(Text_Sujet.hWnd)
    Call SubClasser.Messages.Add(WM_PASTE)
    Call SubClasser.StartSubClassing
End If
End Sub
----------------

En effet, lorsque je supprime cette partie ou la remplace par n'importe quoi d'autre:
----------
Set SubClasser = New ReySubClasser
Call SubClasser.Controls.Add(Text_Msg.hWnd)
Call SubClasser.Controls.Add(Text_Sujet.hWnd)
Call SubClasser.Messages.Add(WM_PASTE)
Call SubClasser.StartSubClassing
------------

Mon programme s'ouvre et aucun problème à l'horizon...

C'est bizarre parcequ'il ne s'agit pas d'un problème de .DLL parcequ'en supprimant ces 5 lignes j'ai laissé la référence Rey_Subclasser (rey_subclasser.dll) dans mon prog....

J'ai essayé d'effacer ligne par ligne les 4 dernières lignes pour voir si ce n'était que l'une d'elle qui causait le problème mais en vain... L'erreur persiste... Cela doit donc provenir de la 1ere ligne et donc il faut absolument supprimer les 5 lignes...

J'ai essayé de le faire exécuter lors du chargement (Form_Load) au lieu de avant (Form_Initialize), je ne sais pas si cela aurais quand même fonctionné, mais de toute manière j'obtient une autre erreur : Erreur d'exécution 429... Et même en se consacrant à résoudre cette deuxième erreur on ne sais pas si la première referra son apparition par après...!!!

Donc mieux vaut, à mon avis, se consacrer qu'à la première erreur...

En tout cas... Je vais aller réécrire ce post dans les commentaires de la source officielle Rey_SubClasser de Renfield... Au cas ou...

Merci d'avance...


1 2

Cette discussion est classée dans : textbox, fonction, interdire, copier, coller


Répondre à ce message

Sujets en rapport avec ce message

Copier/coller tout simple ! [ par Michael ] Salut !Je voudrais savoir comment copier le presse papier dans un textbox. Par exemple :Je suis sous word (ou autre), je selectionne une phrase et je Copier/coller tout simple ! [ par Michael ] comment copier le contenu du presse papier dans un textbox. Un petit exemple :Je suis sous word (ou autre) je selectionne une phrase et je la copie Et copier-coller dans un control textbox [ par Vstall ] bonjour à tous,j'ai un petit probleme : j'ai développé un UserForm Excel sous VBE à l'interieur duquel j'y ai mis un control Textbox. Impossible d'y c Interdire Copier-Coller traduction [ par danielgrd ] Bonjour, J'ai aperçu ici : http://www.vbfrance.com/forum.v2.aspx?id=419341 une méthode pour empêcher le copier-coller d'un textbox (surtout le Colle Copier-coller dans un textbox [ par TrafMaxime ] Bonjour., Quelqu'un pourrait m'expliquer ce qui se passe avec les copier-coller et les textbox sous vstudio 2002 .net ? J'essaie de le faire à partir fonction coller [ par slplayer67 ] bonjour je débute sur VB 2008 express et j'ai réalisé l'exemple du coatch. je voudrais pouvoir faire un copier coller d'une ligne de ma table en direc Copier Coller [ par lokomass ] Bonjour a tous, J'aimerai pouvoir faire un copier coller depuis un fichier texte quelconque dans ma textbox. Cette textbox est en fait un "hypertermi Interdire le copier coller dans une zone de texte - VBA Excel [ par talined ] Bonjour, Je souhaiterais paramétrer mes zones de texte pour qu'il soit impossible de coller une valeur quelconque, provenant d'une cellule ou d'une a Code VB pour copier coller [ par zizan007 ] Bonjour; je veux créer une application qui contient plusieurs TextBox et je veux copier tout le contenu des ces TextBox pour pouvoir les coller dans u [Catégorie modifiée VB6 -> VBA] Filtrer copier et coller des cellules [ par Pathe57 ] Bonjour à tous, je me casse la tete depuis un bon, moment sur un simple copier coller. je vous joins le code. Il me sort une erreur 1004, pb avec aut


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales