J[AVA]SCRIPT ET .DLL OU UTILISATION D'UNE ROUTINE ÉCRITE DANS UN AUTRE LANGAGE.

sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006 - 23 mai 2005 à 13:29
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 28 mars 2008 à 12:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31555-j-ava-script-et-dll-ou-utilisation-d-une-routine-ecrite-dans-un-autre-langage

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 mars 2008 à 12:47
après ? où ?

activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
° Afficher une notification de chaque erreur de script
° Désactiver le débogage de Scripts (Internet Explorer)

et mieux, télécharger le Debogger IE
http://www.microsoft.com/downloads/details.aspx?familyid=2f465be0-94fd-4569-b3c4-dffdf19ccd99&displaylang=en

et l'exemple fourni suppose que tu disposes de Visual Basic...
sinon... il faut convertir la DLL dans un autre langage.
rdpdo Messages postés 3 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 28 mars 2008
28 mars 2008 à 12:39
Bah en fait j'ai juste copier-coller l'exemple donc je ne pense pas qu'il y a des erreurs avec les noms :(

Sinon lorsque je lance la page web, IE me met bien si je veux autoriser l'activex. Je met OUI mais c'est apres que l'appel des fonctions ne fonctionne pas :(

Merci !
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 mars 2008 à 12:35
>>un composant javascript ne peut pas creer...
parce que les ActiveX ne sont pas autorisés, à priori.
ça se paramètre dans IE.
sinon, tu dois faire une erreur dans les "noms",
mais ça si tu modifie l'exemple fourni !
@+
rdpdo Messages postés 3 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 28 mars 2008
28 mars 2008 à 12:15
Bonjour,

J'ai une alerte lorsque je lance le fichier html : un composant javascript ne peut pas creer une fonction.

Je suis sous vista avec IE7, pourriez vous m'aider svp ?

Merci bcp !
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
17 juin 2005 à 19:52
oui bon j'avais pas vu les choses dans ce sens la... C'est vrai que c'est encore un langage intermediaire. Mais ce niveau d'abstraction ne pose pas vraiment de problème ou en tout cas beaucoup moins que l'on en aurais sans.

Mais bon evidement il faut savoir ce qu'on veux... perso pour une application web je pense pas que du code natif soit une bonne chose. C'est fort dependant de la plateforme et de l'OS et ça pose des problème de sécurité pour des tache pour lesquels l'utilisateur se passerai bien dans la majorité des cas.
Telestmonnom Messages postés 4 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 17 juin 2005
17 juin 2005 à 18:15
> "si l'on peut appeler un code déjà compilé sur une autre machine, il faut bien que l'architecture de la machine soit la même" Java est compilé (ben oui en bytecode java) et executable aussi bien sur un PDA, un Pocket Pc, un SPARC sous solaris, un MAC sous Mac OS X, que sur un Intel le plus banal.

stp, t'as très bien compris ce que je voulais dire : par "code déjà compilé", je voulais dire code exécutable directement. dans le cas de Java, le code est exécuté par la surcouche JVM. Il se situe un niveau d'abstraction plus haut que les DLL normales (ou les .so si tu préfères).
Et d'ailleurs, l'architecture de la JVM est la même pour tous les types de machines, ce sont les linkages vers les fonctionnalités systèmes qui varient d'une jvm à l'autre
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
14 juin 2005 à 13:28
"si l'on peut appeler un code déjà compilé sur une autre machine, il faut bien que l'architecture de la machine soit la même" Java est compilé (ben oui en bytecode java) et executable aussi bien sur un PDA, un Pocket Pc, un SPARC sous solaris, un MAC sous Mac OS X, que sur un Intel le plus banal.

MS a du mal a accepter que son produit n'est pas fiable. Prenont Windows pour passé à un autre de leur produit. Selon eux il est plus fiable que Linux parce qu'ils ont fournis moins de patch de sécurité. Seulement voilà quand un bug est découvert il faut une plombe pour que le problème soit corrigé et quand un patch est fournis il corrige une multitude de problème. Alors que sur linux le patch est fournis aussi vite que le bug est trouvé. Donc sur Windows le temps entre la decouverte du bug et sa correction on a largement le temps d'avoir bouffé un tas de saloperie. C'est le même chose pour IE. Même si MS n'ose plus prétendre qu'il est sécurisé (ben oui avec le nombre de faille connue non corrigé ce serait un comble).

