Page 1 sur 1

[..] Comparaison Item List View

Posté : mar. 22 juil. 2014 05:16
par lacnia
Bonsoir tout le monde ! ( Bonjour s'il fait jour )

Alors voilà, j'ai décidé de m'investir sur une sorte de protection pour script autoit, une sorte de systeme de licence ...
En gros mon tool est censé "patcher" des codes sources autoit afin de leur implanter le système de licence pour finalement permettre au l'utilisateur du tool de gérer ses clients (Autoriser, Banir, etc...) et de pouvoir les contacter via un chat afin de pouvoir les aider...

Bon je sais c'est un peu tiré par les cheveux de faire ce genre de tool mais bon, sa peut être utile ...
Bien-sure à l'ouverture de l’exécutable protégé par le système de licence, s'affichera une charte demandant à l'utilisateur s'il est d'accord etc ...

Bref, je suis encor loin de là, ce qui me ralentit / m’empêche d'avancer c'est la GUI encor une fois ! :evil:
Enfin c'est en partit de sa faute xD ...
Alors voila, quand le client ouvre deux fois, par hasard le tool protégé par le système de licence, elle se retrouve deux fois sur la listview du Manager de client ( le programme sur le quelle je travaille et dont je parle depuis 20 lignes xD )

Screen du problème :
► Afficher le texte

J'ai pensé régler le problème en faisant sa :
► Afficher le texte
Puis je me suis rendu compte que mon cerveau était fatigué, très fatigué, je crois même qu'il dormait quand il m'a fait écrire sa ! :oops:

Ce que j'aurais voulu faire c'est quelque chose qui lit les items de la listview, les compare, et si il y en a deux avec le même HWID par exemple, on appelle une fonction qui enverrait une recette TCP qui fermerait l'un des deux programmes en trop du client ... Ainsi, sa ferait beaucoup moins brouillons sur la GUI x)

En gros je voudrais que si un client apparait deux fois ou plus ( faut être fou pour ouvrir un programme + de deux fois xd ) sur la listView, le Licence Manager fasse appelle à une fonction ...

D'ailleurs, je tiens à souligner le fait qu'il y a un autre problème :'( Peut être pire que celui du haut ... Quand il y a plus de deux client et que l'un d'entre eux se déconnecte, il reste sur la listView comme ici :
► Afficher le texte



Merci pour d'avoir lue le problème, en espérant qu'une âme charitable viendrait à ma rescousse ! :shock:
PS : Je pense enlever le column : Computer Name ... Un peu trop personnel à mon gout !
PS2 :Le titre ne correspond pas tellement au problème, si vous avez une suggestion de titre je suis preneur !

Re: [..] Comparaison Item List View

Posté : mar. 22 juil. 2014 09:08
par TommyDDR
Si vous voulez éviter qu'on lance 2 instances de votre script, utilisez :

Code : Tout sélectionner

_Singleton(xxx)
Sinon, attention aux systèmes de protection avec connexion serveur tcp.
Le jour où votre serveur est down, plus personne ne peut utiliser votre programme (embêtant si on l'a acheté !), après vous me direz, Sony fait la même chose avec le PSN...
Mais ce n'est pas une raison ! ^^

Re: [..] Comparaison Item List View

Posté : mar. 22 juil. 2014 09:18
par jguinch
Je pense que le problème vient de là :
$a = ControlListView('',"",$idListview,"GetItemCount") - 1

Tu devrais spécifier le handle de ta GUI (retourné par GUICreate) dans le premier paramètre.
Sinon, tu peux aussi utiliser _GUICtrlListView_GetItemCount...

Re: [..] Comparaison Item List View

Posté : mar. 22 juil. 2014 15:04
par lacnia
TommyDDR a écrit : Le jour où votre serveur est down, plus personne ne peut utiliser votre programme (embêtant si on l'a acheté !), après vous me direz, Sony fait la même chose avec le PSN...
xD J'ai pensé à sa, j'utilise ping pour vérifier si les serveurs ne sont pas offline, s'ils sont offline, le client sera prévenu que le serveur est en cour de maintenance...
Mais sa reste un événement rare car le serveur sera sur un VPS...
Sinon merci pour votre réponse, je ne connaissais pas le "Singleton" !
jguinch a écrit : Tu devrais spécifier le handle de ta GUI (retourné par GUICreate) dans le premier paramètre.
Sinon, tu peux aussi utiliser _GUICtrlListView_GetItemCount...
Le handle de la GUI elle même ou bien celui de la listview ?
_GUICtrlListView_GetItemCount revient à la même chose que la fonction que j'ai utilisé, les deux me retournent les bonnes valeurs.

Re: [..] Comparaison Item List View

Posté : mer. 23 juil. 2014 17:15
par blacksoul305
Bonjour,

je ne sais pas si le problème est toujours d'actualité mais je réponds quand même. Généralement, quand je manie une ListView, chaque item que je créé est associé à un ID, que je stock dans un tableau. Il suffit de faire une boucle de vérification. Lorsqu'il y a un doublon, tu supprimes un item de la listview, et de ton tableau.

Bonne chance !