benoithenry
Messages postés14Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention15 octobre 2003 24 sept. 2003 à 14:25
En fait j'écris dans explorer avec WriteProcessMemory a l'interieur de ce code, je suis donc obligé d'utiliser VirtualallocEx pour réserver une zone de mémoire explorer.
Mais ce virtualfreex ne veut pas marcher...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 24 sept. 2003 à 16:23
desole mais moi c'est en C.
Tu peux parfaitement ecrire dans un autre processus en utilisant VirtualAlloc, c'est le 1er param de WriteProcessMemory qui sert a l'indiquer.
BruNews, ciao...
benoithenry
Messages postés14Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention15 octobre 2003 24 sept. 2003 à 17:07
mon programme sert a deplacer des icones sur le bureau en les recherchant par leur nom.
J'ai essayé en utilisant virtualalloc mais ca ne marche pas. Aucune des icones ne bouge.
Merci d'avoir essayé de m'aider mais apres 2 jours que je cherche ca me monte a la tete...
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 12 oct. 2003 à 11:46
salut
bon merci d'avoir reposer le pb mais J'AI TROUVE LA SOLUTION :)))))))
Public Const MEM_RELEASE As Long = &H8000&
Public Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
Public Const SYNCHRONIZE As Long = &H100000
Public Const PROCESS_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
Public Const MEM_COMMIT As Long = &H1000&
Public Const PAGE_READWRITE As Long = &H4&
Public Const MAX_PATH As Long = 255&
Public Const PAGE_EXECUTE_READWRITE = &H40&
Public Const MEM_RESERVE = &H2000&
Public Const PROCESS_VM_OPERATION As Long = &H8&
Public Const PROCESS_VM_READ As Long = &H10&
Public Const PROCESS_VM_WRITE As Long = &H20&
Public Const PROCESS_VM As Long = (PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE)
Public Declare Function VirtualAllocEx Lib "kernel32.dll" (ByVal hProcess As Long, lpAddress As Any, ByRef dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Public Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
la solution etait pourtant simple et fallait y penser :
pour ce ^$ùù$^$ de VB qui travaille avec les entiers signés &h8000 = -32767 et non 32768
alors que &h8000& = 32768
ce qui fait que virtualfreeex renvoie 0 car MEM_RELEASE n'etait pas égal à 32768 (8000h) mais à -32767 (FFFF8001h complement à 2)
a la la sacré VB...
le prb c que suite à une mise à jour ma source n'est plus disponible (il y a un message d'erreur a la place)...