CrashTest >> C'est une vision un peu poussé là... Si il ne les ont pas virée dans le SP2 c'est tout simplement parce qu'ils ne peuvent pas. t'imagine une seconde le type qui a son site qui ne repose que sur de l'ActiveX (ce qui n'est pas conseillé). Imagine ce que deviendrait le site de bultez uniquement si IE respectait les standards (sans parlé des activeX). Demarre firefox ou opera et regarde. C'est pas encore si catastrophique mais il y a bien pire. Tient en voila tout une volée : http://www.systemg.be => nos client => internet. http://www.browning-golf.com/ il fait fort lui... ca vaut le coup d'installé Firefox rien que pour ça lol. Et imagine ton WindowsUpdate ^^. Bon d'accord pour WU ils ont assez de ressource pour refaire un site sans ActiveX.
Je ne pense pas que les failles soit volontaire. Ils ont déjà assez usé de subterfuge pour nous controlé (comme windows messenger, windowsupdate, ... Tu trouve normal que ce soit si compliqué de dire à win messenger de pas se connecter quand tu le demarre ?). Le CLUF est parait-il(J'ai jamais eu le courage de le lire) une vrai prise de possession de ton PC par MS. En tout cas pour l'instant ils sont en train de perdre leur monopole. De plus la lute qu'ils commencent contre le piratage ne va que les enfoncer un peu plus. Ils ont grand interet a nous concocter un IE7 et un Longhorn digne de ce nom.
cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005
14 juin 2005 à 10:35
lu tous j'en est parler avec mon père et on n'est d'accord microsoft à le monopole de l'informatique à mon avis ils connaissent très bien tout les bugs avan meme de le mettre sur le marcher car comme sa il connaisse les failles de mos pc, rien ne les en empèche car il n'y a pas de boite d'informatique plus puissante qu'eux. c'est comme leur antivirus norton il arete les virus creer par mricrosoft mais il n'arete pas les virus des hackers donc enfaite se ke je ve dire c'est que le control activex est fait pour, sinon il laurait deja viré de IE sur sp2 ou meme bien avan voila @++ bonne journée
Telestmonnom Messages postés 4 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 17 juin 2005
14 juin 2005 à 09:35
moi aussi j'ai eu quelques problèmes pour poster :|

En tout cas, c'est assez évident que le fait d'appeler une DLL suppirme toutes les barrières de sécurité possibles. S'il s'agissait d'une sorte de code managé ou interprété (comme .Net ou Java), on pourrait appliquer des règles de sécurité à des modules extérieurs, mais ça ne serait plus une DLL.

Le fait de ne pouvoir utiliser les activex que sur une plate-forme donnée est bien logique, par contre : si l'on peut appeler un code déjà compilé sur une autre machine, il faut bien que l'architecture de la machine soit la même. Et ceci sans parler du système d'enregistrement des composants OLE/COM dans le registre :)

C'est vrai qu'on peut faire des reproches à Microsoft sur les activex, mais pas tellement sur le principe qui est louable : permettre de déployer des applications très évoluées de manière discrète. Le reproche à faire est l'attitude de Microsoft, un peu "Il n'y a aucun risque [si derrière vous mettez des murailles de sécurité adaptées]", la partie entre [ ] étant dite à voix basse ;)
Je dis ça pour chambrer, un peu, mais il me semble quand même que MS a du mal à accepter le fait que leurs produits ne sont pas parfaits, et essaye de cacher autant que possible les défauts.
A ce propos, mon boss m'a fait remarquer très subtilement qu'on ne se rend compte des bugs d'un produit que quand il est utilisé par beaucoup de monde. Avec 95% du marché, il n'y a plus un bug qui n'est pas remarqué. à bon entendeur... :)
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
13 juin 2005 à 21:54
Il a l'air d'y avoir quelque soucis sur le site aujourd'hui ça fait déjà quelque fois que je poste et tjs rien esperont que ce soit la bonne.

D'abord pour revenir sur l'equivaltent ActiveX sur linux, apparemment d'après ce que me dit Aurelien (par coïncidence) à http://blogs.developpeur.org/cyril/archive/2005/06/02/7134.aspx, XPI à la pretention de faire la même chose qu'un activex mais pour linux. je decouvre ça en même temps que vous donc je ne peux pas parlementer plus que ça sur la securité mais ça existe.

Et pour revenir à bultez, je rencontre beaucoup moins souvent des ActiveX que Microsoft ne le prétend. Et moins j'en rencontre mieux je me porte pour les raisons citée plus haut. Le seul site pour lequel je reprend de temps en temps IE est le site de la MSDN ou WindowsUpdate... Ah non pour tester si mes sites sont compatible IE aussi (ben oui c'est pas parce qu'un site est standard que'il est rendu partout pareil...tient ce serait pas la definition d'un standard ça ?).

L'avantage que tu cite est le même que celui que j'ai cité plus haut : "Dans ton cas je ne sais pas si on peux appeler une dll a partir de java donc tu n'as d'autre choix que de passé par un activex". Je n'en voit pas beaucoup d'autre si ce n'est de passé les barrière de sécurité sans demander de permissions. Mais ce que ne dit pas Microsoft c'est que si il est possible de l'utilisé dans de nombreux langages il est aussi fort dépendant de la plateforme, du navigateur, de la politque de sécurité, ... et surtout n'est pas standard.
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
13 juin 2005 à 08:04
http://support.microsoft.com/default.aspx?scid=kb;fr;154544

ActiveX est une norme qui permet à des composants logiciels d'interagir les uns avec les autres dans un environnement réseau, indépendamment du langage utilisé pour les créer. La plupart des utilisateurs du World Wide Web rencontreront la technologie ActiveX sous la forme de contrôles ActiveX, de documents ActiveX et de scripts ActiveX.
...
L'un des principaux avantages des contrôles ActiveX par rapport aux programmes Java et aux plug-ins Netscape est la possibilité de les utiliser dans des programmes écrits dans de nombreux langages de programmation, y compris tous les langages de programmation et de base de données Microsoft.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
12 juin 2005 à 16:54
"le principe de l'activex est précisément de passer à travers les barrières de sécurité des browser pour avoir accès à un maximum de possibilité."

Je risque de parraitre un peu extremiste mais mon point de vue est different : le principe est de créer une interface super simpliste qui permette de faire des chose genial sans se soucier pour le moins du monde a la sécurité de l'utilisateur. Le fait de passé toute les barrieres de sécurité est justement le problème puisque n'importe qui peut passé a travers ces barrieres. Donc à quoi servent-elle ? J'y vais peut être un peu fort mais c'est juste pour marquer mon point de vue je connais les avantages de l'activex. il faut aussi accorder à l'activex qu'il date de la fin des années 80 debut des années 90 et qu'il ne peux forcement pas faire face à de nouvelles techno comme java.

Je reconnais que de son temps ActiveX n'avait pas son pareil sécurisé. Mais maintenant ce n'est plus pareil il existe java. Comme je l'ai expliquer java permet de faire a peu pres tout ce que fait activex et a un framework beaucoup plus puissant. Le principe de java c'est que ce n'est pas du code machine mais du code interpreté (je pense qu'un Just In Time est en developpement mais je n'en suis pas certain) ce qui fait qu'on peut controlé tout ce que l'applet peut faire et il fonctionne sur toute les architecture processeur (même les gsm savent interpreté du java ainsi que certaine carte à puce !). on peut par exemple l'autoriser à lire sur le disque mais l'interdire à ecrire. ben oui si par exemple on veux faire un scanneur de virus à distance pourquoi autoriserions-nous l'applet à ecrire sur le disque alors que l'operation ne nécéssite qu'une lecture.

Avec ActiveX une fois que ton activex est chargé tu n'as aucun controle sur ce qu'elle peut ou ne peut pas faire. Il peut aussi bien afficher une image toute gentille et derriere installé un mechant spyware qui va te pourrir la vie.

Pour un utilisateur averti c'est pas grave mais quand t'as un qui connais quedal il fait confiance sans s'imaginé qu'apres il aura des banniere intempestive qui vont lui pourir l'existence. C'est ce que je reproche aux activeX => quand je depanne un pc je désactive les activex dans IE et je lui parle de firefox. Si tu utilise un activeX sur ta page mon client ne pourra pas le voir.

Si je dois reconnaitre des avantages a activex sur java c'est qu'il est propre à Windows et qu'on peut communiquer entre plusieur activex. Pour communiquer entre plusieur applet java je pense qu'il faut tous les fournir. Dans ton cas je ne sais pas si on peux appeler une dll a partir de java donc tu n'as d'autre choix que de passé par un activex. je me trompe peut-être si il y a un javatiste dans la salle qu'il se manifeste ^^.

Mais pour l'exemple cité ici, on peut aisément le faire en java. Voilà par exemple la même chose mais en plus élaboré : http://www.univ-lemans.fr/enseignements/physique/02/divers/syntfour.html. Il s'agit de la simulation d'une synthese de fourrier. en cliquant sur "avec son", l'applet reproduira le son sur tes haut parleur. Je viens désassembler pour voir si le code etait complexe et ça ne l'est vraiment pas. si quelqu'un veux voir le code, je viens de telecharge jad à http://kpdus.tripod.com/jad.html#download, l'applet à http://www.univ-lemans.fr/enseignements/physique/02/divers/syntfour.class on met tout dans le meme dossier on tape "jad syntfour.class" et le code est dans syntfour.jad.

Après tout ça on dira que mes remarques sont stérile...

enfin voilà. ;)
Telestmonnom Messages postés 4 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 17 juin 2005
12 juin 2005 à 11:23
Sibi12 : en fait, mieux vaut éviter de passer par la création d'une seconde DLL ActiveX dans ce cas, à moins de souhaiter que l'utilisateur puisse utiliser la DLL C++ indépendamment, mais ce n'est pas la philosophie de l'activex.
En plus, on peut très bien ajouter une "surcouche activex" à la DLL C++ et ne publier que les fonctions de l'activeX, sans modifier le coeur de la DLL... De tout point de vue, sauf peut-être de la maintenance / mise à jour, c'est le mieux : plus performant et plus simple à déployer. Enfin, peut-être que j'oublie certain détails, je n'ai jamais fait de DLL ActiveX en C++

