Ma question est assez simple : je me demandais s'il était possible d'accéder
simplement au presse papier avec Visual Basic .NET 2003 au travers du .NET
compact framework car la classe clipboard n'existe pas dans
system.windows.forms.
Ou alors serais-je obligé de passer par les api de windows CE ?
Tout depend ce que tu veux faire avec si c'est juste copier, coller il faut simplement utiliser la propriete Paste, Copy ...
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
Mathias
merci, mais la propriété paste, copy, etc de quel objet ? Car l'objet clipboard n'existe pas (ou je ne l'ai pas trouvé) et l'objet TextBox que j'utilise n'a pas ces fonctions.
"TroXsA - [VB.NET-2005]" a écrit dans le message de news: defhb8$k0f$
Salut,
Tout depend ce que tu veux faire avec si c'est juste copier, coller il faut simplement utiliser la propriete Paste, Copy ...
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
merci, mais la propriété paste, copy, etc de quel objet ?
Car l'objet clipboard n'existe pas (ou je ne l'ai pas trouvé) et l'objet
TextBox que j'utilise n'a pas ces fonctions.
"TroXsA - [VB.NET-2005]" <Shagn@Shagn.Shagn> a écrit dans le message de
news: defhb8$k0f$1@s1.news.oleane.net...
Salut,
Tout depend ce que tu veux faire avec
si c'est juste copier, coller il faut simplement utiliser la propriete
Paste, Copy ...
merci, mais la propriété paste, copy, etc de quel objet ? Car l'objet clipboard n'existe pas (ou je ne l'ai pas trouvé) et l'objet TextBox que j'utilise n'a pas ces fonctions.
"TroXsA - [VB.NET-2005]" a écrit dans le message de news: defhb8$k0f$
Salut,
Tout depend ce que tu veux faire avec si c'est juste copier, coller il faut simplement utiliser la propriete Paste, Copy ...
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
TroXsA - [VB.NET-2005]
Voila ce que j'ai trouvé sous la version 2005 (VB.net) sous la version 2003 et 2002 les fonctions devrais etre les memes
Dim textBox1 As New TextBox textBox1.Text.Copy(textBox1.SelectedText) textBox1.Paste() textBox1.Copy() textBox1.Cut()
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
Voila ce que j'ai trouvé sous la version 2005 (VB.net) sous la version 2003
et 2002 les fonctions devrais etre les memes
Dim textBox1 As New TextBox
textBox1.Text.Copy(textBox1.SelectedText)
textBox1.Paste()
textBox1.Copy()
textBox1.Cut()
Voila ce que j'ai trouvé sous la version 2005 (VB.net) sous la version 2003 et 2002 les fonctions devrais etre les memes
Dim textBox1 As New TextBox textBox1.Text.Copy(textBox1.SelectedText) textBox1.Paste() textBox1.Copy() textBox1.Cut()
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
Mathias
textBox1.Text.Copy existe bien, mais celà n'a rien à voir avec le presse papier.
Pour les autres fonctions elles font probablement partie du compact framework 2.0 qu'utilise la version 2005 alors que la version 2003 que j'utilise n'en est qu'à la version 1.1 je crois.
Enfin, merci quand même. "TroXsA - [VB.NET-2005]" a écrit dans le message de news: 430c2d69$0$3401$
Voila ce que j'ai trouvé sous la version 2005 (VB.net) sous la version 2003 et 2002 les fonctions devrais etre les memes
Dim textBox1 As New TextBox textBox1.Text.Copy(textBox1.SelectedText) textBox1.Paste() textBox1.Copy() textBox1.Cut()
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
textBox1.Text.Copy existe bien, mais celà n'a rien à voir avec le presse
papier.
Pour les autres fonctions elles font probablement partie du compact
framework 2.0 qu'utilise la version 2005 alors que la version 2003 que
j'utilise n'en est qu'à la version 1.1 je crois.
Enfin, merci quand même.
"TroXsA - [VB.NET-2005]" <pouet@h.com> a écrit dans le message de news:
430c2d69$0$3401$626a14ce@news.free.fr...
Voila ce que j'ai trouvé sous la version 2005 (VB.net) sous la version
2003 et 2002 les fonctions devrais etre les memes
Dim textBox1 As New TextBox
textBox1.Text.Copy(textBox1.SelectedText)
textBox1.Paste()
textBox1.Copy()
textBox1.Cut()
textBox1.Text.Copy existe bien, mais celà n'a rien à voir avec le presse papier.
Pour les autres fonctions elles font probablement partie du compact framework 2.0 qu'utilise la version 2005 alors que la version 2003 que j'utilise n'en est qu'à la version 1.1 je crois.
Enfin, merci quand même. "TroXsA - [VB.NET-2005]" a écrit dans le message de news: 430c2d69$0$3401$
Voila ce que j'ai trouvé sous la version 2005 (VB.net) sous la version 2003 et 2002 les fonctions devrais etre les memes
Dim textBox1 As New TextBox textBox1.Text.Copy(textBox1.SelectedText) textBox1.Paste() textBox1.Copy() textBox1.Cut()
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
TroXsA - [VB.NET-2005]
Effectivement, j'utilise la version 2.0 Mais dans la version 1.1 il existe les memes proprieté mais pas dans le compact Ce que tu pourrais faire c'est de creer une variable qui servirait de speudo presse papier
Dim Copier As String Dim Coller As String Dim Couper As String
Apres c'est a toi de genré les evenements pour dire que le texte selectionner va dans tel-string ....
Tu vois ce que je veux dire ?
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
Effectivement, j'utilise la version 2.0
Mais dans la version 1.1 il existe les memes proprieté mais pas dans le
compact
Ce que tu pourrais faire c'est de creer une variable qui servirait de speudo
presse papier
Dim Copier As String
Dim Coller As String
Dim Couper As String
Apres c'est a toi de genré les evenements pour dire que le texte
selectionner va dans tel-string ....
Effectivement, j'utilise la version 2.0 Mais dans la version 1.1 il existe les memes proprieté mais pas dans le compact Ce que tu pourrais faire c'est de creer une variable qui servirait de speudo presse papier
Dim Copier As String Dim Coller As String Dim Couper As String
Apres c'est a toi de genré les evenements pour dire que le texte selectionner va dans tel-string ....
Tu vois ce que je veux dire ?
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
Mathias
oui, mais c'et pas vraiment le presse papier.
De plus j'avais lu quelque part que même dans les application qui n'offrait pas de boutons copier coller dans leur menu, on pouvait toujours faire du copier coller avec ctrl+c etc. Alors je me suis dit que ça devait être géré par le système et qu'il suffisait de faire croire qu'on appuyait sur ces touche pour pouvoir gérer le presse papier. MAis apparement non, ça ne va pas comme ça.
Toujours est-is que j'ai repris un vieux code que j'avais écrit pour gérer le presse papier avec win32 et après avoir essayer de le transcrire en .NET sans aucun résultat j'ai tout simplement compilé le même code sous forme de DLL que j'appel depuis mon programme en VB. Mais je doit avoir un problème de gestion ansi/unicode car quand je colle un texte préalablement copié je n'ai que la première moitié des caractères qui apparaissent.
... [une journée après]
Le problème est résoluet je me suis remis à écrire une version .NET
La lecture du presse papier marche parfaitement : Function GetClipboardText() As String Dim hGlb As IntPtr Dim lptstr As String If IsClipboardFormatAvailable(CF_TEXT) Then If OpenClipboard(IntPtr.Zero) Then hGlb = GetClipboardData(CF_TEXT) If hGlb.Equals(IntPtr.Zero) Then CloseClipboard() Return "" End If lptstr = Marshal.PtrToStringUni(hGlb) CloseClipboard() Return lptstr End If End If Return "" End Function
Cette fonction marche parfaitement si je l'utilise en conjonction avec la version win32 de SetClipboardText. Mais cette fonction ne marche pas dans sa version .NET pourtant son exect traduction. Je la mets ici au cas où quelqu'un verrait pourquoi : Function SetClipboardText(ByVal Text As String) As Boolean Dim hGlb As IntPtr If OpenClipboard(IntPtr.Zero) Then EmptyClipboard() hGlb = LocalAlloc(LPTR, 2 * Text.Length + 2) If hGlb.Equals(IntPtr.Zero) Then CloseClipboard() Return False End If Marshal.StructureToPtr(Text, hGlb, False) If SetClipboardData(CF_TEXT, hGlb).Equals(IntPtr.Zero) Then CloseClipboard() Return False End If CloseClipboard() Return True End If CloseClipboard() Return False End Function
Lorsque après celà on lit le presse papier, celui-ci apparait vide.
"TroXsA - [VB.NET-2005]" a écrit dans le message de news: dek1qe$ov7$
Effectivement, j'utilise la version 2.0 Mais dans la version 1.1 il existe les memes proprieté mais pas dans le compact Ce que tu pourrais faire c'est de creer une variable qui servirait de speudo presse papier
Dim Copier As String Dim Coller As String Dim Couper As String
Apres c'est a toi de genré les evenements pour dire que le texte selectionner va dans tel-string ....
Tu vois ce que je veux dire ?
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
oui, mais c'et pas vraiment le presse papier.
De plus j'avais lu quelque part que même dans les application qui n'offrait
pas de boutons copier coller dans leur menu, on pouvait toujours faire du
copier coller avec ctrl+c etc. Alors je me suis dit que ça devait être géré
par le système et qu'il suffisait de faire croire qu'on appuyait sur ces
touche pour pouvoir gérer le presse papier. MAis apparement non, ça ne va
pas comme ça.
Toujours est-is que j'ai repris un vieux code que j'avais écrit pour gérer
le presse papier avec win32 et après avoir essayer de le transcrire en .NET
sans aucun résultat j'ai tout simplement compilé le même code sous forme de
DLL que j'appel depuis mon programme en VB. Mais je doit avoir un problème
de gestion ansi/unicode car quand je colle un texte préalablement copié je
n'ai que la première moitié des caractères qui apparaissent.
... [une journée après]
Le problème est résoluet je me suis remis à écrire une version .NET
La lecture du presse papier marche parfaitement :
Function GetClipboardText() As String
Dim hGlb As IntPtr
Dim lptstr As String
If IsClipboardFormatAvailable(CF_TEXT) Then
If OpenClipboard(IntPtr.Zero) Then
hGlb = GetClipboardData(CF_TEXT)
If hGlb.Equals(IntPtr.Zero) Then
CloseClipboard()
Return ""
End If
lptstr = Marshal.PtrToStringUni(hGlb)
CloseClipboard()
Return lptstr
End If
End If
Return ""
End Function
Cette fonction marche parfaitement si je l'utilise en conjonction avec la
version win32 de SetClipboardText. Mais cette fonction ne marche pas dans sa
version .NET pourtant son exect traduction. Je la mets ici au cas où
quelqu'un verrait pourquoi :
Function SetClipboardText(ByVal Text As String) As Boolean
Dim hGlb As IntPtr
If OpenClipboard(IntPtr.Zero) Then
EmptyClipboard()
hGlb = LocalAlloc(LPTR, 2 * Text.Length + 2)
If hGlb.Equals(IntPtr.Zero) Then
CloseClipboard()
Return False
End If
Marshal.StructureToPtr(Text, hGlb, False)
If SetClipboardData(CF_TEXT, hGlb).Equals(IntPtr.Zero) Then
CloseClipboard()
Return False
End If
CloseClipboard()
Return True
End If
CloseClipboard()
Return False
End Function
Lorsque après celà on lit le presse papier, celui-ci apparait vide.
"TroXsA - [VB.NET-2005]" <Shagn@Shagn.Shagn> a écrit dans le message de
news: dek1qe$ov7$1@s1.news.oleane.net...
Effectivement, j'utilise la version 2.0
Mais dans la version 1.1 il existe les memes proprieté mais pas dans le
compact
Ce que tu pourrais faire c'est de creer une variable qui servirait de
speudo presse papier
Dim Copier As String
Dim Coller As String
Dim Couper As String
Apres c'est a toi de genré les evenements pour dire que le texte
selectionner va dans tel-string ....
De plus j'avais lu quelque part que même dans les application qui n'offrait pas de boutons copier coller dans leur menu, on pouvait toujours faire du copier coller avec ctrl+c etc. Alors je me suis dit que ça devait être géré par le système et qu'il suffisait de faire croire qu'on appuyait sur ces touche pour pouvoir gérer le presse papier. MAis apparement non, ça ne va pas comme ça.
Toujours est-is que j'ai repris un vieux code que j'avais écrit pour gérer le presse papier avec win32 et après avoir essayer de le transcrire en .NET sans aucun résultat j'ai tout simplement compilé le même code sous forme de DLL que j'appel depuis mon programme en VB. Mais je doit avoir un problème de gestion ansi/unicode car quand je colle un texte préalablement copié je n'ai que la première moitié des caractères qui apparaissent.
... [une journée après]
Le problème est résoluet je me suis remis à écrire une version .NET
La lecture du presse papier marche parfaitement : Function GetClipboardText() As String Dim hGlb As IntPtr Dim lptstr As String If IsClipboardFormatAvailable(CF_TEXT) Then If OpenClipboard(IntPtr.Zero) Then hGlb = GetClipboardData(CF_TEXT) If hGlb.Equals(IntPtr.Zero) Then CloseClipboard() Return "" End If lptstr = Marshal.PtrToStringUni(hGlb) CloseClipboard() Return lptstr End If End If Return "" End Function
Cette fonction marche parfaitement si je l'utilise en conjonction avec la version win32 de SetClipboardText. Mais cette fonction ne marche pas dans sa version .NET pourtant son exect traduction. Je la mets ici au cas où quelqu'un verrait pourquoi : Function SetClipboardText(ByVal Text As String) As Boolean Dim hGlb As IntPtr If OpenClipboard(IntPtr.Zero) Then EmptyClipboard() hGlb = LocalAlloc(LPTR, 2 * Text.Length + 2) If hGlb.Equals(IntPtr.Zero) Then CloseClipboard() Return False End If Marshal.StructureToPtr(Text, hGlb, False) If SetClipboardData(CF_TEXT, hGlb).Equals(IntPtr.Zero) Then CloseClipboard() Return False End If CloseClipboard() Return True End If CloseClipboard() Return False End Function
Lorsque après celà on lit le presse papier, celui-ci apparait vide.
"TroXsA - [VB.NET-2005]" a écrit dans le message de news: dek1qe$ov7$
Effectivement, j'utilise la version 2.0 Mais dans la version 1.1 il existe les memes proprieté mais pas dans le compact Ce que tu pourrais faire c'est de creer une variable qui servirait de speudo presse papier
Dim Copier As String Dim Coller As String Dim Couper As String
Apres c'est a toi de genré les evenements pour dire que le texte selectionner va dans tel-string ....
Tu vois ce que je veux dire ?
-- TroXsA http://cerbermail.com/?rIXgaw9Xsl
Etudiant
pour copier dans le clipboard je fait comme ca Clipboard.SetDataObject(MonObjet)