begin process at 2010 02 10 01:22:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

API

 > 

Probleme de Connection RAS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de Connection RAS

lundi 1 août 2005 à 13:20:24 | Probleme de Connection RAS

rebelmind

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.

lundi 1 août 2005 à 13:49:48 | Re : Probleme de Connection RAS

Lutinore

Administrateur CodeS-SourceS
Salut, pour passer une structure null il faut utiliser IntPtr.Zero et pour simuler un pointeur sur une stucture c'est ref myStruct.
lundi 1 août 2005 à 14:02:31 | Re : Probleme de Connection RAS

rebelmind

Merci pour la rapidité de reponse.
je debute sous DOT NET

tu pourrais illustrer ta solution

merci beaucoup
lundi 1 août 2005 à 15:19:00 | Re : Probleme de Connection RAS

Lutinore

Administrateur CodeS-SourceS

Tu dois aussi marshaler les chaines de ta structure, pour utiliser une fonction non managée il faut bien comprendre PInvoke sinon tu t'exposes à des problèmes, voir des pertes de mémoire, si tu es débutant en C# c'est pas vraiment une bonne idée de commencer par ca : )


[ Lien ]

Il y'a peut être une API managée qui fait la même chose !?

lundi 1 août 2005 à 15:52:38 | Re : Probleme de Connection RAS

rebelmind

Je n'ai pas le choix, ce projet repond a un besoin de ma societe.
je l'ai proposé en C# pour me former à ce langage!

le but est de stocker les infos des connections clients dans un fichier, les appeller quand on veut les utiliser, realiser une connection RAS classique (tel, login, mdp) et venir modifier la table de routage une fois connecté pour dissocier la connection Modem (VPN) et l'ADSL (pour internet).

j'essaye la solution proposée :
[ Lien ] 
et te dit quoi...

merci encore



lundi 1 août 2005 à 16:10:13 | Re : Probleme de Connection RAS

Bidou

Administrateur CodeS-SourceS
Cool le site [ Lien ], ça vaut la peine de le mettre dans les favorites !
Merci



[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
lundi 1 août 2005 à 16:23:05 | Re : Probleme de Connection RAS

Lutinore

Administrateur CodeS-SourceS
Bidou, j'ai dit la même chose la première fois que je suis tombé dessus ! : )

RebelMind, vi mais c'est quand même dommage de bosser sur un projet en .NET et  d'utiliser pratiquement que des fonctions non managées, tu perds le bénéfice du code managé, bon courage, si y'a un truc que tu ne comprends pas avec PInvoke, on est là..
lundi 1 août 2005 à 16:49:38 | Re : Probleme de Connection RAS

rebelmind

je sais, mais c'est une facon de se familiariser avec le code C# :)
et je pense bien realiser d'autres projets dans le futur...

pour en revenir a mon projet present, voici ma class RAS.cs :

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Windows.Forms;

namespace ConnClientsV2
{
public class RAS
{

[DllImport("rasapi32.dll", CharSet = CharSet.Auto)]
static extern uint RasDial([In]RASDIALEXTENSIONS lpRasDialExtensions, [In]string lpszPhonebook, [In]RASDIALPARAMS lpRasDialParams, uint dwNotifierType, Delegate lpvNotifier, uint lphRasConn);

public enum RasFieldSizeConstants
{
RAS_MaxEntryName = 256,
RAS_MaxPhoneNumber = 128,
RAS_MaxCallbackNumber = RAS_MaxPhoneNumber,
UNLEN = 256,
PWLEN = 256,
DNLEN = 12
}

[StructLayout(LayoutKind.Sequential)]
internal class RASDIALEXTENSIONS
{
public readonly int dwSize = Marshal.SizeOf(typeof(RASDIALEXTENSIONS));
public uint dwfOptions = 0;
public int hwndParent = 0;
public int reserved = 0;
public int reserved1 = 0;
public string RasEapInfo = null;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
internal class RASDIALPARAMS
{
public int dwSize = Marshal.SizeOf(typeof(RASDIALPARAMS));
[
MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RasFieldSizeConstants.RAS_MaxEntryName + 1)]
public string szEntryName = null;
[
MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RasFieldSizeConstants.RAS_MaxPhoneNumber + 1)]
public string szPhoneNumber = null;
[
MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RasFieldSizeConstants.RAS_MaxCallbackNumber + 1)]
public string szCallbackNumber = null;
[
MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RasFieldSizeConstants.UNLEN + 1)]
public string szUserName = null;
[
MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RasFieldSizeConstants.PWLEN + 1)]
public string szPassword = null;
[
MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RasFieldSizeConstants.DNLEN + 1)]
public string szDomain = null;
public int dwSubEntry = 0;
public int dwCallbackId = 0;
}