Sinon, quelques points pour compléter mes explications, maintenant que j'ai complètement testé/débuggué l'affaire : mieux vaut déclarer l'object dans la section head du html, comme ça on n'a pas de "petit rectangle tout laid qui apparait en attendant le chargement", dans le cas des composants non visuels
Aussi, je ne sais pas ce que j'ai modifié exactement, mais je n'ai pas réussi à utiliser l'objet directement : maintenant, je passe par une déclaration avec un "new ActiveXObject("NomActiveX.DLLLinker")". En plus ça permet de vérifier si l'activex a été accepté, en encadrant la déclaration par "window.onerror FonctionGestionErreur;" et "window.onerror null;"

Sinon, mon point de vue par rapport à votre querelle : le principe de l'activex est précisément de passer à travers les barrières de sécurité des browser pour avoir accès à un maximum de possibilité. Donc dans la mesure du possible, en tant que développeur, il faut éviter de les utiliser pour sécuriser l'utilisateur par rapport à ce qu'on fait. Ceci dit, l'activex, c'est le moyen ultime pour publier sur le web des grosses applications... Windows ! lol
D'ailleurs, est-ce qu'il existe un équivalent pour linux ? Je suppose que non, vu que la philosophie est pas la même : linux cherche à offrir des services "professionnels", dans le sens où la sécurité et la performance priment, tandis que windows/microsoft cherchent à offrir des fonctionnalités le plus simplement accessible. Ce sont deux visions différentes qui sont presque totalement opposées, à cause des concessions qu'elles doivent faire... Chacune a ses avantages, il faut savoir déterminer le sens dans lequel s'orienter selon le contexte/l'objectif visé.

Voili voilo :)
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
9 juin 2005 à 21:10
Enfin un ActiveX réalisé dans les règles de l'art...

Si t'es obligé de faire un ActiveX cet solution est déjà meilleur. Même si ça n'est toujours pas la solution ultime, c'est déjà une petite alternative a la réecriture de la dll.

J'avoue que j'avais oublier qu'on pouvait signer les ActiveX.

Je ne m'etendrai pas sur "critiques stériles". Je n'ai pas critiquer TON code mais la méthode.

Ca fait de le peine à voir que la sécurité et les standards du web soit si mépriser par quelqu'un qui a 43 sources javascript. Allo !! Faut se mettre à la page de temps en temps, c'est fini la suprématie de IE, 15% des francais utilisent firefox et ne peuvent pas aller sur ton site. Sans compter Opera, Mozilla, Safari, ... La plupart de ces 15% sont des développeur/webmaster et c'est justement à ces personnes qu'il est sensé être destiné. Si ça c'est pas un site stérile d'information...

