Ouvrir un fichier du coté client

ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006 - 21 févr. 2006 à 15:48
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006 - 22 févr. 2006 à 16:03
Bonjour a tous, Voila je developpe pour mon entreprise un intranet et je voudrais savoir s'il est possible a partir de cette intranet d'ouvrir un fichier du coté client et non du coté serveur

merci d'avance

ienien85

28 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
21 févr. 2006 à 16:16
Salut,

Cela n'a pas changé depuis la semaine derniere.

Cela necessite soit
- L'action du client
- L'utilisation d'un activeX
- Une Applet

Tu peux toujours nous re-expliquer le but de cette manoeuvre, si jamais quelqu'un passant par ici aurait une autre idée...



Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
21 févr. 2006 à 16:29
salut MorpionMx. Je te remercie beaucoup pour ton aide car je pense que je dois etre relou a toujours poser la meme question mais estce que tu as des connaissance en active x car moi je ne connais pas et on ma conseiller de faire cela d'un point de vu securité.

je te remercie d'avance

ienien85
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
21 févr. 2006 à 16:44
Non, je ne connais rien du tout en ActiveX malheureusement.

C'est pour ouvrir un client VNC, c'est bien ca ?
Tu as essayé la méthode de l'Applet pour voir si elle fonctionnait ?



Mx
MVP C#
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
21 févr. 2006 à 17:14
Je viens de tester la méthode de l'Applet
Elle fonctionne parfaitement une fois le niveau de sécurité pour l'execution de l'assembly ajusté.

Te voila sauvé
A savoir que pour utiliser un UserControl en tant qu'applet, il faut que le client ait le framework .Net d'installé.

Donc c'est assez simple :
Tu crées un Assembly, sous form de dll, contenant un UserControl. Depuis ce UserControl, tu lances le process que tu souhaites.
On va appeler l'assembly "TestApplet.dll", le namespace "Essai", et ton UserControl "Test"

Ensuite, dans ton application WebForm, tu ajoutes ta dll a ton projet.
Et dans la page qui aura pour but de lancer ton process tu ajoutes ce code:


<object
id="test"
classid="http:/URLDeTonIntranet/TestApplet.dll#Essai.Test"
style="width: 100px; height: 100px">
</object>

