Ouvrir un fichier du coté client

Signaler
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006
-
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006
-
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

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

ok je te remercie beaucoup je vais essayer de le faire marcher

ienien85
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

ouais le chemin est bon ca ne doit pas etre ca l'erreur
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Et au niveau du Namespace.Nomdelaclasse ? (ce qui se situe juste apres le '#' )


Mx
MVP C#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Non, ca ne doit rien t'ouvrir, simplement generer une dll.



Mx
MVP C#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
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#
Messages postés
41
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2006

ouais ouais on est d'accord. Par contre este ce que tu peux me dire ca correspond a quoi le viewastext

ienien85