Tu peux considérer ça comme un retour d'utilisation puisque chez moi ça ne fonctionne pas !!!
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 juin 2005 à 16:46
merci et bravo, TelEstMonNom.
j'avais totalement négligé les aspects
abordés par ces explications, de plus
c'est un exemple avec C++.
ça servira obligatoirement, même si
on essuie plus de critiques stériles
que de contributions importantes ou
de retours d'utilisation. @+
Telestmonnom Messages postés 4 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 17 juin 2005
9 juin 2005 à 15:08
bon, pour revenir au sujet...

J'ai développé un ActiveX (qui n'avait pas d'autres choix que d'en être un) que je voulais publier, donc voilà une explication de ce que j'en ai fait, pour ceux qui pourraient être intéressés :

A la base, j'avais une DLL C++ (et les sources) qui analyse une image bmp. Je voulais fournir en service sur un site web (en ASP.NET) l'analyse de cette image. Vous comprenez bien que transférer l'image entière n'est pas optimal, et donc le but était de ne transférer que le résultat de l'analyse. Cette DLL n'ayant rien de visuel, je suis parti sur la piste de la création d'un DLL ActiveX en VB6 qui enroberait ma DLL C++.

Tout d'abord, création du projet VB6 -> DLL ActiveX, ajout des fonctions avec l'instruction "Declare", je vous laisse vous renseigner pour cette partie. Dans mon cas, la DLL offre un service sans contexte : les fonctions publiées dans la DLL sont donc déclarées "Static".

Ensuite, il faut signer le code pour que l'activex soit accepté par IE en configuration de sécurité normale. Pour ça, il faut télécharger le toolkit "Internet Component Download" (MSICD pour les intimes) et demander une clé à des sociétés spécialisées comme VeriSign. Vu que je travaille sur un proto, j'ai utilisé la clé "par défaut" qui permet juste de dire que l'ActiveX est signé, mais par une entité qui "n'est pas digne de confiance".
Désolé, mais je n'ai plus le lien pour le toolkit, cependant google devrait vous le trouver

Il faut donc créer une clé avec makecert, dont voilà une utilisation possible :
makecert -r -sv privkeyfile.pvk certfile.cer
makecert [options] [output]
-r => clé signé par soi-même
-sv [name] => conteneur de la clé privée
output => fichier .cer contenant la clé publique

ensuite lancez signcode.exe pour choisir chaque fichier qui entreront dans l'archive. l'assistant de signcode est suffisamment complet pour que vous vous y retrouviez : sachez juste qu'il faut utiliser le mode "utilisateur avancé" pour pouvoir spécifier les clés à utiliser depuis des fichiers

Après, j'ai créé le paquet de l'activex avec l'"Assistant paquetage et déploiement" de VB6. Choisissez votre projet, cliquez sur l'icone empaquetage et choisissez de créer un paquet pour internet.
Ajoutez les fichiers nécessaires au fonctionnement de l'activex, assurez que chacune des classes de l'activeX sont sures pour l'initialisation et le scripting.
Ensuite, une fois le paquet créé, ouvrez le dossier Support et allez modifier le fichier <NomActiveX>.inf. Chaque fichier à envoyer sur la machine cliente a sa section : changez-en la propriété DestDir pour la mettre à 11, par exemple (répertoire system32).
J'ai aussi modifié la dernière section, [RegisterFiles], et y aie ajouté le nom de la DLL C++ (au même format que la DLL activeX qui y était déjà, cad "%11%\NomDLLCPP.dll")

Enregistrez les changements et lancez le .bat qui reconstruira l'archive .cab. Puis signez le .cab de la même manière que vous avez signé les DLL précédentes.
Ensuite, placez ce .cab où vous le souhaitez dans votre site, et regardez la source du .htm fourni avec : il contient le tag object qu'il faudra replacer dans les sources de vos pages pour accéder à l'ActiveX. la propriété codebase de ce tag indique le chemin relatif de l'archive par rapport à la page...

Une fois votre paquet, pensez à déréférencer l'ActiveX de votre base de registre, sans quoi le browser ira le chercher dans le dossier où vous l'avez créer. Pour déréférencer un contrôle, utilisez "regsvr32 /u CheminAbsoluActiveX.dll"

Maintenant, voilà la structure du script qui utilise le composant :
DLLLinker est la classe enrobant les fonctions de la DLL C++
<OBJECT id="DLLLinker" codeBase="NomPaquet.CAB#version=1,0,0,0" classid="CLSID:3RCAD2B-EA46-6587-9Z8B-056455D0934B">
</OBJECT>
<SCRIPT language=javascript>
<!--
function fonc()
{
var file = "C:\\fichier.bmp";
var typeAnalyse = 1;
var result = DLLLinker.Analyse(file, typeAnalyse, false);
}
-->
</SCRIPT>
Ici, c'est respectivement un string, un long et un boolean qui sont attendus par la fonction Analyse.

Voilà, j'espère que ça servira à quelqu'un :)
cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005
1 juin 2005 à 14:26
ok merci sibi12 je vais le mettre au normes. il va falloir que j'aprenne le CSS. aller @++ j'ai du pain sur la planche :)
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
1 juin 2005 à 14:16
le W3C c'est le consortium qui s'occupe des standards du web. c'est un peu comme l'académie française qui s'occupe de réguler l'usage de la langue francaise ben le W3C s'occupe de créer un standard pour qu'un même site puisse être vu de la même maniere sur un navigateur ou l'autre. je vais pas m'eterniser sur ce sujet mais je conseil vivement à ceux qui se demande à quoi servent les standards de lire cette article http://www.divetheweb.com/dive/shea_road_map.htm. je te conseil http://www.alsacreations.com/articles/ pour commencer avec les standards ça regorge de CSS et d'exemple très interressant.

