Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

presse papier avec le .NET Compact Framework

8 réponses
Avatar
Mathias
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 ?

Merci d'avance de vos réponses.
Mathias

8 réponses

Avatar
TroXsA - [VB.NET-2005]
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
Avatar
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




Avatar
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
Avatar
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




Avatar
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
Avatar
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



Avatar
Etudiant
pour copier dans le clipboard je fait comme ca
Clipboard.SetDataObject(MonObjet)

dans mes references j'ai

Imports System.IO
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Web

--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw
Avatar
Mathias
ouais, mais tu n'utilise pas le compact framework.


"Etudiant" <http://cerbermail.com/?5RVJmRhSQw> a écrit dans le message de
news: %
pour copier dans le clipboard je fait comme ca
Clipboard.SetDataObject(MonObjet)

dans mes references j'ai

Imports System.IO
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Web

--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw