الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أنشئ اتصال ديال اب واتصل دون معرفة المستخدم كل

مغلق
بدأه essam7 في 14 يوليو 2005 · 22 رد · 2,403 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف أنشئ اتصال ديال اب واتصل دون معرفة المستخدم كلمة المرور؟؟؟

السلام عليكم جميعا...

الرجاء ثم الرجاء مساعدتي في هذه المسألة

أنا أملك حساب انترنت في سوريا على 195 وكما يعلم من في سوريا أن هذا الحساب له كلمة مرور واحدة تستطيع دخول النت من خلاله وكذلك رؤية الحساب الشخصي من ايميلات وبيانات دخول وتغيير كلمة المرور وغيره!!!

لذا أريد أن أعمل بريمج أعطيه لمن أريد له استعمال حسابي للدخول للنت دون يعلم كلمة المرور حتى لا يدخل لحسابي من ايميلات وغيره

الأفكار:

1- عند تشغيل البرنامج ينشئ الحساب ويضع البروكسي ولبورت والاعدادات كاملة واليوزر نيم والباسوورد ويتصل مباشرة (مع العلم أنه لا يضع علامة صح أمام حفظ كلمة المرور) وعند قطع الخط يلغي البرنامج الحساب كاملا واعداداته.

2- انشاء الحساب واعداداته يدويا دون كتابة الباسوورد وعندما يريد المتصل الدخول للنت يشغل البرنامج فتظهر مربع حوار الديال اب فيدخل البرنامج الباسوورد ويتصل .

الحالات السابقة فيها سيئة أن المتصل في كلا الحالتين عندما يصل لمرحلة الكونكتنغ وقبل أن يشبك الخط اذا ضغط الغاء الامر فستعود مربع حوار الاتصال وتكون الباسوورد على شكل نجوم يستطيع اي برنامج معرفتها!!!!!!!

هل من مساااااااااااااعد وله جزيييييييييييل الشكر

على كل أرفقت صورة لبرنامج spy++ ومربع حوار الاتصال فهل من مساعد كيف أكتب في ايدت الباسوورد وكيف الغي الصح في حفظ الباسوورد مع العلم أني استعمل اكس بي

ايميلي هو

e_alzuabi@hotmail.com

الرجاء السرعة ومساعدتي ولو بفكرة وشكرا

#2

يمكن على ما أظن أن يقوم برنامج بالإتصال من دون استخدام مربع الإتصال القياسي , وذلك عن طريق بعض المكونات الموجودة في صفحات InDy من شريط أدوات دلفي ,

وفي هذه الحالة لن يستطيع المستخدة أن يعرف أي تفاصيل عن الإتصال ..

أبحث عن كيفية إجراء إتصال باستخدام indy من دون استخدام مربع الإتصال الإفتراضي

#3

شكرا عزيزي سأبحث لكن ان استطعت افادتي بشيئ حيث أني لا أعلم عن هذا المكون اي شيئ فقط أسمع عنه كثيرا

على كل سأواصل البحث

#4

بصراحة يا شباب اول ما بدأت أبحث عنه هو مكونات اندي التي في دلفي لكن وجدت الكثيييير!!

صراحة لم أعرف من أين أبدأ!!

بعضهم نصحني بـ wininet ما رأيكم؟

معلش يا شباب طولوا بالكم علي....

أنا أنشأت اتصال جديد يدويا وبحثت بالرجستري عنه لكن وجدت بعض القيم في

hkey_users وتحت مفاتيح لا تحفظ مؤلفة من أرقااااام طويلة!!

خليني مبدئيا اجعل البرنامج عند عمله ينشئ الاتصال كاملا وعند الانتهاء يحذفه كاملا

ما رأيكم؟؟

الرجاء المساعدة ولو أول الطريق لأني لا أعرف عن برمجة النت أي شيئ من بورتات وهوست واي بي ....الخ

#5

شو شباب السؤال صعب والا ما في حدا لحدا؟؟؟؟

لا تقولولي دور لأنه لا أعلم أي شيئ عن برمجة النت!!

خليني حس في حدا معي عالخط

#6

لم اتعامل مع هذا النوع من البرامج اخي اسف

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#7

وجدت مجموعة من الاكواد والان سأ مطرك بوابل منها ولكن انا لااجيد برمجة الانترنت انت تستقيد منها بطريقتك

uses
   WinInet;

 // Causes the modem to automatically dial the default Internet connection. 
