Shellexecute g un probleme avec une listbox

Résolu
cs_Champy70 Messages postés 9 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 23 avril 2006 - 23 avril 2006 à 20:01
 Utilisateur anonyme - 25 avril 2006 à 23:11
salut a tous!
Je mexplique j'ai un probleme avec le shellexecute !
Mon programme recoit une adresse ip , il la met dans une listbox, puis je voudrais qu ' en utilisant l' explorer je puisse voir les fichiers partager , comme si je tapait dans mon explorer [file://\\127.0.0.1 \\127.0.0.1] pour voir mes fichiers partager.
Le probleme est que avec ce code :
ShellExecute(application.Handle, 'open', 'explorer.exe' ,'" [file://\\"' \"'] + listbox1.Items ,nil ,SW_MAXIMIZE);
J'ai cette erreur qui s'affiche : [Error] server.pas(74): Incompatible types: 'String' and 'TStrings'.
Pouvez vous maider ? Comment prendre la valeur dans la list box et la rajouter à la suite des \\ ??
Merci davance pour vos reponse .

REVE : Etre doué en programation reseau autant que Picasso en peinture!

10 réponses

Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
24 avril 2006 à 10:52
Salut,

"arrete de faire ton mac car tu connait bien delphi , tu ferai mieu daider les gens plutot que de les prendre de haut" nous sommes tous la pour s'aider comme il à été rappelé dans le thread de f0xi et Francky ne t'a pas pris de haut comme tu dis. Cherche sur Internet, sur C.S ET/OU dans l'aide de Delphi et tu trouveras ta réponse. Tu peux aussi chercher sur Codix où des morceaux de code sont déposés.

Pour finir, les membres ne sont pas obligés de te répondre donc ne t'attends pas toujours à des réponses et n'agresse PERSONNE sinon tu es sur de te faire engueler.

Sur ce, le débat est clos.

@+
Matt

<hr size="2" width="100%">La paresse est la mère du génie...
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
24 avril 2006 à 14:05
Salut,


alors je viens mettre mon grain de sel dans cette histoire parce que je ne peut pas laisser passer ca.


Si tu avais ortienté tes recherches sur ShellExecute en premier tu aurais trouvé deux pages qui traite de cela et en tout premier, en haut de la page le plus interressant pour toi (Comment acceder à une url avec ShellExecute avec et sans PChar()).


Maintenant pour ton souci de ListBox il y a au moins deux cents sources sur le site qui utilise une ListBox et aux dernières nouvelles on utilise tous les LisBox de même manière. Donc si tu avais regarder la première source qui utilise une ListBox et qui réagit au clique utilisateur tu aurais trouvé ton bonheur de suite (en tous cas en moins de cinq heures). ça m'a pris moins de cinq minutes pour trouver les sources.
- si on te dit de chercher sur le site c'est qu'on est certain que la réponse s'y trouve.

Et pour conclure:
- à mon avis si tu as des problèmes avec les TStrings (ListBox.Strings) et que tu fais une application de ce type c'est que tu as brulé des étapes, si tu laisses tombé les bases tu auras toujours des problèmes.

Sur ce Bonne prog et


<HR>

n'oubliez pas de cliquer sur Réponse Acceptée
si elle vous convient


<HR>


@+
Cirec
3
Utilisateur anonyme
23 avril 2006 à 20:16
salut



ShellExecute(application.Handle, 'open', 'explorer.exe' ,'" [file://%5c%5c%22/ \"'] + listbox1.Items ,nil ,SW_MAXIMIZE);



Deja c'est iexplorer.exe deuxièmement
listbox1.Items : il faut peut etre le sélectionner ton item non ? tu ne dis pas lequel tu veux



A+
0
Utilisateur anonyme
23 avril 2006 à 20:27
Je te file la réponse

Pchar(listbox1.Items.Strings[ListBox1.ItemIndex])



Il va falloir que tu apprennes à trouver par toi meme plutot que de systematiquement poster. On va finir par ne plus te répondre



Je n'ai pas fais le test



A+
0

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

Posez votre question
cs_Champy70 Messages postés 9 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 23 avril 2006
23 avril 2006 à 20:42
Merci pour ta reponse !
Pour ta gouverne je suis depuis 15 h cette apres midi juste sur ce petit probleme et maintenant pour ta reponse dont tu semble en etre vraiment très sur ! voila ce quil me met :
[Error] server.pas(74): Incompatible types: 'String' and 'PAnsiChar'

Voila ce que j'ai ecris :
ShellExecute(application.Handle, 'open', 'iexplore.exe' ,'" [file://\\"' \"'] + Pchar(listbox1.Items.Strings[ListBox1.ItemIndex]) , nil ,SW_MAXIMIZE); //comme tu me la dit!
Et ce nest pas iexplorer comme tu la mis mais iexplore.exe grosse difference,pui ce nest que la deuxieme fois que je bloque en delphi alors silteplait ne dit pas "je te cite " : ""Il va falloir que tu apprennes à trouver par toi meme plutot que de systematiquement poster""

Merci de repondre a l' abrutit que je suis pour demander de laide sur un forum prévu a cette effet!
A +
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
23 avril 2006 à 21:26
:hum
Ca chauffe par ici.
Je rejoins Francky sur ces propos. Il t'a juste dit que tu devais chercher un peu plus au lieu de poster des questions à tout va.
De plus, il n'a jamais affirmé tenir la réponse car il a écrit " Je n'ai pas fais le test".

"Merci de repondre a l' abrutit que je suis pour demander de laide sur un forum prévu a cette effet!"
Attention, ce forum n'a pas pour but de répondre aux abrutis. Surveille un peu tes propos s'il te plait.

Alors, pour ce qui concerne ton problème, Francky t'a donné la moitié de la réponse.
L'autre est ici:
C'est toute la chaîne qu'il faut transtyper en PChar et non pas que ce qu'il t'a dit.

En théorie, si tu rentres ça, tout devrait aller:
ShellExecute(0, 'OPEN', PChar('\\' + Listbox1.Items[Listbox1.ItemIndex]), nil, nil, SW_MAXIMIZE);
et ne pas oublier ShellApi dans la clause uses.
Un détail: comme tu le vois, lorsqu'il s'agit d'une commande OPEN, il n'est pas nécessaire de spécifier le programme, windows s'en charge et prend le plus adapté.

@ ++
Florent

Si tu ne te plantes pas ......
tu ne pousseras jamais
0
Utilisateur anonyme
23 avril 2006 à 22:05
Champy



Alors déjà j'ai écris
Pchar(listbox1.Items.Strings[ListBox1.ItemIndex]) : je n'ai pas
parlé de "\". Tu bloquais au niveau de la listbox j'ai donc
répondu à ta question.



Deuxièmement oui il faut chercher : tu as bloqué ca arrive à tout le
monde. Mais ce n'est pas en jouant à l'alchimiste qu'on solutionne un
beug. La réponse il faut la chercher dans les livres, googles, forums
et la touche F1 qui t'aurait dans ce cas beaucoup aidé. A priori tu
n'as pas chercher de la bonne façon : en fait tu n'as pas
cherché au sens réel du terme.



Troisièmement tu es un newbie c'est peut etre ta premiere application :
apprend déja les bases par des choses simples pas de la programmation
réseau. Apprend à convertir à faires des sommes des choses comme ca. Je
peux comprendre que ce n'est pas tres exitant à faire mais c'est
primordiale de métriser cela comme les types.



Quatrièmement : je t'ai dis de chercher pour la listbox. Regarde ta
syntaxe : listbox1.items : essaye de comprendre ce que tu as écris. Il
faut rajouter quoi ? index ou string pour dire ce que tu veux (premiere
oublie de ta part). Ensuite il te faut dire lequel : Listbox1.ItemIndex l'index de l'item que tu sélectionnes. En écrivant listbox1.items
cela traduit que tu te contentes de pomper des sources sans rien
comprendre : tu sais pas ce que tu fais en réalité. Ce n'est pas la
bonne facon d'aborder les choses.



Cinquiemement : précédemment je t'ai demandé de poster ta source pour
t'aider. Je l'ai dis deux fois : tu ne l'as pas fais. Cette fameuse
question n'aurait pas du avoir de réponse suite à ton refus car elle
dépassait le contexte de CS. La formulation allait dans ce sens.



Sixièment si tu avais été sur CS et que tu avais rentrer listbox ou
items dans l'edit RECHERCHER, tu aurais eu des exemples et des sources.
Tu aurait pu t'en sortir et je sais de quoi je parle car j'ai été aussi
dans le meme cas par le passé comme chacun d'entre nous.



Septiement : si tu veux continuer à profiter de CS il va falloir de
conformer à cette règle. Désolé maintenant on laissera passé plus rien
et c'est pour notre bien à tous.



Huitièment : je n'ai jamais dis que tu étais un abrutis et je ne le pense pas loin de la.



A++ et bon coding



Francky
0
Utilisateur anonyme
23 avril 2006 à 22:11
Juste pour conclure

'" \"' : [Error] server.pas(74): Incompatible types: 'String' and 'PAnsiChar'

Si tu avais cherché tu te serais dis :'" \"' ca c'est un string.
PChar ca "ressemble" à PAnsiChar. Et si je faisais PChar('\\') comme Francky me la dit pour la listbox : Peut etre que ??

Tu l'as pas fait à priori : tu as cherché je ne pense pas.

Salut
0
cs_Champy70 Messages postés 9 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 23 avril 2006
23 avril 2006 à 22:40
Merci Florenth!
Ps:Francky si je nai pas voulu te donner la source je te lai expliquer cela marchait en reseau local donc je savait que l'erreur ne venait pas de la source mais dailleur ! puis je suis peut etre un newbee mais au moin je sais que en tapant listbox dans la recherche cela ne donne rien de concluant pour ma question !
Et silteplait arrete de faire ton mac car tu connait bien delphi , tu ferai mieu daider les gens plutot que de les prendre de haut (meme si je comprends que des questions comme les miennes doivent etre plus que rebarbative!),demande leur depuis combien de temp il cherche et ne les revoie pas c... si il te repondent que ca fai une demi journee pour une si petite reponse !

Messieurs Le newbee vous salut!!
0
Utilisateur anonyme
25 avril 2006 à 23:11
Re

Je viens de faire un test :ShellExecute(0, 'OPEN', PChar('www.google.fr'), nil, nil, SW_MAXIMIZE); cela fonctionne donc pas besoin de rajouter \\ (Ca alourdit le code et c'est pas beau : lol).
0
Rejoignez-nous