APi et VB NET

Résolu
COlive Messages postés 91 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 3 décembre 2011 - 21 janv. 2005 à 11:34
zippro4012 Messages postés 216 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 26 février 2006 - 23 janv. 2005 à 20:23
Bonjour,

je cherche le moyen d'utiliser des apis ou bien de les remplcer sous .net

voici le code qui fonctionne parfaitement en vb6 :

Public Function LitRemoteChaine(ByVal Nom_UNC_PC As String, ByVal hKey As Long, ByVal PathKey As String, ByVal ValueName As String) As String
Dim keyhand As Long
Dim RemoteHand As Long
Dim lValueType As Long
Dim lResult As Long
Dim strBuf As String
Dim lDataBufSize As Long
Dim intZeroPos As Integer
r = RegConnectRegistry(Nom_UNC_PC, hKey, RemoteHand)
r = RegOpenKey(RemoteHand, PathKey, keyhand)
lResult = RegQueryValueEx(keyhand, ValueName, 0&, lValueType, ByVal 0&, lDataBufSize) If lValueType REG_SZ Or lValueType REG_EXPAND_SZ Then
strBuf = String(lDataBufSize, " ")
lResult = RegQueryValueEx(keyhand, ValueName, 0&, 0&, ByVal strBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
intZeroPos = InStr(strBuf, Chr$(0))
If intZeroPos > 0 Then
LitRemoteChaine = Left$(strBuf, intZeroPos - 1)
Else
LitRemoteChaine = strBuf
End If
End If
End If
r = RegCloseKey(keyhand)
r = RegCloseKey(RemoteHand)
End Function

La conversion en VB.NET ne fonctionne pas et malgrès plusieurs manipulation dans la déclaration des variables ou bien l'utilisation des fonctions, rien n'y fait.

Cette fonction permet à l'origine de lire une valeur chaine dans une base de registre d'un pc distant.

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
21 janv. 2005 à 17:26
Voici sa déclaration en .NET :

Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" ( _

ByVal lpMachineName As String, _

ByVal hKey As Int32, _

ByRef phkResult As Int32) As Int32


DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
21 janv. 2005 à 11:53
Voir mon programme de visualisation d'API sur ProgOtoP.com (menu
POPAPI) : il te donnera les déclarations des fonctions de l'API Windows
en VB et en VB.NET !

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
0
COlive Messages postés 91 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 3 décembre 2011
21 janv. 2005 à 17:12
Merci, ce programme est très interressant, mais il ne m'aide pas pour la fonction :

RegConnectRegistry

Car c'est celle si qui ne fonctionne plus an .NET.

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
0
zippro4012 Messages postés 216 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 26 février 2006 1
23 janv. 2005 à 20:23
En .NET, il n'y a plus besoin des api pour accéder au registre
On peut utiliser les classes Microsoft.Win32.Registry et Microsoft.Win32.RegistryKey
0