Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 2011
-
12 juil. 2006 à 12:17
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 2011
-
3 déc. 2006 à 14:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 3 déc. 2006 à 14:11
Oui, je sais Also. La mise à jour est sur mon ancien PC et comme depuis Juin je n'ais plus touché à Delphi par manque de temps... Mais ça viendra.
Merci pour ton astuce.
@+
Matt
Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 20102 2 déc. 2006 à 20:19
Oulà toujours pas eu de mise à jour depuis tout ce temps :p
Bon vis à vis pour connaitre la taille de la barre des tâches moi je fais comme ceci :
Le (+20) ça sert à toucher pile poil la barre des tâches ensuite on est libre de faire comme on veut :)
@+ !
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 25 juil. 2006 à 13:13
Ba justement t'avais le temps de le faire alors :-D ... entre deux jaunes ...
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 25 juil. 2006 à 11:21
Je reviens de Marseille !
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 25 juil. 2006 à 11:09
Alors Matt261 .. tu implémente avec Wininet ou ta baissé les bras !?? :-D
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 25 juil. 2006 à 09:59
Je vais voir si je peux trouver un truc pour les routeurs pur mais n'en ayant pas encore (ça va pas tarder) je ne pourrais pas tester... En tous cas, ça fait plaisir de savoir que ça peut servir à des gens :D
pkzip
Messages postés19Date d'inscriptionmardi 20 janvier 2004StatutMembreDernière intervention25 juillet 2006 25 juil. 2006 à 09:57
Cela fonctionne quand ton modem/rooteur est configurer en modem mais pas lorsqu'il est en rooteur pur ! enfin chez moi c'est le cas ! même avec le rooteur en disconnect j'ai un retour connecté dû au link du LAN...
Cela n'enlève rien à l'intérêt du source ! ^^
D'ailleur, je l'ai ré-implémenté en partie dans une de mes appli... donc Merci !
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 25 juil. 2006 à 09:51
Merci pkZip, normalement, ma fonction verifie si le pc est connecté à internet ET sur ton routeur/modem sauf erreur de ma part...
Je ne vais pas tarder à poster la mise à jour, il y a encore quelques petits réglages (et après une version sans compos).
@+
Matt
pkzip
Messages postés19Date d'inscriptionmardi 20 janvier 2004StatutMembreDernière intervention25 juillet 2006 24 juil. 2006 à 10:11
sympa comme source...
seul bémol pour moi la fonction : Detection_Connexion.
Si tu es derrière un rooteur ADSL, il te renvoit que tu es connecté même si ton routeur est "disconnect". Il renvoit "connecté" car le lien LAN entre ta machine et le rooteur est bon mais ce n'est pas pour autant que tu as une connexion internet...
perso derrière cette fonction moi je fais 1 ping de vérif (1 sur google.fr et s'il marche pas 1 sur yahoo.fr) normalement y'a forcément un des deux qui marche et qui te garanti ta connexion internet...
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 19 juil. 2006 à 09:45
@ Also : Merci ! :D il y a un moyen en effet de connaitre la taille de la barre des taches. Donc pour la prochaine MàJ : "Voulez vous télécharger la Maj?" et la taille de la barre.
Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 20102 19 juil. 2006 à 09:18
Ah si une chose, j'ai pu remarque rapidement dans le code que tu faisais ceci :
Mais moi ma Barre des tâches utilise 2 lignes, donc j'aimerais savori s'il n'éxistait pas un moyen pour connaitre la taille de la Barre des tâches ?
Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 20102 19 juil. 2006 à 09:16
Très sympa comme source ca :)
Cela pourra servir pourra servir pour mes prochaines applications, merci à toi, qui plus est le design est agréable.
Merci beaucoup
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 13 juil. 2006 à 17:25
Matt261 à dit:
"Je vais rajouter une messageBox : "Une mise à jour est disponible, voulez-vous la télécharger + taille du soft"."
là c'est parfait ;) j'ai mis 9/10 car c'est du bon boulot
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 13 juil. 2006 à 15:14
Je n'y avait même pas pensé Forman... ;) .
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 13 juil. 2006 à 12:22
oula t'es allé la chercher loin la blague, j'ai bloqué un moment :-D
cs_Forman
Messages postés600Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 6 avril 20101 13 juil. 2006 à 12:12
Depuis quand Vin Diesel détecte les bugs de sécurité (lire la capture!) ^^
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 13 juil. 2006 à 11:21
ha oui merde j'tavais dit que je te ferais quelque chose pour ta source, je m'y met maintenant ... :-)
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 13 juil. 2006 à 09:37
Merci a tous pour vos commentaires.
@ Shining : c'est grace au lien que tu donnes juste au dessus que j'ai commencé la programmation Internet.
Je vais rajouter une messageBox : "Une mise à jour est disponible, voulez-vous la télécharger + taille du soft".
@ John : Il est vrai que la BdR devient de plus en plus lourde à cause des désinstallateurs qui virent mal les valeurs mais la comme je me sers des valeurs enregistrés pour mon écran de veille qui sont dans la BdR... Mais après, en modifiant un tout petit peu le code, vous pouvez utiliser un INI.
Encore merci pour vos commentaires :) Je vais faire une MaJ avec tout ce que vous m'avez dit ;-)
@+
Matt
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 13 juil. 2006 à 01:22
Salut Matt,
Le design est sympas.
En ce qui concerne Indy : evidemment dans les uses tu as une ribambelle d'unités. qu'indy incruste Du reste, je me demande si elles sont toutes utiles.
La technique proposée par Elguevel est valable. Maintenant c'est un choix : s'allourdir de quelques octets pour un code simple ou se casser la tete pour gagner quelques octets. Sinon une technique sans utiliser de composants, consiste à faire appel au Shell via Delphi ( valable aussi pour les mails).
Je te mets 9/10 : c'est bien coder et je trouve que c'est sympas de proposer une méthode pour réaliser une mise à jour d'un soft. Je te félicite
@+
John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009 12 juil. 2006 à 20:11
C'est juste un exemple en même temps, libre à toi d'y rajouter ce que tu as envie :/
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 12 juil. 2006 à 19:57
et sans Indy ça donne quoi ?
http://www.swissdelphicenter.ch/torry/showcode.php?id=889, mais là ton updateur ne permet pas à l'utilisateur de choisir se qu'il veut télécharger c'est un peu gênant, car imagine que tu as une mise à jour de 25Mo et qu'il est en modem classique 56k.., et le pire il est impossible d'annuler le téléchargement mdr ^^ tu ne serais pas de la famille de microsoft par hazard ?
John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009 12 juil. 2006 à 18:06
+1 pour l'aspect graphique :)
Sinon, j'ai une question plus généraliste : pourquoi tu utilises la BDR ?
On sait tous que cette BDR s'encrasse au fil du temps, surtout quand les devs l'utilisent mal (ce qui est très souvent le cas), des clés sont crées et les désinstalleurs font très mal leur travail. Résultats on se retrouve avec des clés orphelines qui poluent le système.
Alors qu'avec un simple fichier de config dans le dossier d'installation de l'executable serait tellement plus simple : tu effaces le dossier (plus besoin du programme) = tu effaces tout ce qui avaient rapport à l'executable. Je trouve ça nettement plus propre et simple comme méthode ...
C'est pas vraiment dirigé contre ton code en particulier, c'est une constatation générale :).
Pour le reste ton code me plait bien, je te mets 8/10 ;)
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 12 juil. 2006 à 15:59
Oui je veux bien Elguevel parcequ'on va dire que je me suis rééllement dit il y a quelques jour : Tiens si j'essayais Indy donc je veux bien que tu me réécrive quelques trucs parceque sinon, je ne vois pas comment faire pour apprendre ;-) .
Pour l'aspect graphique : content que ça te plaise :).
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 12 juil. 2006 à 14:33
Ba de rien, si tu veux j'peux te réecrire mes améliorations et te les filer.
Pour ce qui est de "WININET" j'avais fait plusieurs sources à ce sujet ; çà te permet via l'API windows et en quelques fonctions d'avoir accès à un serveur FTP puis downloader ou uploader ce que tu veux dessus.C'est quand meme plus leger que les X composants Indy compilé avec l'appli.
PS : Sinon graphiquement çà l'air très évolué, bravo.
Aller continue comme çà, et bonne mise à jour ... ;-)
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 12 juil. 2006 à 14:24
Merci pour ton commentaire Elguevel. POur les uses, bein à partir du moment ou tu mets un composant Indy, tu as toute une ribembelle d'unités qui se rajoutes :( .
Je vais revoir le code. Encore Merci ;-)
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 12 juil. 2006 à 12:51
Je trouve que çà fait bcp, je pense que l'on peux améliorer :-)
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 12 juil. 2006 à 12:45
Bon programme.
Par contre quelques améliorations :
- Tu peux déclarer ta fonction externe en 1 seule ligne de cette façon :
function InternetGetConnectedState(lpdwFlags: LPDWORD;dwReserved: DWORD): BOOL; stdcall; external 'wininet.dll' name 'InternetGetConnectedState';
- Tu fait appel à une fonction de l'API windows "InternetGetConnectedState" de la librairie "wininet.dll". Dans ce cas j'aurai programmé l'application avec cette librairie, celà aurai pu t'eviter l'utilisation de Indy (mais çà c'est juste si tu veux eviter d'utiliser des composants).
- Et je ne voit pas de méthode "Free" correspondant à tes différentes instanciations de classes ( "Fil:=TMemoryStream.Create", "Ini := Tinifile.Create", et d'autres ... )
- "Form1.Label1.Caption:=..." => tu est dans ton objet Form1 donc tu peux n'ecrire que "Label1.Caption=..." (tu as fait çà sur d'autres lignes)
- Si tu veux tu peux évité d'associer une variable objet à une instanciation.
Tu fais :
Registre := TRegistry.Create;
With Registre Do
Try
...
Mais tu peux faire directement :
With TRegistry.Create Do
Begin
Try
...
Finally
Free;
End;
End;
Voila grossièrement ce que je viens de voir au niveau code, sinon j'ai pas Indy sur ma version de delphi je peux donc pas l'executer.
@+, Bon Code ;-)
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 12 juil. 2006 à 12:17
Si vous avez des commentaires, des questions, n'hésitez pas !
3 déc. 2006 à 14:11
Merci pour ton astuce.
@+
Matt
2 déc. 2006 à 20:19
Bon vis à vis pour connaitre la taille de la barre des tâches moi je fais comme ceci :
Form1.Top := GetSystemMetrics(SM_CYFULLSCREEN) - Height + 20;
Form1.Left := GetSystemMetrics(SM_CXSCREEN) - Width;
Le (+20) ça sert à toucher pile poil la barre des tâches ensuite on est libre de faire comme on veut :)
@+ !
25 juil. 2006 à 13:13
25 juil. 2006 à 11:21
25 juil. 2006 à 11:09
25 juil. 2006 à 09:59
25 juil. 2006 à 09:57
Cela n'enlève rien à l'intérêt du source ! ^^
D'ailleur, je l'ai ré-implémenté en partie dans une de mes appli... donc Merci !
25 juil. 2006 à 09:51
Je ne vais pas tarder à poster la mise à jour, il y a encore quelques petits réglages (et après une version sans compos).
@+
Matt
24 juil. 2006 à 10:11
seul bémol pour moi la fonction : Detection_Connexion.
Si tu es derrière un rooteur ADSL, il te renvoit que tu es connecté même si ton routeur est "disconnect". Il renvoit "connecté" car le lien LAN entre ta machine et le rooteur est bon mais ce n'est pas pour autant que tu as une connexion internet...
perso derrière cette fonction moi je fais 1 ping de vérif (1 sur google.fr et s'il marche pas 1 sur yahoo.fr) normalement y'a forcément un des deux qui marche et qui te garanti ta connexion internet...
19 juil. 2006 à 09:45
19 juil. 2006 à 09:18
Form1.Top:=(Screen.DesktopHeight-Form1.Height) - 30;
Mais moi ma Barre des tâches utilise 2 lignes, donc j'aimerais savori s'il n'éxistait pas un moyen pour connaitre la taille de la Barre des tâches ?
19 juil. 2006 à 09:16
Cela pourra servir pourra servir pour mes prochaines applications, merci à toi, qui plus est le design est agréable.
Merci beaucoup
13 juil. 2006 à 17:25
"Je vais rajouter une messageBox : "Une mise à jour est disponible, voulez-vous la télécharger + taille du soft"."
là c'est parfait ;) j'ai mis 9/10 car c'est du bon boulot
13 juil. 2006 à 15:14
13 juil. 2006 à 12:22
13 juil. 2006 à 12:12
13 juil. 2006 à 11:21
13 juil. 2006 à 09:37
@ Shining : c'est grace au lien que tu donnes juste au dessus que j'ai commencé la programmation Internet.
Je vais rajouter une messageBox : "Une mise à jour est disponible, voulez-vous la télécharger + taille du soft".
@ John : Il est vrai que la BdR devient de plus en plus lourde à cause des désinstallateurs qui virent mal les valeurs mais la comme je me sers des valeurs enregistrés pour mon écran de veille qui sont dans la BdR... Mais après, en modifiant un tout petit peu le code, vous pouvez utiliser un INI.
Encore merci pour vos commentaires :) Je vais faire une MaJ avec tout ce que vous m'avez dit ;-)
@+
Matt
13 juil. 2006 à 01:22
Le design est sympas.
En ce qui concerne Indy : evidemment dans les uses tu as une ribambelle d'unités. qu'indy incruste Du reste, je me demande si elles sont toutes utiles.
La technique proposée par Elguevel est valable. Maintenant c'est un choix : s'allourdir de quelques octets pour un code simple ou se casser la tete pour gagner quelques octets. Sinon une technique sans utiliser de composants, consiste à faire appel au Shell via Delphi ( valable aussi pour les mails).
Je te mets 9/10 : c'est bien coder et je trouve que c'est sympas de proposer une méthode pour réaliser une mise à jour d'un soft. Je te félicite
@+
12 juil. 2006 à 20:11
12 juil. 2006 à 19:57
http://www.swissdelphicenter.ch/torry/showcode.php?id=889,
mais là ton updateur ne permet pas à l'utilisateur de choisir se qu'il veut télécharger c'est un peu gênant, car imagine que tu as une mise à jour de 25Mo et qu'il est en modem classique 56k.., et le pire il est impossible d'annuler le téléchargement mdr ^^ tu ne serais pas de la famille de microsoft par hazard ?
12 juil. 2006 à 18:06
Sinon, j'ai une question plus généraliste : pourquoi tu utilises la BDR ?
On sait tous que cette BDR s'encrasse au fil du temps, surtout quand les devs l'utilisent mal (ce qui est très souvent le cas), des clés sont crées et les désinstalleurs font très mal leur travail. Résultats on se retrouve avec des clés orphelines qui poluent le système.
Alors qu'avec un simple fichier de config dans le dossier d'installation de l'executable serait tellement plus simple : tu effaces le dossier (plus besoin du programme) = tu effaces tout ce qui avaient rapport à l'executable. Je trouve ça nettement plus propre et simple comme méthode ...
C'est pas vraiment dirigé contre ton code en particulier, c'est une constatation générale :).
Pour le reste ton code me plait bien, je te mets 8/10 ;)
12 juil. 2006 à 15:59
Pour l'aspect graphique : content que ça te plaise :).
12 juil. 2006 à 14:33
Pour ce qui est de "WININET" j'avais fait plusieurs sources à ce sujet ; çà te permet via l'API windows et en quelques fonctions d'avoir accès à un serveur FTP puis downloader ou uploader ce que tu veux dessus.C'est quand meme plus leger que les X composants Indy compilé avec l'appli.
PS : Sinon graphiquement çà l'air très évolué, bravo.
Aller continue comme çà, et bonne mise à jour ... ;-)
12 juil. 2006 à 14:24
Je vais revoir le code. Encore Merci ;-)
12 juil. 2006 à 12:51
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, OleCtrls, SHDocVw, XPMan, ComCtrls, Shellapi,
IdIntercept, IdLogBase, IdLogStream, DateUtils, IdAntiFreezeBase,
IdAntiFreeze, jpeg, ExtCtrls, Registry, Inifiles;
Je trouve que çà fait bcp, je pense que l'on peux améliorer :-)
12 juil. 2006 à 12:45
Par contre quelques améliorations :
- Tu peux déclarer ta fonction externe en 1 seule ligne de cette façon :
function InternetGetConnectedState(lpdwFlags: LPDWORD;dwReserved: DWORD): BOOL; stdcall; external 'wininet.dll' name 'InternetGetConnectedState';
- Tu fait appel à une fonction de l'API windows "InternetGetConnectedState" de la librairie "wininet.dll". Dans ce cas j'aurai programmé l'application avec cette librairie, celà aurai pu t'eviter l'utilisation de Indy (mais çà c'est juste si tu veux eviter d'utiliser des composants).
- Et je ne voit pas de méthode "Free" correspondant à tes différentes instanciations de classes ( "Fil:=TMemoryStream.Create", "Ini := Tinifile.Create", et d'autres ... )
- "Form1.Label1.Caption:=..." => tu est dans ton objet Form1 donc tu peux n'ecrire que "Label1.Caption=..." (tu as fait çà sur d'autres lignes)
- Si tu veux tu peux évité d'associer une variable objet à une instanciation.
Tu fais :
Registre := TRegistry.Create;
With Registre Do
Try
...
Mais tu peux faire directement :
With TRegistry.Create Do
Begin
Try
...
Finally
Free;
End;
End;
Voila grossièrement ce que je viens de voir au niveau code, sinon j'ai pas Indy sur ma version de delphi je peux donc pas l'executer.
@+, Bon Code ;-)
12 juil. 2006 à 12:17