1 pièce(s) jointe(s)
ReadProcessMemory and Unicode
Bonjour,
J'ai un petit problème et j'espère que quelqu'un pourra m'aider.
J'ai un programme qui lit la mémoire d'un autre process pour aller chercher une liste de nom. Le problème que j'ai est avec les accents français.
Si la string ne contient pas d'accent je la lit sans problème, mais s'il y a un accent dans le string j'ai deux caractères bizarre à la place de l'accent.
Ex:
Voir le petit fichier gif.
J'ai essayer de faire un StrConv(..., vbFromUnicode) mais cela ne fonctionne pas, ma string est rempli de ?
Merci pour votre aide.
Voici ma fonction pour lire une string.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Public Function ReadString(lStartAddress As Long, lEndAddress As Long) As String
Dim lBytesRead As Long
Dim sData As String
Dim lLength As Long
Dim lLastErr As Long
On Error GoTo ReadString_Error
lLength = lEndAddress - lStartAddress
If lLength > 20000 Or lLength < 1 Then Exit Function
sData = Space(lLength)
If g_lhProcess <> 0 Then
If ReadProcessMemory(g_lhProcess, lStartAddress, ByVal sData, lLength, lBytesRead) Then
ReadString = sData
Else
lLastErr = Err.LastDllError
Err.Raise lLastErr, , ApiErrorText(lLastErr)
End If
End If
On Error GoTo 0
Exit Function
ReadString_Error:
RaiseError Err, "Function modUtil.ReadString"
End Function |