couleur=getpixel(getDC(0),x, y)
Je dois faire comment alors??
tonhdc = GetDc(0) ' et ton traitement ici (exemple): For x = 1 to la_largeur_de_tonhdc For y = 1 to la_hauteur_de_tonhdc couleur=getpixel(tonhdc,x, y) '... et tu traites sur ces couleurs, selon ce que tu veux traiter '... Next Next ' ça y est ? tu en a fini avec ce tonhdc ? ===>> delete tonhdc
et un ecran noir apparait
un programme qui enregistre des nombre sur un site internet en continu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionle programme analyse juste les chiffre suivant jusqu'en bas de la page, puis change de page
J'ai fait le petit test avec la musique, et en fait, le son fonctionne toujours quand le pc plante, dois-je en déduire que c'est un problème de carte graphique??
D'ailleurs je ne sais pas quelle carte j'ai
ah et j'aurais du préciser qu'il s'agit d'un portable
il faut que la page internet ait constamment le focus, et que le pc ne soit pas en veille, pour ça, c'est simple, le programme fait bouger et cliquer la souri pour changer d e page en moyenne toute les deux minutes, ainsi le programme peut travailler constamment
A mon avis c'est plus un problème de code.
d'ailleurs je ne sais pas quelle carte j'ai, c'est un vieux pc hp qui a 4 ans
j'avais faite beaucoup plus haut :
Au fait ===>> une question que j'ai oublié de poser :
Quelle carte graphique as-tu ? ===>> si nvidia (au hasard et très "innocemment" ): quelle série ?
Dim xlsapp As excel.Application 'lancement d'excel Dim Xlsbook As excel.Workbook Set xlsapp = New excel.Application Set Xlsbook = xlsapp.Workbooks.Open("C:\Users\florent\Documents\visual.xlsx") virgule = 0 nombre = 0 For a = 1 To 20 'recopie le fichier excel dans une matrice, plus rapide For b = 1 To 40 matexcel(b, a) = Cells(b, a) Next Next excel.Application.Quit 'LA HAUTEUR D'ANALYSE DOIT ETRE FAITE SUR LA MOYENNE HAUTE SUPERIEURE DES CHIFFRES 'les chiffres font généralement une dizaine de pixel de hauteur, 5 à 9 en largeur modevirgule = 1 '1 si prise en compte des virgules activées, 0 sinon ab = 20 'borne de balayage gauche abc = 58 'borne d ebalayage droite again: c = 17 'hauteur d'analyse 'procédure de reperage des chiffres For a = ab To abc 'balaye sur toute la largeur couleur = GetPixel(Form1.hdc, a, c - 1) couleur1 = GetPixel(Form1.hdc, a, c) 'analyse de largeur 3, pour éviter de passer à travers les pixel couleur2 = GetPixel(Form1.hdc, a, c + 1) rouge = Int(couleur Mod 256) 'extraction de la valeur rouge vert = Int((couleur - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then GoTo suite 'si la ligne haute de l'analyse trouve un pixel noir, alors goto suite rouge = Int(couleur1 Mod 256) 'extraction de la valeur rouge vert = Int((couleur1 - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur1 - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then GoTo suite 'si la ligne centrale de l'analyse trouve un pixel noir, alors goto suite rouge = Int(couleur2 Mod 256) 'extraction de la valeur rouge vert = Int((couleur2 - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur2 - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then GoTo suite 'si la ligne basse de l'analyse trouve un pixel noir, alors goto suite Next GoTo fini 'si il n'y avait pas de chiffre sur la ligne d'analyse, on se dirige directement vers la procédure finale suite: 'suite de l'analyse si un chiffre a été trouvé 'délimitation du chiffre par encadrement d = 0 Do e = 0 d = d + 1 For b = c - 4 To c + 7 'parcours vertical, l'etendue doit être modifiée selon la taille des chiffres couleur = GetPixel(Form1.hdc, a - d, b) 'cherche la présence ou non de pixel, pour l'encadrement rouge = Int(couleur Mod 256) 'extraction de la valeur rouge vert = Int((couleur - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then e = e + 1 Next Loop Until e 0 Or d -8 'tolère jusqu'à 8 pixel à gauche du premier point d'analyse vectcadre(1) = a - d + 1 'définit la borne gauche du cadre d = 0 Do e = 0 d = d + 1 For b = c - 4 To c + 7 'parcours vertical, l'etendue doit être modifiée selon la taille des chiffres couleur = GetPixel(Form1.hdc, a + d, b) 'cherche la présence ou non de pixel, pour l'encadrement rouge = Int(couleur Mod 256) 'extraction de la valeur rouge vert = Int((couleur - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then e = e + 1 Next Loop Until e 0 Or a - vectcadre(1) + d 10 'accepte jusqu') 10 pixel à droite de la borne gauche vectcadre(2) = a + d - 1 'définit la borne droite du cadre d = 0 Do e = 0 d = d + 1 For b = vectcadre(1) To vectcadre(2) 'parcours horizontalement, selon les limite gauche et droites du cadre couleur = GetPixel(Form1.hdc, b, c - d) 'cherche la présence ou non de pixel, pour l'encadrement rouge = Int(couleur Mod 256) 'extraction de la valeur rouge vert = Int((couleur - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then e = e + 1 Next Loop Until e 0 Or d 6 'tolère jusqu'à 4 pixel en haut du point de hauteur d'analyse vectcadre(3) = c - d + 1 'définit la borne haute du cadre d = 0 Do e = 0 d = d + 1 For b = vectcadre(1) To vectcadre(2) 'parcours horizontalement, selon les limite gauche et droites du cadre couleur = GetPixel(Form1.hdc, b, c + d) 'cherche la présence ou non de pixel, pour l'encadrement rouge = Int(couleur Mod 256) 'extraction de la valeur rouge vert = Int((couleur - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then e = e + 1 Next Loop Until e 0 Or c - vectcadre(3) + d 10 'tolère jusqu'à 10 pixel en bas de la limite haute du cadre vectcadre(4) = c + d - 1 'définit la borne haute du cadre 'enregistrement des pixel dans la matrice For b = vectcadre(1) To vectcadre(2) For d = vectcadre(3) To vectcadre(4) couleur = GetPixel(Form1.hdc, b, d) rouge = Int(couleur Mod 256) 'extraction de la valeur rouge vert = Int((couleur - rouge) / 256 Mod 256) 'extraction de la valeur verte bleu = Int((couleur - rouge) / 256 / 256) 'extraction de la valeur bleue If rouge + vert + bleu < 300 Then nbpoint = nbpoint + 1 'nombre de pixels matcoord(1, nbpoint) = b matcoord(2, nbpoint) = d End If Next Next 'trace le cadre For b = vectcadre(1) To vectcadre(2) SetPixel Form1.hdc, b, vectcadre(3), black Next For b = vectcadre(1) To vectcadre(2) SetPixel Form1.hdc, b, vectcadre(4), black Next For b = vectcadre(3) To vectcadre(4) SetPixel Form1.hdc, vectcadre(1), b, black Next For b = vectcadre(3) To vectcadre(4) SetPixel Form1.hdc, vectcadre(2), b, black Next 'transformation en coordonée relative au bord gauche du cadre For b = 1 To nbpoint matcoord(1, b) = matcoord(1, b) - vectcadre(1) matcoord(2, b) = matcoord(2, b) - vectcadre(3) Next 'on cherche le chiffre le plus proche de la base de données 'ATTENTION, CA NE MARCHE QU'AVEC DES FIGURES RIGOUREUSEMENT IDENTIQUES For a = 1 To 10 If nbpoint > matexcel(1, a * 2 - 1) Then b = matexcel(1, a * 2 - 1) 'cherche si il ya moins de pixel dans le chiffre observé ou le chiffre comparé If nbpoint < matexcel(1, a * 2 - 1) Then b = nbpoint If nbpoint matexcel(1, a * 2 - 1) Then b nbpoint For c = 1 To b 'on compare tous les pixel du premier au dernier 'calcul de la distance avec pythagore d = Sqr((matcoord(1, c) - matexcel(c + 1, a * 2 - 1)) ^ 2 + (matcoord(2, c) - matexcel(c + 1, a * 2)) ^ 2) vectdist(a) = vectdist(a) + d Next vectdist(a) = vectdist(a) / b Next b = 10 'b est considéré ici comme le plus petit For a = 1 To 10 'on cherche dans la vecteur quelle est la plus petite distance, qui correspondra au bon chiffre If vectdist(a) < b Then b = vectdist(a) c = matexcel(1, a * 2) End If Next 'procédure de réinitialisation pour obtenir les chiffres suivant du nombre nombre = nombre + 1 vectnombre(nombre) = c ab = vectcadre(2) + 1 For a = 1 To 10 vectdist(a) = 0 Next If nombre > 1 And vectcadre(1) - distvirgule > 3 Then 'si il ya a un ecart d eplus d edeux pixel entre les chiffres, on estime qu'il y a une virgule virgule = nombre - 1 'on place la virgule juste après le précédent nombre End If distvirgule = vectcadre(2) 'enregistre le bord droit du cadre, pour pouvoir le comparer au bord gauche du prochain chiffre For a = 1 To 4 vectcadre(a) = 0 Next For a = 1 To 4 For b = 1 To 200000 matcoord(a, b) = 0 Next Next a = 0 b = 0 d = 0 e = 0 nbpoint = 0 GoTo again 'revient au point de départ 'procédure finale, transforme les différents chiffres en nombre fini: d = 0 'initialisation du nombre final If nombre > 0 Then For a = 1 To nombre d = d + vectnombre(a) * 10 ^ (nombre - a) Next Else d = "pas de nombre" End If If modevirgule = 1 And virgule > 0 Then d = d / (10 ^ (nombre - virgule)) End If
je suis en train de concevoir un programme qui enregistre des nombre sur un site internet en continu (par reconnaissance graphique avec la fonction getpixel)
alors, effectivement, pour fonctionner, il faut que la page internet ait constamment le focus, et que le pc ne soit pas en veille, pour ça, c'est simple,le programme fait bouger et cliquer la souri pour changer d epage en moyenne toute les deux minutes