procedure TForm1.Button1Click(Sender: TObject);
 var
   dwConnectionTypes: DWORD;
 begin
   dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
     INTERNET_CONNECTION_PROXY;
   if not InternetGetConnectedState(@dwConnectionTypes, 0) then
     // not connected 
    if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or
       INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) then
     begin
       // error 
    end;
 end;


 // hangup the default Internet connection. 
procedure TForm1.Button2Click(Sender: TObject);
 var
   dwConnectionTypes: DWORD;
 begin
   dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
     INTERNET_CONNECTION_PROXY;
   if InternetGetConnectedState(@dwConnectionTypes, 0) then
     // connected 
    InternetAutodialHangup(0);
 end;

الثاني كيفية الاتصال بالبروفايدر

  Try to establish RAS connection with specified name. EntryName -
   an entry in default phonebook to be used for dial-up. Notes:
a) This call is synchronous (i.e. will not return until the connection
   is established or failed) and hence, may take some time
   (sometimes tens of seconds).
b) The function uses no dial extension, and uses default phonebook.  }

function RasMakeDialupConnection(const EntryName: string): Boolean;
var
  dwRet: Dword;
  DialParams: TRasDialParams;
  hRas: HRASCONN;
  bPwd: Boolean; // was the password retrieved
begin
  uLastErr := 0; // Prepare dial parameters
  FillChar(DialParams, SizeOf(DialParams), 0);
  DialParams.dwSize := SizeOf(DialParams);
  StrPLCopy(@(DialParams.szEntryName[0]), EntryName,
    SizeOf(DialParams.szEntryName));
  hRas := 0; // must do that before calling RasDial
  // Try to retrieve user name/passowrd.
  // We continue even if RasGetEntryDialParams returns error, because
  // in next call RasDial will just try with empty user name/password
  bPwd := False;
  RasGetEntryDialParams(nil, @DialParams, bPwd);
  // Call RAS API. In this particular case RasDial will not return until
  // the connections is established or failed to establish.
  dwRet := RasDial(nil, nil, // no dial extensions, default phonebook
    @DialParams,
    0, // ignored here
    nil, // do not use callback - the call is synch
    hRas); // receives connection handle
  Result := dwRet = 0; // Connection failed... if not Result then begin
  // In some cases hRas may be non-zero and the connection port
  // is still opened. It is a Windows semi-bug/semi-feature.
  // So I must try to close
  if hRas <> 0 then
    RasHangupConnection(hRas);
  // RasHangup may reset uLastErr, but we need the value // returned from RasDial
  uLastErr := dwRet;
end;
end;

الثالث كيف عمل connect ufv عبر Dail up الافتراضي

uses
  Registry, windows;