Pour voir si ton site est conforme, rend toi à http://validator.w3.org/ pour le html et http://jigsaw.w3.org/css-validator/ pour le css. Pour ton site il manque le doctype donc il n'est déjà pas conforme puisqu'on ne sais pas quel version de HTML tu utilises.
cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005
1 juin 2005 à 12:50
Lu "alain proviste" j'aime bien ton pseudo :).
Oui bon alors j'ai lu tout se que vous avez écrit j'ai apris beaucoup.
J'ai vu aussi que vous avez parlé de siteweb j'en n'est créée un mais j'aimerais que vous me disez se que vous en pensezet si sa marche sous nestcape (je vai le dl pour le tester car jai lu dans se que vous avez ecrit qil utilisai les 2moteurs les plus conu)
et que vous me disié si sa va bien avec W3c (je vai me renceigné pour savoir se ke c'est), voila c tout car le js je connais html aussi mais juste comme sa donc je c pas si tout le monde pe voir mon site trankil.
http://crashtest.fr.nr
http://crashtest666.serveftp.net

ps : sil vous plait ne faite pas attention au faote et il y a pe etre un peu de pub.

aller @++
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
25 mai 2005 à 23:42
sujet clos, indeed.
amicalement...
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
25 mai 2005 à 16:40
"si on parle de normes, vous feriez bien d'en regarder
2 basiques : la grammaire et l'orthographe"

je pense pas être sur orthographefrance.com non plus. pour autant que ce que je raconte soit comprehensible... A court d'argument ???

" ( je ne
dis pas que je ne fais pas de fautes, mais je fais
un effort )."

quel est l'interet de ta remarque alors ???

"les insultes, attaques personnelles... c'est assez
minable ça... à court d'arguments ?"

Pardon ?? Insulte ?? Attaque personelle ?? Il me semble avoir été très correct. si un truc te semble injurieux je veux bien que tu me dises quoi. C'est toi qui as un tas de préjugé.
A court d'argument ??????? c'est moi qui suis à court d'argument ?????? stp arrête tu me fais rire...

"si vous êtes incapables d'adapter mes très petits
scripts à votre environnment, qui êtes vous pour juger
de ce que je fais ?"

On est sur un site de libre échange ou plein de newby passe tout les jours. si tu leur apprend à faire des merdes autant ne pas rien leur apprendre.(je ne dis pas que cette source est une merde)
Quelle est l'interet de déposé un code si il faut le refaire en entier ??? ben oui je vois pas ce que je peux récuperer de cette source...peut-être le beau html comme base pour d'autre tuto ? ^^ latex2html tu connais ?
Environnement ??? qui a parler d'environnement ?? l'environement c'est du HTML/javascript point barre. qu'on soit sous IE FireFox Opera ou Netscape, sur Win Linux ou solaris ça ne change absolument rien. Même les SmartPhone navigue sur le net maintenant. le principe du Web c'est que tout le monde doit pouvoir naviguer sur ton site et l'utilisé de la même manière. Maintenant si tu ne vois pas assez large pour te rendre compte que dans les communauté de développeur/webmaster IE est de moins en moins utilisé.

"si mes script ne vous conviennent pas, ne les utilisez
pas, si mon site vous déplait, n'y allez plus ... et
laissez nous vivre."

Aucun problème pour moi.. j'essayais juste d'être constructif. Si tu crois ne plus rien avoir à apprendre tant mieux pour toi... ah lalala dur dur de se remettre en question...

"sujet clos pour moi"

Ok

"et je vous
plains."

Il n'y a pas de quoi.
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 mai 2005 à 09:02
si on parle de normes, vous feriez bien d'en regarder
2 basiques : la grammaire et l'orthographe ( je ne
dis pas que je ne fais pas de fautes, mais je fais
un effort ).
les insultes, attaques personnelles... c'est assez
minable ça... à court d'arguments ?
si vous êtes incapables d'adapter mes très petits
scripts à votre environnment, qui êtes vous pour juger
de ce que je fais ?
si mes script ne vous conviennent pas, ne les utilisez
pas, si mon site vous déplait, n'y allez plus ... et
laissez nous vivre. sujet clos pour moi, et je vous
plains.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
25 mai 2005 à 01:55
Ouhh laaa on se calme là un peu... ça va pas bien de mettre des truc comme ça sur tes pages web :
var fso=new ActiveXObject("Scripting.FileSystemObject");

non mais t'imagine une seconde le type qui accepte que tu execute ce code là !!!!!!!!! à ce niveau là c'est plus un trou de sécurité c'est un trou noir... il aspire toutes les merdes qui passent dans les environs et plus rien ne sais en ressortir. si ce code fonctionne chez toi je te conseil sérieusement de vérifier ta securité.

De plus ton site est loin..très loin d'etre conforme W3C. sur FireFox ça donne un truc qui ressemble à rien. j'ai fait une validation W3C sur la page du choix d'une source, il n'as même pas voulu car il y a plein de ligne ou l'encodage est incorrect. c'est du aux accents j'imagine. sur wdg il m'affiche toute une serie d'erreur avant un beau "The maximum number of errors was reached. Further errors in the document have not been reported."

quand on voit ça : http://www.xitimonitor.com/etudes/equipement6.asp

il est temps de se standardisé...je viens de testé netscape 8 à part le fait qu'il bogue chez moi pour une raison inconnue (mais j'imagine que ça devrait rentré dans l'ordre dans les prochaine mise à jour), je le trouve encore mieux que FireFox. De plus les developpeurs ont eu la bonne idée d'intégrer les 2 moteurs Gecko et IE. donc les soucis de compatibilité pas mal diminué. Si les rétissent ne tente pas l'experience maintenant, je ne sais pas ce qu'il leur faut. Restera à voir si Mr tout le monde saura le prendre en main facilement... En tout cas c'est pas bon pour IE tout ça. on attend leur reponse vu qu'IE 7 arrivera avant longhorn parait-il... Ils en ont du boulot...