(enfin, pour le propriétés width et height, c'est a toi de voir)

Et magie, le process se lance sur le client (enfin, normalement).



Mx
MVP C#
0

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

Posez votre question
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 08:21
ok je te remercie beaucoup je vais essayer de le faire marcher

ienien85
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 09:52
salut mx. Comme tu peux l'apercevoir depuis le debut je debute en c#. En ce qui concerne la mise en place d'un assembly sous forme de dll je ne sais pas du tout comment faire. Je dois creer un autre projet qui genere la dll TestApplet.dll ou je dois le faire au sein de mon projet? Et cette dll je la met dans le fichier bin ou autre part?

Vraiment desolé de te deranger et merci d'avance pour ton aide

ienien85
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 févr. 2006 à 09:56
Y'a pas de probleme, on est la pour aider :)

Pour creer une dll, tu dois en effet creer un autre projet, de type "Bibliotheque de classe".

Pour l'endroit ou la mettre, je ne l'ai pas mis dans le bin. En fait, j'ai juste fait "ajouter un element existant" au sein de mon projet webform.


Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 10:15
et la ligne que g a rajouté dans le html faut bien que je la met au niveau de mon bouton qui doit lancer mon process?

merci

ienien85
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 févr. 2006 à 10:29
Nonon, la ligne ajoutée dans le code HTML va s'occuper de charger le UserControl dans la dll.
Si tu veux un bouton qui lance le process, il faut le mettre dans ce UserControl la.

Tiens, voila un petit code d'exemple avec un bouton qui lance la calculatrice Windows.


<HR>

using System;

using System.Windows.Forms;

using System.Diagnostics;


namespace Essai
{

public
class
Test :
UserControl
{

private
Button button1;


public Test()
{
InitializeComponent();
}

private
void InitializeComponent()
{

this.button1 =
new System.Windows.Forms.
Button();

this.SuspendLayout();

//
// button1
//
this.button1.Location =
new System.Drawing.
Point(50, 20);

this.button1.Name =
"button1";

this.button1.Size =
new System.Drawing.
Size(75, 23);

this.button1.TabIndex = 0;

this.button1.Text =
"button1";

this.button1.UseVisualStyleBackColor =
true;

this.button1.Click +=
new System.
EventHandler(
this.button1_Click);

//
// Test
//
this.BackColor = System.Drawing.
Color.Red;

this.Controls.Add(
this.button1);

this.Name =
"Test";

this.Size =
new System.Drawing.
Size(182, 79);

this.ResumeLayout(
false);
}

private
void button1_Click(
object sender,
EventArgs e)
{

Process.Start(
"calc.exe");
}
}
}


<HR>

Donc ca c'est le UserControl qui se trouve dans ta dll.
J'ai mis le fond bien rouge, pour etre sur qu'on voit qu'il est chargé dans la page web

Ensuite, le code HTML

<HR>
<object
id="test"
classid="http:/URLDeTonIntranet/TestApplet.dll#Essai.Test"
style="width: 180px; height: 80px">
</object>

<HR>
va s'occuper de charger ce UserControl dans la page web. Tu n'as rien a t'occuper d'autre au niveau du code. Mais il faut que tu aies inséré la dll dans ton projet web prealablement.

Si tout est fait correctement, tu verras un fond rouge avec un bouton dans ta page.
Sinon tu verras un petit carré vide, qui indique que rien n'est chargé.

Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 10:51
Bon g fait ce que tu ma dit et g essauyé d'ouvrie le bloc note d'abord pour voir si ca marche mais il s'y affiche le petit carré vide. Alors g utiliser ton code mais la propriété "UseVisualStyleBackColor" ne marche pas mais je pense pas que ca vienne de cela.. Sinon je comprend pas pourquoi g VIEWASTEXT qui se met dans le html dans la balise <object> C peut etre ca qui fait que la dll ne marche pas

ienien85
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 févr. 2006 à 10:57
tu peux supprimer le "UseVisualStyleBackColor", c'est une propriété .Net 2

Si tu as un simple petit carré qui s'affiche, c'est qu'il n'arrive pas a trouvé l'assembly / Le UserControl.
Regarde si la dll se trouve bien au chemin indiqué dans la balise html, au niveau de classid



Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 11:08
ouais le chemin est bon ca ne doit pas etre ca l'erreur
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 févr. 2006 à 11:11
Et au niveau du Namespace.Nomdelaclasse ? (ce qui se situe juste apres le '#' )


Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 11:23
be c bon aussi . La je viens de refaire et ca ne amrche pas il y a toujour sce carré blanc. il me met un textbox multiligne g l'impression

ienien85
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 févr. 2006 à 11:38
J'ai reproduis ton probleme, simplement en me plantant dans l'URL de l'objet a charger
(Si tu as copié/collé la balise que je t'ai donné, j'ai oublié un '/' apres le http.)
Si ton site intranet se trouve dans un sous-repertoire, n'oublies pas de l'indiquer aussi.

Ou plus simple, si ta page aspx se trouve dans le meme repertoire que la dll a charger, n'indique pas le chemin absolu, fait simplement reference a la dll


<object
id="test"
classid="TestApplet.dll#Essai.Test"
style="width: 100px; height: 100px">
</object>

Si tu utilises la classe que je t'ai donné, que tu l'as compilé dans un Assembly nommé TestApplet.dll, que tu as bien gardé le meme namespace et nom de classe, et que tu as mis ta dll dans le meme repertoire que ta page, ca doit se charger.


Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 11:59
bon be ca marche pas . une question que je me pose c que est ce que quand je genere la solution en ce qui concerne mon applet est ce que ca doit me renvoyer quelques c'est a dire ouvrir la calculette?

ienien85
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 févr. 2006 à 12:18
Non, ca ne doit rien t'ouvrir, simplement generer une dll.



Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 12:25
Bon je te dit ce que g fait etape par etape et tu va me dir ou est ce que j'aurrai pume planter
- ouverture d'un nouveau projet de type "Bibliotheque de classe".
- Dans ce profet j'ajoute un formulaire windows
- ensuite g fait copié collé de ton applet
- j'ai changé le nom de l'assembly et appelé TestAppelet
- je génerre la solution
- Ensuuite g fait ajouté element existant et g pris TestApplet.dll qui a été généré précedemment
- Dans ma web form au niveau de l'html g ajouté :
<object id="test" classeid="TestApplet.dll#Essai.Test" style="width: 100px; height: 100px" VIEWASTEXT></object>

voila

ien ien
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
22 févr. 2006 à 12:37
Le cheminement est le bon:/

La seule différence, c'est que tu n'as pas besoins d'ajouter un formulaire windows... Un simple fichier classe suffit (voire nu fichier vide). Mais comme tout le texte est remplacé dedans ca ne doit pas etre ca le probleme.
Quand tu fais "ajouter un element existant", c'est bien dans ton projet web, on est d'accord ?



Mx
MVP C#
0
ienien85 Messages postés 41 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 13:37
ouais ouais on est d'accord. Par contre este ce que tu peux me dire ca correspond a quoi le viewastext

ienien85
0
Rejoignez-nous