public RAS()
{

}

public uint Dial(string Connection, string Username, string Password)
{
RASDIALPARAMS RDP = new RASDIALPARAMS();
uint 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(
IntPtr.Zero, null, RDP, 0U, null,0);

return Resp;

}}}

La connection ne se fait toujours pas! et la variable Resp me renvoie le code 87 ( normalement c'est 0 si la connection se fait)

Je crois que je vais passer le message dans la section "Au Secours!" :)

je desespere ...(j'ai jusqu'a la fin de semaine pour realiser la beta 1 et je suis loin d'avoir terminé)

lundi 1 août 2005 à 17:24:35 | Re : Probleme de Connection RAS

Lutinore

Administrateur CodeS-SourceS
Là au moins ca ressemble à du PInvoke, rien à voir avec le premier code : )

C'est quoi ce code d'erreur !!?

Essaye de remplacer les chaines null par String.Empty;
lundi 1 août 2005 à 17:44:52 | Re : Probleme de Connection RAS

Lutinore

Administrateur CodeS-SourceS
Nan, je pensais que la fonction attendait une chaine vide mais ce n'est pas ca. Je connais pas cette API donc je peux pas te dire si tu passes les bons paramètres, mais apparemment je ne vois pas de problème avec PInvoke.

1 2 3 4

Cette discussion est classée dans : public, long, string, rdp, rasdialparams


Répondre à ce message

Sujets en rapport avec ce message

Pb avec mon programme - help... [ par adrien78 ] Voici les sources de mon programme il bug :// project created on 09/11/2002 at 10:51// By Adrien HADJ SALAH// http://www.informatick.com// Pour me rem tester la connexion d'un pda [ par defcoco ] voila mon probleme, je veux tester la connexion gprs de mon pda.apparemment il faut utiliser les fonction RAS mais je n'ai pas trouvé d'exemple en c# string et long [ par aurelie ] J'ai une chaine qui ressort sous la forme suivante : 6,3236371344E+17comment puis-je faire pour la convertir en long ou en entier??Merci d'avance pour caster un string en long [ par seb35 ] Bonjour,J'aimerais savoir s'il est possible de caster un string en long car je lis en C# des cellules d'un fichier excel et qd je recois la valeur d'u serialisation [ par zaka48 ] je voudrai serialiser un objet "etudiant" sous cette forme xxxxxx<DateDe [C#] INI -> XML - Code de gruick ou non ? [ par scoubidou944 ] voici la structure XML à partir du fichier INI :     "Section0">        "Ke Utilisation d'une STRUCTURE en c# [ par cyberice67 ] Hello, j'ai un ch'tit problème : J'suis en c# :Je déclare ca ds ma partie public de ma classe :   public struct MaStructure   {    string Emetteur;  création et utilisation d?une dll (erreur ArgumentOutOfRangeException ) [ par tendence ] Bonjour j´ai réalisé une petite application d´un client mail, dans l´état basique des choses je n´ai implémenté que les fonctionnalité de base décrite Struct??Comment faire? [ par Fildomen ] Salutj'ai tapé ce bout de code:public struct CBoot{public string Message_provenant_du_serveur = "00000";public string fmConnexion_Demande_de_connexion Incomprehensible !!!!! [ par Mimoza222 ] Inexplicable : Vola mon code : public string Color         {             get             {   &


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales