Probleme de Connection RAS

Résolu
cs_rebelmind Messages postés 6 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 4 août 2005 - 1 août 2005 à 13:20
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 - 13 févr. 2009 à 16:56
Bonjour tout le monde.

J'essaye depuis plusieurs jours d'implementer dans un prog C# l'utilisation des connexions modem!
en vain... je voudrais simplement à partir d'un numero de telephone FAI et d'un login et mot de passe
me connecter

j'ai essayer d'utiliser l'API rasapi32.dll :


[
DllImport(
"rasapi32.dll")]



public
extern
static
long RasDial(
long lpRasDialExtensions,
string lpszPhonebook,
RasDialParams lpRasDialParams,
long dwNotifierType,
object lpvNotifier,
long lphRasConn);



public
struct
RasDialParams
{

public
int dwSize;

public
string szEntryName;

public
string szPhoneNumber;

public
string szCallbackNumber;

public
string szUserName;

public
string szPassword;

public
string szDomain;

}



public
long Dial(
string Connection,
string Username,
string Password)
{

RasDialParams RDP =
new
RasDialParams();

long Resp;
RDP.dwSize =
Marshal.SizeOf(
typeof(
RasDialParams));
RDP.szEntryName = Connection
;

RDP.szPhoneNumber =
"0860880880";

RDP.szCallbackNumber =
"";

RDP.szUserName = Username;

RDP.szPassword = Password;

RDP.szDomain =
"";


Resp = RasDial(0,
null, RDP, 0L, 0, 0);



return Resp;


}

rien ne fonctionne!
la variable Resp != 0 et je n'arrive pas à traduire l'erreur renvoyée.

Merci d'avance pour votre aide.

30 réponses

cs_nadjim Messages postés 24 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 29 avril 2010
5 janv. 2006 à 21:43
Oui désolé, j'ai Windows XP

nadj
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 janv. 2006 à 22:20
Ah oui mais attend : tu as définit le point d'entrée sur quelle version RasEnumEntriesW ou RasEnumEntriesA ?
L'un est Unicode, l'autre Ansi, et la structure doit suivre le mouvement.

/*
coq
MVP Visual C#
*/
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 janv. 2006 à 22:22
En gros :

[DllImport("rasapi32.dll", SetLastError= true, EntryPoint="RasEnumEntriesW")]
private static extern uint RasEnumEntries(
[In]IntPtr reserved,
[In]IntPtr lpszPhonebook,
[In,Out]RASENTRYNAME[] lprasentryname,
[In,Out]ref int lpcb,
[Out]out int lpcEntries
);


[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
private struct RASENTRYNAME
{
public int dwSize;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=256 + 1)]
public string szEntryName;
public int dwFlags;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=260 + 1)]
public string szPhonebookPath;
}

OU

[DllImport("rasapi32.dll", SetLastError =true, EntryPoint="RasEnumEntriesA")]
private static extern uint RasEnumEntries(
[In]IntPtr reserved,
[In]IntPtr lpszPhonebook,
[In,Out]RASENTRYNAME[] lprasentryname,
[In,Out]ref int lpcb,
[Out]out int lpcEntries
);


[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
private struct RASENTRYNAME
{
public int dwSize;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=256 + 1)]
public string szEntryName;
public int dwFlags;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=260 + 1)]
public string szPhonebookPath;
}

Dans ton cas je pense qu'il est préférable de miser sur la version Unicode.

/*
coq
MVP Visual C#
*/
0
cs_nadjim Messages postés 24 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 29 avril 2010
6 janv. 2006 à 00:11
Merci mon ami ça venais bien de ça, j'ai pris la version unicode et tout fonctionne bien ;)

nadj
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 janv. 2006 à 19:30
Coq pourquoi n'as tu pas utilisé aussi le champ CharSet avec DllImport !?
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 janv. 2006 à 19:38
Euh, parce que je n'y ai pas penser
En fait j'ai pris l'habitude de définir directement la version utilisée via EntryPoint

/*
coq
MVP Visual C#
*/
0
remilinabil Messages postés 1 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 11 octobre 2006
11 oct. 2006 à 12:33
Est il pssible d'avor le code en c# afin de se connecter au GPRS ....svp ?
0
gerbito Messages postés 39 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 20 octobre 2015
30 mai 2008 à 10:52
Bonjour,

J'ai moi aussi quelques soucis avec l'API Ras. 

   En effet, j'ai quelques fois des déconnexions brutales de l'API Ras accompagnées de :

->Exception dans le Socket qui utilise la connexion Ras (commentée : "Impossible de lire des données de la connexion de transport, la connexion a été fermée par l'hôte distant").

->Exception sévère dans svchost commentée : "L'instruction à l'adresse 0x77c43dbd référence l'adresse 0x90909090, la mémoire ne peut pas être écrite", apparment dûe à l'utilisation d'un pointeur détruit  (j'avais déjà mis un message pour ce souci dans la catégorie processus-svchost).

   Quelqu'un connaîtrait-il les raisons possibles d'une déconnexion brutale, ainsi que la durée d'utilisation des handles passés à l'API ?

Merci.
0
gerbito Messages postés 39 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 20 octobre 2015
30 mai 2008 à 10:56
Re-Bonjour,

J'ai oublié quelques précisions sur ce que je fais :

Je développe une appli en C# qui reçoit des données d'un serveur auquel elle est connectéee via un modem GPRS et une connexion l'utilisant configurée dans le panneau de configuration et ouverte par mon appli via l'API Ras.
0
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 2
13 févr. 2009 à 16:56
Bonjour , je souhaiterais egalement utiliser rasdial pour me connecter a distance a d'autres ordinateurs ...
par contre puis ensuite acceder a une bd ou faire des manips sur des fichiers
mais je ne sais pas du tou comment faire ...
avez vous trouvé ?
tout ce que je sais faire c'est ce que vous avez fait ...(par c#)
sous commande dos j'arrive a connecter et deconnecter  ... mais ca s'arrete la ...
COmment faire ?

Help please
0
Rejoignez-nous