Page 1 sur 1
[..] Problème Image Search sous Vista et 7
Posté : ven. 09 sept. 2011 19:05
par valoou
Bonjour,
Je sais que cette erreur est connue sur le net mais malgrès mes recherches je n'ai pu trouver solution a mon problème.
Voila, j'ai codé quelques scripts sous XP avec la lib Image Search.
Ceux-ci fonctionnent parfaitement sous XP.
Cependant en les essayant sous Vista ou 7, je me retrouve avec le fameux
Error: Subscript used with non-array variable.
Biensur, j'ai refait mes echantillons d'images, sur Vista et 7, en bmp 24 bits comme conseille, j'ai essayé le 32 bit aussi, rien y fait. la lib et le DLL sont bien presents dans mon dossier courant, j'ai vérifié le Dll est bien chargé.
J'ai esayé avec les lib Image search et Image search 2, ainsi qu'avec les DLLs ImageSearchDLL.dll, ImageSearchDLL32.dll et ImageSearchDLL64.dll,
Avec la 32 et la 64 certaines fois le "Subscript used with non-array variable" n'apaprait pas, cependant l'image search ne fonctionne pas.
J'espere que vous pourrez m'apporter votre aide,
Cordialement,
Valentin.
Re: [..] Problème Image Search sous Vista et 7
Posté : sam. 10 sept. 2011 16:38
par RL77LUC
Essaye un IsArray() avant d'utiliser les fonctions relatives aux Arrays, mais ça ne bouclera pas le problème, mais ça permettra au moins au script de s'exécuter. Si tu nous donnait une copie du script, on pourrait plus t'aider

.
Re: [..] Problème Image Search sous Vista et 7
Posté : dim. 11 sept. 2011 17:06
par valoou
Merci pour ta réponse =)
Voila le script, c'est simplissime, je débute dans autoit, voila donc le script:
Code : Tout sélectionner
$x1=0
$y1=0
$result=0
while 1
HotKeySet("e", "searchbin")
HotKeySet("{ESC}", "exitprog")
wend
Func searchbin()
$result = _ImageSearch("plein.bmp",1,$x1,$y1,0)
if $result=1 Then
MouseMove($x1, $y1, 3)
MouseClick("right", $x1, $y1, 1, 100)
sleep(500)
$result = _ImageSearch("vider.bmp",1,$x1,$y1,0)
MouseMove($x1,$y1,3)
MouseClick("left", $x1, $y1, 1, 100)
sleep(500)
$result = _ImageSearch("oui.bmp",1,$x1,$y1,0)
MouseMove($x1,$y1,3)
MouseClick("left", $x1, $y1, 1, 100)
Else
MsgBox(0, "Info", "Bin is not empty")
EndIf
EndFunc
func exitprog()
exit 0
EndFunc
Voila le code, j'espere que c aaidera, effectivement j'ai esayé avec isarray(), mais l'image n'est pas trouvée.
Cordialement,
Valentin.
Re: [..] Problème Image Search sous Vista et 7
Posté : mar. 13 sept. 2011 14:12
par valoou
J'up un peu le sujet, en espérant que quelqu'un puisse m'aider =)
Cordialement,
Valentin.
Re: [..] Problème Image Search sous Vista et 7
Posté : jeu. 15 sept. 2011 09:34
par valoou
Un dernier up avant abandon :/
En espérant que quelqu'un pourra m'aider.
Cordialement,
Valentin.
Re: [..] Problème Image Search sous Vista et 7
Posté : dim. 24 juin 2012 08:21
par Hardcoffee
salut j'en suis au même problème que toi et toujours pas de solution concrète :/
la ligne 40 du script ImageSearch.au3 ne passe pas a cause du array
Re: [..] Problème Image Search sous Vista et 7
Posté : lun. 25 juin 2012 22:44
par Uranium
Apparemment tu veux savoir si la corbeille est pleine ou pas , et la vider si c'est le cas ?
J'ai fait ce code , assez simple , et qui ne passe pas par les _ImagesSearch ..
Code : Tout sélectionner
If DirGetSize('C:\$RECYCLE.BIN\S-1-5-21-2693975053-3505977156-732172129-1000') <> 0 Then
Local $search = FileFindFirstFile('C:\$RECYCLE.BIN\S-1-5-21-2693975053-3505977156-732172129-1000\*.*')
If $search = -1 Then
MsgBox(0, "Error", "Error")
Exit
EndIf
While 1
Local $file = FileFindNextFile($search)
If @error Then ExitLoop
FileDelete('C:\$RECYCLE.BIN\S-1-5-21-2693975053-3505977156-732172129-1000\' & $file)
MsgBox(0, '', $file & " supprimé")
WEnd
FileClose($search)
MsgBox(0, '', 'Corbeille vidée avec succés')
Else
MsgBox(0, '', 'Corbeille vide')
EndIf
En espérant vous avoir aidé
Cordialement ,
Re: [..] Problème Image Search sous Vista et 7
Posté : lun. 25 juin 2012 23:01
par Tlem
Quel est réellement l’intérêt de tester si la corbeille est pleine ou non sachant que si elle est vide, la commande ci-dessous prend à peine 1/2 secondes (et encore) ?
Il est même possible d'utiliser le code ci-dessous (tiré du forum US) qui permet d'autres possibilités :
Code : Tout sélectionner
;======================================================================================
;
; Function Name: _EmptyRecycleBin($flag)
; Description: Use this function to empty the recycle bin.
; Parameter(s): $flag. Normal=0 No Confirmation=1 No Progress UI=2 Nosound=4
; Requirement(s): Include ERecycleBin.au3
; Return Value(s): none.
; Author(s): Matrix112 <ch.krogmann@gmx.de>
;
;======================================================================================
Func _EmptyRecycleBin($flag)
$path = @HomeDrive
DllCall("shell32.dll", "none", "SHEmptyRecycleBinA", "hwnd", 0, "str", $path, "long", $flag)
EndFunc ;==>_EmptyRecycleBin