bon faut que j'aille dormir moi... bonne nuit
cs_andros Messages postés 17 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 4 juillet 2006
24 mai 2005 à 23:54
salut Bultez,

Ton source, on apprend rien. Avec la conclusion que tu mets à la fin de ton truc, pour la doc, j'irai voir ailleurs. Je crois que pour détruire un objet en js, mettre la variable à null ne suffit pas, c'est même perdu (à moins que derriere js, le c fasse ce travail...mais j'en doute) ! L'opérateur delete() par contre...
Après j'ai été sur ton site, bon je le regarde, je click sur petites annonces. Là erreur sql. ok je reviens, je regarde les scripts je download editeur.exe je le lance le dézippage se termine mal, le programme ne répond pas, faut killer, mais bon les fichiers semblent tous présents. Je lance editeur.hta et là le debugger d'ie me signale une erreur je continue erreur je continue c'est bon j'y arrive mais il manque toutes les icones, et aucune fonction...ne fonctionne (il est chiant mon debugger sous ie, mais perso j'essaye au maximum d'éviter les erreurs js). Je retourne sur ton site, tiens je télécharge wysiwig.exe, je trouvais ça cool j'essaye et ça marche pas, rien ne marche. Et là, j'avais pas encore fait le rapprochement avec les activeX !! Et là je rejoins complètement sibi12. Et oui, j'étais sous mozilla mes amis ! Il est vrai que c'est mon navigateur par défaut et que les activex n'y sont pas autorisés à priori. Et perso je trouve du coup que c'est encore une galère à la compatibilité des navigateurs. Bien sûr il suffit de les autoriser et par la force des choses pê, mais pour moi un site reste un endroit public où c'est moi qui rentre pour voir ce qu'il y a, pas l'inverse. C'est la fonction d'un navigateur, avec déjà le multimédia, js, flash, etc, tout ce qui faut pour se faire plaisir en visitant un site. Pour le reste effectivement, y'a ka écrire des trucs dédiés. Parce qu'à ce moment là, y'a qu'à tout faire par le navigateur alors, il n'y aura pas besoin d'autres fenêtres ! [windows becomes window] Tous les services à distance en gros, bougez pas on s'occupe de tout. Bon c'est pê utile dès fois, mais c'est clair que ça restreint la cible, alors qd c'est pas utile, n'en parlons pas : des wysiwig y'en à en freeware SANS activeX. En plus tu utilises des filtres IE dans ta css comment on peut en arriver là quand on veut faire partager de la doc ?? Déjà que la compatibilité entre navigateurs c'est qd même galère, non vous trouvez pas ?


Donc bref, un source qu'en est pas un (mais comme d'hab : y'a des sources en 2005, le gars t'explique l'instruction que tu trouves dans un bouquin de base d'il y a 10 ans, et il est content. Faut pas être éjaculateur précoce comme ça), et ensuite un site et un script (car c'est ton site qui utilises les filtres) qui marchent pas qd je les ouvre, des erreurs, des trucs qui marchent pas tout simplement dans mon navigateur qui n'est pas ie (choix purement technique, je ne fais pas de politique, je voudrais juste des navigateurs qui procurent des résultats identiques) .....j'ai perdu un peu de tps pour rien mais c'est pas grave je le voulais bien, et je retourne à mes petites affaires où pas une erreur js ne doit surgir !
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
24 mai 2005 à 18:27
"et aucun autre langage ne le peut ?
je pense que si quand même, et s'il faut s'interdire
tout ce qui est développé en C, en C++, en Visual
Basic, en Assembleur, en Delphi, en PHP ... refuser
tout ce qui est exécutable,interprétable ... donc
en fait, on ne va pas très loin."

On parle ici d'une application destiné à être affiché sur une page web pas d'un exe quelconque. Ta page tournera sans problème sur ta machine si tu utilise ta page en local. maintenant met toi à la place de la personne qui visite pour la premiere fois. On lui demande d'installé un ActiveX...Connaissant les risque personnellement je refuse. (Je ne parle pas ici d'un site reconnu pour être sûr mais simplement d'un site perso)

"la plupart des spyware et des virus sont diffusés
d'une autre manière. les autres langages ne
peuvent pas non plus, ça ?"

Idem le problème n'est pas que tu puisse faire du code malicieu puisque le but de la source n'est pas la. le problème est que n'importe qui n'acceptera pas ton ActiveX. FireFox n'autorise pas les ActiveX et d'apres les dernieres stat on en est à 10% des utilisateurs et on remarque aussi une monté de Netscape ces dernier temps.

"tu n'a pas compris ce qu'est un active'X
c'est une routine ( développé dans un langage
quelconque, généralement C++ ) qui est appelée
de la même manière depuis différents langages."

Je sais très bien ce qu'est un ActiveX ne te tracasse pas pour ça ;-). N'empeche que si il est rédigé dans un langage quelconque ça forme finale est très loin d'être quelconque. C'est du beau code natif enrobé par une série d'interface qui permette d'avoir accès à toute les fonctionnalité de l'appli sans même en connaitre le nom des fonctions au moment de la création du client. Le concept est génial. J'ai été un grand consommateur d'activeX. mais toujours est-il que le concept de mettre un ActiveX sur une page internet n'est pas à mon sens une solution ultime.

">>il ne peut être exécuté que par une
>>architecture intel
non... sous windows, oui. comme c'est ce que
j'ai, tout va bien."

comme je l'ai dit dans mon premier post : "A moins de travaillé en intranet" ce qui n'est pas le cas à priori pour la premiere personne tombant sur cette source.