// Показать или скрыть диалог dial-up
function DUNDialDefault(Hide: Boolean): Boolean;
var
  Reg: TRegistry;
  TempResult: Boolean;
  name, con: string;
  ASW: Integer;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  if Reg.OpenKey('\RemoteAccess', False) then
  begin
    TempResult := True;
    name := Reg.ReadString('Default');
  end
  else
    tempresult := False;

  Reg.Free;
  if TempResult = True then
  begin
    if Hide = True then
      ASW := SW_HIDE
    else
      ASW := SW_SHOWDEFAULT;

    con := 'rnaui.dll,RnaDial ' + name;
    ShellExecute(0, nil, 'rundll32.exe' , PChar(con), 'C:\windows\', ASW);
  end;
  Result := tempResult;
end;

ملاحظة على الكود الاخير

إذا كنت تستخدم XP او 2000 فضع WinInet في الUses

ثم استخدم الامر

InternetAutoDial (INTERNET_AUTODIAL_FORCE_ONLINE, handle);

الرابع كيف تتصل برقم بالمودم

var
  hCommFile: THandle;

procedure TForm1.Button1Click(Sender: TObject);
var
  PhoneNumber: string;
  CommPort: string;
  NumberWritten: LongInt;
begin
  PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10;
  CommPort := 'COM2';
  {Open the comm port}
  hCommFile := CreateFile(PChar(CommPort),
    GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    0);
  if hCommFile = INVALID_HANDLE_VALUE then
  begin
    ShowMessage('Unable to open ' + CommPort);
    exit;
  end;

  {Dial the phone}
  NumberWritten := 0;
  if WriteFile(hCommFile,
    PChar(PhoneNumber)^,
    Length(PhoneNumber),
    NumberWritten,
    nil) = false then
  begin
    ShowMessage('Unable to write to ' + CommPort);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  {Close the port}
  CloseHandle(hCommFile);
end;

الخامس الاتصال برقم تلفون

function tapiRequestMakeCall(DestAddress, AppName,
   CalledParty, Comment: PChar): Longint; stdcall; external 'TAPI32.DLL';

 procedure TForm1.Button1Click(Sender: TObject);
 var
   PhoneNumber, AppName: array[0..255] of Char;
 begin
   PhoneNumber := '1234567890';
   StrPCopy(AppName, Application.Title);
   tapiRequestMakeCall(PhoneNumber, AppName, '', '');
 end;

السادس : تحديد حالة المودم

procedure TForm1.Button1Click(Sender: TObject);
var
  CommPort : string;
  hCommFile : THandle;
  ModemStat : DWord;
begin
  CommPort := 'COM2';

  {Open the comm port}
  hCommFile := CreateFile(PChar(CommPort), GENERIC_READ, 0, nil,
  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if hCommFile = INVALID_HANDLE_VALUE then
  begin
    ShowMessage('Unable to open '+ CommPort);
    exit;
  end;

  {Get the Modem Status}
  if GetCommModemStatus(hCommFile, ModemStat) <> false then
  begin
    if ModemStat and MS_CTS_ON <> 0 then
      ShowMessage('The CTS (clear-to-send) is on.');
    if ModemStat and MS_DSR_ON <> 0 then
      ShowMessage('The DSR (data-set-ready) is on.');
    if ModemStat and MS_RING_ON <> 0 then
      ShowMessage('The ring indicator is on.');
    if ModemStat and MS_RLSD_ON <> 0 then
      ShowMessage('The RLSD (receive-line-signal-detect) is on.');
  end;

  {Close the comm port}
  CloseHandle(hCommFile);
end;

الاتصال برقم عن طريق المودم

اتصل صوتي

استخدام الTAPI

قبل implementation اكتب

const TAPIERR_CONNECTED = 0;
const TAPIERR_DROPPED = -1;
const TAPIERR_NOREQUESTRECIPIENT = -2;
const TAPIERR_REQUESTQUEUEFULL = -3;
const TAPIERR_INVALDESTADDRESS = -4;
const TAPIERR_INVALWINDOWHANDLE = -5;
const TAPIERR_INVALDEVICECLASS = -6;
const TAPIERR_INVALDEVICEID = -7;
const TAPIERR_DEVICECLASSUNAVAIL = -8;
const TAPIERR_DEVICEIDUNAVAIL = -9;
const TAPIERR_DEVICEINUSE = -10;
const TAPIERR_DESTBUSY = -11;
const TAPIERR_DESTNOANSWER = -12;
const TAPIERR_DESTUNAVAIL = -13;
const TAPIERR_UNKNOWNWINHANDLE = -14;
const TAPIERR_UNKNOWNREQUESTID = -15;
const TAPIERR_REQUESTFAILED = -16;
const TAPIERR_REQUESTCANCELLED = -17;
const TAPIERR_INVALPOINTER = -18;

{tapi size constants}
const TAPIMAXDESTADDRESSSIZE = 80;
const TAPIMAXAPPNAMESIZE = 40;
const TAPIMAXCALLEDPARTYSIZE = 40;
const TAPIMAXCOMMENTSIZE = 80;
const TAPIMAXDEVICECLASSSIZE = 40;
const TAPIMAXDEVICEIDSIZE = 40;

function tapiRequestMakeCallA(DestAddress : PAnsiChar;
AppName : PAnsiChar;
CalledParty : PAnsiChar;
Comment : PAnsiChar) : LongInt;
stdcall; external 'TAPI32.DLL';

function tapiRequestMakeCallW(DestAddress : PWideChar;
AppName : PWideChar;
CalledParty : PWideChar;
Comment : PWideChar) : LongInt;
stdcall; external 'TAPI32.DLL';

function tapiRequestMakeCall(DestAddress : PChar;
AppName : PChar;
CalledParty : PChar;
Comment : PChar) : LongInt;
stdcall; external 'TAPI32.DLL'

ثم

procedure TForm1.Button1Click(Sender: TObject);
var
  DestAddress : string;
  CalledParty : string;
  Comment : string;
begin
  DestAddress := '000-00-00'; {phone number}
  CalledParty := '___Nikolay';
  Comment := 'Calling to ___Nikolay';
  tapiRequestMakeCall(pChar(DestAddress),
  PChar(Application.Title),
  pChar(CalledParty),
  PChar(Comment));
end;

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#8

معرفة الdirectory

uses
   Registry;

 function GetDirectory: string;
 var
   reg : TRegistry;
 begin
   reg := TRegistry.Create;
   try
     reg.RootKey := HKEY_LOCAL_MACHINE;
     reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Special Paths\Cookies',
       False);
     Result := reg.ReadString('Directory');
   finally
     reg.Free;
   end;
 end;


 procedure TForm1.Button1Click(Sender : TObject);
 var
   s : string;
 begin
   S := GetDirectory;
   ShowMessage(GetDirectory);
 end;

تحديد الربط النشط

function CheckRASConnections: string;
const
  MaxEntries = 100;
var
  BufSize: Integer;
  NumEntries: Integer;
  Entries: array[1..MaxEntries] of TRasConn;
begin
  Entries[1].dwSize := SizeOf(TRasConn);
  Bufsize := SizeOf(TRasConn) * MaxEntries;
  RasEnumConnections(@Entries[1], BufSize, NumEntries);
  if numentries > 0 then
    result := strpas(@Entries[1].szEntryName)
  else
    Result := 'Disconnected';
end;

طريقة للإستخدام

ShowMessage(CheckRASConnections);

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#9

نقل اوامر ال AT الى المودم

مثلا رفع السماعة

procedure upmodem;
var
  PhoneCommand: string;
  CommPort: string;
  NumberWritten: cardinal;
begin
  PhoneCommand := 'ath1' + #13 + #10; //Поднять трубку
  CommPort := 'COM1';

  //-------------------Открыть порт как файл}

  hCommFile := CreateFile(PChar(CommPort),
    GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    0);
  if hCommFile = INVALID_HANDLE_VALUE then
  begin
    ShowMessage('Unable to open ' + CommPort);
    exit;
  end;

  //-------------Выполнить команду по средству записи в файл

  NumberWritten := 0;
  if WriteFile(hCommFile,
    PChar(PhoneCommand)^,
    Length(PhoneCommand),
    NumberWritten,
    nil) = false then
  begin
    ShowMessage('Unable to write to ' + CommPort);
  end;
end;

مثال للإستخدام

procedure TForm1.Button1Click(Sender: TObject);
begin
  upmodem;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  CloseHandle(hCommFile); //закрыть файл
end;

قطع اتصال ال DAil up

type
  TRasConn = record
    Size: DWORD;
    Handle: THandle;
    Name: array[0..20] of AnsiChar;
  end;

  TRasEnumConnections = function(var RasConn: TRasConn; var Size: DWORD;
    var Connections: DWORD): DWORD stdcall;
  TRasHangUp = function(Handle: THandle): DWORD stdcall;

function DisconnectDialUp: Boolean;
var
  Lib: HINST;
  RasEnumConnections: TRasEnumConnections;
  RasHangUp: TRasHangUp;
  RasConn: TRasConn;
  Code, Size, Connections: DWORD;
begin
  Result := True;
  try
    Lib := LoadLibrary('rasapi32.dll');
    try
      if Lib = 0 then
        Abort;
      RasEnumConnections := GetProcAddress(Lib, 'RasEnumConnectionsA');
      if not Assigned(@RasEnumConnections) then
        Abort;
      RasHangUp := GetProcAddress(Lib, 'RasHangUpA');
      if not Assigned(@RasHangUp) then
        Abort;
      FillChar(RasConn, SizeOf(RasConn), 0);
      RasConn.Size := SizeOf(RasConn);
      Code := RasEnumConnections(RasConn, Size, Connections);
      if (Connections <> 1) or (Code <> 0) then
        Abort;
      if RasHangUp(RasConn.Handle) <> 0 then
        Abort;
      Sleep(3000);
    finally
      FreeLibrary(Lib);
    end;
  except
    on E: EAbort do
      Result := False;
  else
    raise;
  end;
end;

مثال على الاستخدام

if DisconnectDialUp = true then
 ShowMessage('Disconnected ')
else
  ShowMessage('Can not disconnect')

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#10

هذا الكود للقراءة من المودم

var
  PortSpec : array[0..255] of char;
  PortNo : Word;
  success : Boolean;
  error:integer;
begin
  FillChar(PortSpec,Sizeof(PortSpec),#0);
  StrPCopy(PortSpec,'Com1:19200,n,8,1');
  PortSpec[3]:=Char(Ord(PortSpec[3])+Ord(PortNo));

  if not BuildCommDCB(PortSpec,Mode) then
  begin
    //какая-то ошибка...
    Exit;
  end;

  PortSpec[5]:=#0; { 'Com1:' }

  Mode.Flags:=EV_RXCHAR + EV_EVENT2; { $1001 }

  Com := CreateFile(PortSpec,GENERIC_READ or GENERIC_WRITE,
  0,             { comm устройство открывается с эксклюзивным доступом }
  nil,           { нет security битов }
  OPEN_EXISTING, { comm устройства должны использовать OPEN_EXISTING }
  0,             { not overlapped I/O }
  0              { hTemplate должен быть NULL для comm устройств }
  );

  if Com = INVALID_HANDLE_VALUE then
    Error := GetLastError;
  Success := GetCommState(Com,Mode);

  if not Success then // Обработчик ошибки.
  begin
  end;

  Mode.BaudRate := 19200;
  Mode.ByteSize := 8;
  Mode.Parity := NOPARITY;
  Mode.StopBits := ONESTOPBIT;//нужен был для перезаписи в NT

  Success := SetCommState(Com, Mode);

  if not Success then // Обработчик ошибки.
  begin
  end;
end;

المتغير com من النوع dword

بامكانك تصفية الbuffer للمنفذ com هكذا

PurgeComm(Com, PURGE_RXCLEAR or PURGE_TXCLEAR);

والقراءة منه هكذا

function ReadCh(var Ch: Byte): dword; 
var 
  n: dword; 
begin 
  Readfile(Com, ch, 1, result, nil); 
end;

:wacko: :lol: :wacko:

اتمنى ان اكون قد وفقت في مساعدتك ولو بالقليل

اقتباس
خليني حس في حدا معي عالخط

حسيت ولا لسه ؟

اقتباس
شو شباب السؤال صعب

بالنسبة لي نعم

اقتباس
والا ما في حدا لحدا؟؟؟؟

الله المستعان تحلى بالصبر انت

لم تطلب كود لمشكلة معينة ليسهل البحث

بل طلبت حلا للمشكلة برمتها وهذا صعب

اقتباس
الرجاء المساعدة ولو أول الطريق لأني لا أعرف عن برمجة النت أي شيئ من بورتات وهوست

اصبر قليلا حتى امكن من نبش كنز كلاشنكوف والاربعين خبير

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#11

الأخ رومانوف

شكراً على النشاط والهمه العالية (بارك الله لك في علمك)

عبدالله

20_09_05_04_45_39_1127216739saudi_aC_.gif
#12

لقد كفى الأخ رومانوف ووفى ... و لكن إذا اردت شيئاً جاهزاً فانظر الرابط التالي

/index.ph...1192&hl=dial-up

فهو رائع.. B)

يمكنك من خلال هذا الكمبونينت أن تعطي رقم الهاتف و كلمة السر بكل بساطة ، ولكن أعتقد أن على الشخص الذي سيستخدم بريمجك أن يعرف إتصال انترنيت و يضع البروكسي ، ثم يقوم هذا الكمبونينت من خلال البرنامج بإعطاء رقم التلفون و اسم المستخدم و كلمة السر .

أنا حالياً في طور الاكتشاف فيه ... ربما يمكنه أن ينشئ الاتصال كاملاً ...لا أدري :wacko:

تحياتي :lol:

تم تعديل هذه المشاركة بواسطة Abo Majed في 17 يوليو 2005 في 10:50

#13

شكرا لكل من ساعدني وعلى رأسهم romanof وعلى فكرة أللللللللللللللف مبروك على الاشراف وأرجو أن تكون قد المسؤولية.

بالنسبة لي حصلت على سيديات msdn وتصفحت بشكل سريع كل توابعها (وأنا أتصفحها وقفت عند التابع ////

عفوا حصلت مشكلة في الجهاز لذا سأعيد الاقلاع ثم أكمل

#14

لا شكر على واجب

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#15

اكمل الان

وجدت التابع في الوحدة wininet وهو:

InternetHangUp
Instructs the modem to disconnect from the Internet.

DWORD InternetHangUp(
  DWORD dwConnection,
  DWORD dwReserved
);

Parameters
dwConnection 
[in] Connection number of the connection to be disconnected. 
dwReserved 
[in] Reserved. Must be zero. 
Return Values
Returns ERROR_SUCCESS if successful, or an error value otherwise.
Requirements
Client: Included in Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, and Windows 95.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0.
Version: Requires Internet Explorer 4.0 or later.
Header: Declared in Wininet.h.
Library: Use Wininet.lib.

لكن لم أعرف كيف أحصل على dwConnection

[in] Connection number of the connection to be disconnected

عملت كود به هذه القيمة من 0 حتى 255 ولم يعمل قطع اتصال

اذا الـ msdn ليس بها شرح لهذه القيمة غير ما ذكرت من أين أعرف؟؟؟؟

مع العلم أن التابع

 InternetAutodialHangup()

يقوم بقطع الاتصال لكن فقط للافتراضي فان كنت متصلا من اتصال غير افتراضي لا يقوم بالقطع

فهل أحد يفيدني برقم الاتصال حتى أستعمل التابع الأول؟؟

أنا أكتب الرد بينما أحمل الملف الذي أشار اليه محمد نسمان في http://sourceforge.net/projects/tpapro

لكن الحجم كبير ماشاء الله!!

وعلى كل أشكر Abo Majed على الشارة للرابط جزاه الله خيرا

سؤال ثاني بالنسبة للمكتبة tapi.dll

موجودة باسيستم لكن بالامتداد السابق عندما أضيفها لليوزز في الدلفي لا يتعرف عليها ما الحل للتعامل معها؟؟؟؟

شكرا على مساعدتكم

#16

اخي العزيز

اقرا هذا الرابط

http://www.cryer.co.uk/brian/delphi/wininet.htm

ربما وجدت شيئا

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#17

شكرا جزيلا على الرابط فهو جميل جدا إن شاء الله أجد به الفائدة

#18

الحمدلله

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#19

شكرا لكل من ساعدني

وهذا أسهل حل ولا تحتاج أي مكتبة

http://www.swissdelphicenter.ch/en/showcode.php?id=886

ان لم تحب فتح الرابط انسخ الكود التالي

unit Unit1;

{ This unit shows how you can establish a connection to the internet without any
  user interaction.}
{ Diese Unit zeigt, wie eine Verbindung zum Internet aufgebaut werden kann, ohne
  dass der Benutzer eingreifen muss.}

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    edtEntry: TEdit;  // holds the name of the connection, e.g. 'bluewin'
    edtUser: TEdit;   // the username for the above connection
    edtPass: TEdit;   // and the password
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses shellapi;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var 
  cmd, par, fil, dir: PChar;
begin
  // establish the connection
  // die Verbindung aufbauen
  // rasdial.exe entryname username password
  cmd := 'open';
  fil := 'rasdial.exe';
  par := PChar(edtEntry.Text + ' ' + edtUser.Text + ' ' + edtPass.Text);
  dir := 'C:';
  // call rasdial.exe with Shellexecute
  // rasdial mit Shellexecute aufrufen
  ShellExecute(Self.Handle, cmd, fil, par, dir, SW_SHOWMINNOACTIVE);
end;


procedure TForm1.Button2Click(Sender: TObject);
var 
  cmd, par, fil, dir: PChar;
begin
  // disconnect the connection to the Internet
  // Verbindung zum Internet abbrechen
  cmd := 'open';
  fil := 'rasdial.exe';
  par := PChar(edtEntry.Text + ' /DISCONNECT');
  dir := 'C:';
  ShellExecute(Self.Handle, cmd, fil, par, dir, SW_SHOWMINNOACTIVE);
end;

end.

لكن هذا الكود لا يعمل ما لم تتوفر المكتبة rasdial.dll أي أنه لا يعمل على الميلينيوم

#20

برفوا عليك

اول مرة اجد عضوا يجد الحل ثم يقوم بنشره بارك الله فيك

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#21

جزاك الله خيراً ، فقد استفدت و أفدت. :-)

#22
اقتباس
هذا الكود لا يعمل ما لم تتوفر المكتبة rasdial.dll

يمكن تجريب وضع نسخة من هذا الملف في winMe .. ربما تنجح

أولا جرب أن تضعها في نفس مجلد الملف التنفيذي ,فإذا كانت التوابع التي تستخدمها لاتحتاج ملفات أخرى غير موجوده ستعمل بشكل جيد , إذا لم تعمل :

جرب نسخها إلى المجلد System32 ,, إذا طلب استبدال ملف موجود لاتستبدل , وإذا طلب ملفات أخرى تراجع عن الفكرة فقد تتعقد أكثر :إذا لم تعمل

فلابأس بالعودة WinXp

#23

dear orwa i tryed what u say before i send the reply but functions in rasdial.exe call rasapi32.dll but rasapi32.dll in Me is differ than rasapi32.dll inXP

i tryed but no result

thanks

هذا الموضوع مغلق.

مواضيع مشابهة