Modifier image dans Richtextbox

Résolu
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006 - 3 sept. 2006 à 19:28
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006 - 8 sept. 2006 à 19:35
Bonjour,

Mon programme est un traitement de texte qui permet d'inclure des images et en sélectionant ces images de faire un contextmenustrip pour eux qui s'affiche en cliquant sur le bouton droit de la souris.

Le problème est que dans le contextmenustrip, il y a "Modifier l'image" et quand on clique dessus, ça lance:

Dim execut
As
String

Dim fichier AsString

Dim proc
As
New Process()

Dim execute
As
Integer

Tryproc.StartInfo.FileName = execut

'chemin et nom de l'executable proc.StartInfo.Arguments = fichier

'chemin et nom du fichier proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal

'Ouvre dans une fenetre normale (peut etre cache, minimisee, ...) proc.StartInfo.UseShellExecute =

True
'Utilise le shell pour l'execution proc.StartInfo.CreateNoWindow =

False
'cree une fnouvelle fenetre proc.Start()

'lance l'executable en ouvrant le document execute = proc.Id

'recupere le handle . ce handle permer via d'autre fonction de gerer le process

Catch ex
As Exception

End
Try

Et je met execut =" C:\WINDOWS\system32\mspaint.exe", et fichier = "C:\Documents and settings\utilisateur\..."

Et quand je lance çà, ça me met une erreur :  "Impossible d'ouvrir C:\Documents.bmp"

Comment faire pour qu'il prenne pas les espaces en tant que fin du string?

7 réponses

Utilisateur anonyme
3 sept. 2006 à 21:10
Salut,

Tu n'as pas besoins de mettre le chemin de l'application (ici paint)
Tu met le chemin de ton image uniquement dans execut. Il va se charger d'ouvrir tout seul paint et de charger l'image.
Et tu met rien en arguments.




Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait tellement plaisir ainsi qu'a nous. Merci.
Ca sent le sondage sur ce lien
3
Utilisateur anonyme
4 sept. 2006 à 20:14
En effet, j'avais oublier ca.
Paint n'est pas le programe par défaut.

En fait le problement, c'est qu'il ne veut pas d'espace dans l'arguement.
Donc on est obliger de prendre son chemin en court.

La fonction pour récupéré le chemin court :



<System.Runtime.InteropServices.DllImport(
"kernel32.dll"
, SetLastError:=
True
, CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _

Public

Shared

Function
GetShortPathName(
ByVal
longPath
As

String
, <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPTStr)>
ByVal
ShortPath
As
System.Text.StringBuilder, <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.U4)>
ByVal
bufferSize
As

Integer
)
As

Integer

End

Function

Public

Function
GetShortPathName(
ByVal
fileName
As

String
)
As

String

  
Dim
sb
As

New
System.Text.StringBuilder(1024)

  GetShortPathName(fileName, sb, sb.Capacity)

  
Return
sb.ToString()

End

Function




Et pour l'appliquer :



execut =
"C:\WINDOWS\system32\mspaint.exe"

fichier = GetShortPathName(
"C:\Documents and settings\utilisateur\..."
)





Kenji
3
Utilisateur anonyme
4 sept. 2006 à 23:58
On peut même encore faire plus simple.
J'y avais pas pensé mais on rajoute des guillements et sa suffit



execut =
"C:\WINDOWS\system32\mspaint.exe"

fichier =
"""C:\Documents and Settings\Kenji-san\Mes documents\Mes images\Sans titre.JPG"""





Kenji
3
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006
4 sept. 2006 à 19:42
Merci, ça n'a pas vraiment le résultat que j'escomptais.


Ca ouvre l'apercu des images de Windows, mais ce n'est pas grave on peut accéder au logiciel de peinture à partir de ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006
6 sept. 2006 à 19:41
Les deux réponses fonctionnent aussi bien l'une que l'autre.


Mais comme le chemin de l'image diffère tout le temps (en fonction de l'image choisit par l'utilisateur), je n'ai pas réussi à l'adapter à ta dernière réponse.

Merci beaucoup de ton aide.
0
Utilisateur anonyme
6 sept. 2006 à 19:53
Ben tu fait un



fichier =
""""
& TaVariable &
""""





Kenji
0
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006
8 sept. 2006 à 19:35
Ca marche aussi.

Maintenant le problème est que quand j'inclut une image dans le richtextbox je récupère son chemin et je le stock dans My.Settings.image mais si je met plusieurs images les unes après les autres dans My.Settings.image, il y a seulement la dernière image.

Je voudrais quand je sélectionne une image dans la richtextbox et que je fasse "Modifier image", que ça soit celle la qui s'ouvre avec paint.
0
Rejoignez-nous