">>Par contre un applet java
comparaison de 2 choses qui n'ont rien
à voir, c'est comme si tu comparais le
framework .net et XUL sous FireFox"

Il faut voir de quoi on parle là... Un ActiveX n'as rien à voir avec un applet java. je suis tt à fait d'accord. cependant, l'uilisation que tu en fait ici est beaucoup plus spécifique... tu veux implémenté une fonction qui n'est pas disponible directement via du javascript. C'est ca à quoi est destiné un applet java. (au même titre qu'un flash mais qui est lui plus orienté designing)

">>il n'as accès qu'à la JVM
de 2 choses l'une
[ l'autre c'est le soleil, désolé, je
n'ai pas pu m'empécher, merci Prévert ]"

C'est rien si je devais m'excusé chaque fois que je lache une vanne ^^

"prenons par exemple l'accès aux
supports/répertoires/fichiers... locaux"

Sous java, je ne sais pas exactement comment se passe la sécurité mais je sais que c'est fort proche de .Net. c a d qu'on peux choisir un niveau de sécurité à certaines application. par exemple les applets venant du net ne pourront sans doute pas accéder au système de fichier. ce qui est plutôt rassurant a mon sens. (si quelqu'un peux confirmer mes dires...)

"_ soit avec java on peut y accéder
et dans ce cas, pourquoi reprocher aux
Active'X de le faire ?
_ soit on ne peut pas
et dans ce cas, vive les Active'X
mais je connais d'autres langages
qui le peuvent ( heureusement !?! )."

Le problème est que tu n'as pas besoin d'acceder au disque dur du type qui se balade peper sur ton site ! et donc pourquoi accepterait-il que tu ai faire joujou sur son disque dur. Il faut savoir à quoi sert ton application. si c'est pour faire un travail sur le disque il doit y avoir moyen de demander ce qu'on appelle en .Net une permission, c a d qu'on demande à l'utilisateur si on peut aller trifouiller sur son disque. Si tu n'as pas besoin de trifouiller le disque tu ne lui demande rien et tu ne touche pas au disque.

">>je te défie de faire un ActiveX en
>>assembleur, ou en C++
plein, plein d'exemples, d'explications sur la toile
gogole n'est pas ton ami ?"

Je veux bien voir un exemple en assembleur qui ne soit pas compliqué... si tu as ça sous le coude je suis preneur... En C++ franchement faisable, d'ailleur la plupart sont ecrit en C++ mais grâce à l'atl. Je n'est pas dit que c'etait complexe. C'est juste lourd à gérer. Tu dois créer un identifiant pour chaque fonction, une focntion qui te donne l'identifiant a partir du nom de la fonction une autre pour appeler la fonction à partir de l'identifiant. rien que la gestion des identifiant je trouve ça pénible. Bon je viens d'allé voir un exemple de code (http://www.codeproject.com/com/com_server_without_mfc_atl.asp) C'est un serveur COM tout simple. (je n'ai pas trouvé d'exemple d'activeX sans ATL :( ). C'est à peu près ce que j'imaginais. Ceci n'est le code que d'un serveur COM. dans un activeX tu as un GUI par dessus à gérer. je trouve une ActiveX VB quand même beaucoup plus simple.

">>en Assembleur je suis près à me couper les c*****
>>si tu arrive à faire le même code que celui que tu
>>propose en moins de 100 lignes
tu dis ça, mais tu ne le fera pas, j'ai simplement
dis que c'était facile, je ne voudrais pas avoir
ça sur la conscience..."

je suis pas fou non plus ^^


PS : Attention, je ne veux pas dire par ici que les ActiveX c'est nul ou quoi que ce soit d'autre. Ne me prend pas pour un borné GNU/Linux ou quoi. Je trouve que windows à quelque problème de sécurité (pour la stabilité un pc bien entretenu ne pose pas trop de problème contrairement à ce qu'on peut entendre un peu partout) mais il a bien d'autre qualité. Le plus grande pour moi c'est de rendre disponible l'informatique qui est un outil quand même assez complexe à des personnes qui ne connaissent absolument quedale et qui veule juste faire un peu de traitement de texte ou surfer et chatter. Linux est loin de pouvoir se vanter d'être à la portée de tout le monde. Je ne suis pas anti-Gate ou anti-MS. Rendons à césar ce qui est à césar, quand on voit que les OLE on fait leur apparition dans la fin des année 80 et que nous les utilison toujours ça force le respect. Les ActiveX ont leur défaut mais il ne faut pas jetté la pierre à MS pour autant. Ce que je veux dire c'est que intégré un ActiveX dans une page Web n'est pas la solution ultime. (Même si je reconnais que l'idée est séduisante)

PS2 : en cherchant un exemple d'activeX C++ je suis tomber la dessus : http://www.inoculer.com/activex.php3 ce qui corrobore ce que je dit. ne regarde pas cette article avec tes yeux braqué sur le fait que tout le monde en veux à Microsoft.

bon j'y vais je suis en train de me faire engueler parce qu'on mange :p lol

@+
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
24 mai 2005 à 08:16
Je ne veux pas faire monter la tension encore plus, mais je pense qu'il devrait y avoir une rubrique spéciale sur ce site pour les routines ActiveX. Ainsi d'ailleurs que pour les interfacages XUL. Si quelqu'un connait quelqu'un qui connait quelqu'un qui connait Nix ...
++ !
LS
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
24 mai 2005 à 07:24
>>Un activeX a accès directement au processeur,
>>à l'OS, aux API, ...
et aucun autre langage ne le peut ?
je pense que si quand même, et s'il faut s'interdire
tout ce qui est développé en C, en C++, en Visual
Basic, en Assembleur, en Delphi, en PHP ... refuser
tout ce qui est exécutable,interprétable ... donc
en fait, on ne va pas très loin.
>>code malicieux peut être aussi bien
>>un spyware qu'un virus
la plupart des spyware et des virus sont diffusés
d'une autre manière. les autres langages ne
peuvent pas non plus, ça ?
>>de plus un Active'X étant du code natif,
tu n'a pas compris ce qu'est un active'X
c'est une routine ( développé dans un langage
quelconque, généralement C++ ) qui est appelée
de la même manière depuis différents langages.
>>il ne peut être exécuté que par une
>>architecture intel
non... sous windows, oui. comme c'est ce que
j'ai, tout va bien.
>>Par contre un applet java
comparaison de 2 choses qui n'ont rien
à voir, c'est comme si tu comparais le
framework .net et XUL sous FireFox
>>il n'as accès qu'à la JVM
de 2 choses l'une
[ l'autre c'est le soleil, désolé, je
n'ai pas pu m'empécher, merci Prévert ]
prenons par exemple l'accès aux
supports/répertoires/fichiers... locaux
_ soit avec java on peut y accéder
et dans ce cas, pourquoi reprocher aux
Active'X de le faire ?
_ soit on ne peut pas
et dans ce cas, vive les Active'X
mais je connais d'autres langages
qui le peuvent ( heureusement !?! ).
>>je te défie de faire un ActiveX en
>>assembleur, ou en C++
plein, plein d'exemples, d'explications sur la toile
gogole n'est pas ton ami ?
>>en Assembleur je suis près à me couper les c*****
>>si tu arrive à faire le même code que celui que tu
>>propose en moins de 100 lignes
tu dis ça, mais tu ne le fera pas, j'ai simplement
dis que c'était facile, je ne voudrais pas avoir
ça sur la conscience...

il faut arréter de répéter les poncifs lus ici et
là, les anathèmes de quelques soit-disant gurus.
Si les Active'X ne te plaisent pas, ne les
utilisent pas.
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
23 mai 2005 à 21:49
Je suis parfaitement d'accord sur le fait que les ActiveX sont une erreur de jugement pour plusieurs raisons :

- Étant donné que c'est seulement Microsoft qui à accepte l'utilisation des ActiveX , les ActiveX ne peut que fonctionner sur le navigateur Internet Explorer et sur une plate-forme Win32, donc la comptabilité est réduite.

- Plusieurs Anti-Virus se méfie sérieusement des ActiveX et en classe certains (accès au fichier ,...) comme à haut risque.

- Aussi à la base des ActiveX et des dll n'ont pas été conçu pour le web, alors il ne faut pas prendre pour acquis que les ActiveX et dll sont fait pour le Web. C'est comme si ont intégrait des commandes PHP dans du VB.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
23 mai 2005 à 17:54
Cette discrimination est tout à fait fondé...

Un activeX a accès directement au processeur, à l'OS, aux API, ... ce qui fait que n'importe qui peut développé du code malicieux sous forme d'un activeX. ça peut être aussi bien un spyware qu'un virus. de plus un ActiveX etant du code natif, il ne peut être exécuté que par une architecture intel x86. Les utilisateurs Mac, SPARC ou voir même SmartPhone, ne pourront executé ton ActiveX. ainsi que les utilisateur linux, Unix, ... mais pour une autre raison, c'est que COM n'est pas pris en charge sur ces plateforme(à ma connaissance)

Par contre un applet java est tout à fait different, il n'as accès qu'à la JVM qui est une machine virtuelle qui "interprete" du byte code, donc il n'as pas accès directement au processeur, disque dur, ... juste à une couche logicielle qui a fais ses preuves en matières de sécurité. de plus étant détaché d'un processeur, il peut aussi bien s'executer sur une carte à puce que sur un mac ou autre. Il est également pris en charge sur la plupart des plateformes.


Je pense que tu n'as pas bien saisi ce qu'est un ActiveX dans son fondement... tu devrais jeter un coup d'oeil sur les specification de COM qui est le protocole utilisé pour faire un ActiveX. Il y a pas mal d'interface à implémenté, la gestion des liens, ... qui est géré par VB je te défie de faire un ActiveX en assembleur ou en C++ avec une quantité de code raisonnable... En C++ ATL te mache une bonne partie du travail mais je le trouve assez rebutant. en Assembleur je suis près à me couper les c***** si tu arrive à faire le même code que celui que tu propose en moins de 100 lignes (j'ai voulu dire 1000 au depart mais je joue gros quand même ^^). Il faut implementer toute les interface IUnknow, IClassFactory, IDisptach, ...
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 mai 2005 à 16:11
>>Utilise plutôt un applet java.
l'éternelle discrimination envers les
active'X, qui n'a absolument aucun
fondement, aucune justification.
>>vachement plus commode d'en faire
>>un en VB qu'en Delphi
je ne connait pas Delphi, donc je
te crois, mais en C,C++, Assembleur...
( par exemple ) c'est aussi simple.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
23 mai 2005 à 13:29
"On résoud souvent le problème en utilisant un Active'X. ( gestion de fichiers, pilotage d'applications... )"

C'est quoi cette mode de resoudre tout les problème lié à une page Web par un ActiveX !!!

C'est la plus grosse faille de sécurité jamais créer par M$. Utilise plutôt un applet java.

99% des ordinateurs un temps soit peu sécurisé n'autorise pas les ActiveX A moins de travaillé en intranet mais il y a alors bien d'autre solution que passé par un serveur Web.


"En Visual Basic, mais facilement "transposable" vers le langage que vous préférez..."

C'est quand même vachement plus comode d'en faire un en VB qu'en Delphi. En C via ATL c'est pas ce qu'il y a de plus facile non plus pour ce genre d'application. C'est pas comme faire un bête export de fonction.
Rejoignez-nous