PDA

View Full Version : اینترنت



شفیعی
دوشنبه 03 شهریور 1382, 18:48 عصر
سلام

1- چگونه می توان تشخیص داد وارد اینترنت شده ایم یا نه

2- به چه روشی می توان برنامه نوشت که وقتی وارد اینترنت می شویم برنامه به صورت خود کار فعال شود

مهدی کرامتی
دوشنبه 03 شهریور 1382, 19:40 عصر
function INTERNETCONNECTED: Boolean;
CONST
// local system uses a modem to connect to the INTERNET.
INTERNET_CONNECTION_MODEM = 1;
// local system uses a local area network to connect to the INTERNET.
INTERNET_CONNECTION_LAN = 2;
// local system uses a proxy server to connect to the INTERNET.
INTERNET_CONNECTION_PROXY = 4;
// local system's modem is busy with a non-INTERNET connection.
INTERNET_CONNECTION_MODEM_BUSY = 8;

VAR
dwConnectionTypes : DWORD;
BEGIN
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := INTERNETGetCONNECTEDState(@dwConnectionTypes,0);
END;

شفیعی
دوشنبه 03 شهریور 1382, 21:48 عصر
سلام
با تشکر از جوابتان خیلی بدرد خورد
یک سوال دیگر نیز از حضورتان داشتم
بنده دارم برنامه ای می نویسم که با استفاده از تایمر اتصا ل به اینترنت چک می کند وپس از وصل شدن ساعت وتاریخ را ذخیره می کند می خواستم بدانم می شود برنامه را طوری تغییر داد که علاوه بر ساعت وتاریخ لیست ساتهای را که کاربر وارد آن می شود نیز در یک فایل ذخیر ه نمود
با تشکر ناصر شفیعی

شفیعی
چهارشنبه 12 شهریور 1382, 15:26 عصر
لطفا این قست را نگاه کنید
http://www.irandevelopers.com/forum/display_topic_threads.asp?ForumID=10&TopicID=1213&PagePosition=1

شفیعی
دوشنبه 29 دی 1382, 16:08 عصر
سلام
هنوز موفق نشدم لیست سایتها را با دلفی بدست آورم

Delphi-Clinic
دوشنبه 29 دی 1382, 16:42 عصر
از این ابزار استفاده کنید:

IESniffer

http://www.appcontrols.com/components.html

شفیعی
دوشنبه 29 دی 1382, 19:45 عصر
سلام
دوست عزیر از برنامه شما خیلی ممنون هستم
من این کامپوننت را نصب کردم ودر دلفی 6 استفاده کردم فقط یک مشکل دارد در اول برنامه یک پنجره باز می شود که TITLE پنجره نوشته است UNREGISTERD
لطفا بنده را راهنمائی نمائید

Kambiz
دوشنبه 29 دی 1382, 20:58 عصر
function INTERNETCONNECTED: Boolean;
CONST
// local system uses a modem to connect to the INTERNET.
INTERNET_CONNECTION_MODEM = 1;
// local system uses a local area network to connect to the INTERNET.
INTERNET_CONNECTION_LAN = 2;
// local system uses a proxy server to connect to the INTERNET.
INTERNET_CONNECTION_PROXY = 4;
// local system's modem is busy with a non-INTERNET connection.
INTERNET_CONNECTION_MODEM_BUSY = 8;

VAR
dwConnectionTypes : DWORD;
BEGIN
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := INTERNETGetCONNECTEDState(@dwConnectionTypes,0);
END;

فقط جهت اطلاع:

اگر تنها وضعیت روی خط بودن رو بدون در نظر گرفتن نوع ارتباط بخوایم، کد بالا رو می‌شه بصورت خلاصه زیر نوشت:

Online := InternetGetConnectionState(nil, 0);

شفیعی
دوشنبه 29 دی 1382, 23:16 عصر
سلام
خیلی ممنون

مهدی کرامتی
دوشنبه 29 دی 1382, 23:16 عصر
جالب بود :)

شفیعی
دوشنبه 29 دی 1382, 23:26 عصر
سلام
یک سوال دیگر :
چگونه می توان USERNAME و پسوردی را که بوسیله آن با اینترنت ارتباط برقرار کرده ایم بدست آورد

Mehdi_FT
سه شنبه 30 دی 1382, 04:46 صبح
سلام
ببین این کد به کارت میاد
کد زیر فایل های Pwl که در ان username و password ذخیره می شه را decode می کنه
مورد بالا فقط در مورد win9x صادق هستش.


unit Unit1;

interface

uses
Windows, SysUtils, Classes, Forms, ShellAPI, Controls, StdCtrls;

type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
ListBox: TListBox;
Label1: TLabel;
Label2: TLabel;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
hMPR: THandle;
end;

var
Form1: TForm1;

const
Count: Integer = 0;

function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC:
PChar; dw: DWord): Word; stdcall;

implementation

{$R *.DFM}
function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC:
PChar; dw: DWord): Word; external mpr
name 'WNetEnumCachedPasswords';

type
PWinPassword = ^TWinPassword;
TWinPassword = record
EntrySize: Word;
ResourceSize: Word;
PasswordSize: Word;
EntryIndex: Byte;
EntryType: Byte;
PasswordC: Char;
end;

var
WinPassword: TWinPassword;

function AddPassword(WinPassword: PWinPassword; dw: DWord):
LongBool; stdcall;
var
Password: String;
PC: Array[0..$FF] of Char;
begin
inc(Count);

Move(WinPassword.PasswordC, PC, WinPassword.ResourceSize);
PC[WinPassword.ResourceSize] := #0;
CharToOem(PC, PC);
Password := StrPas(PC);

Move(WinPassword.PasswordC, PC, WinPassword.PasswordSize +
WinPassword.ResourceSize);
Move(PC[WinPassword.ResourceSize], PC,
WinPassword.PasswordSize);
PC[WinPassword.PasswordSize] := #0;
CharToOem(PC, PC);
Password := Password + ': ' + StrPas(PC);

Form1.ListBox.Items.Add(Password);
Result := True;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0)= 0
then
begin
Application.MessageBox('Can''t load passwords: User is not
logon.', 'Error', mb_Ok or mb_IconWarning);
Application.Terminate;
end
else
if Count = 0 then
ListBox.Items.Add('No passwords found...');
end;

end.

Mehdi_FT
سه شنبه 30 دی 1382, 05:23 صبح
سلام
اینم یه تابع دیگه در رابطه با online بودن



function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL';
InetIsOffline(0)=true ---> online

Mehdi_FT
سه شنبه 30 دی 1382, 05:46 صبح
دوباره سلام
این برنامه لیست تمام url هایی که در history هستش را به ما می دهد
من این برنامه را رو delphi8 امدم اجرا کنم به یکی از unit های برنامه گیر می داد دیگه وقت نکردم رو نسخه های دیگه delphi امتحان کنم

امیر-نا
چهارشنبه 06 اسفند 1382, 11:55 صبح
بابا آقا مهدی
ممنون
:موافق:

hadiaj168
چهارشنبه 01 آبان 1387, 12:30 عصر
چرا وقتی کد پست 2 رو وارد میکنم ارور زیر رو میده ؟
از دلفی 7 استفاده میکنم ، تو uses چیز خاصی لازم نداره؟
[Error] Unit1.pas(41): Undeclared identifier: 'INTERNETGetCONNECTED'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

zman123456
چهارشنبه 01 آبان 1387, 14:07 عصر
فکر کنم یه چیزی باید use بشه.منم همین error رو گرفتم.:متفکر:

vcldeveloper
پنج شنبه 02 آبان 1387, 00:38 صبح
چرا وقتی کد پست 2 رو وارد میکنم ارور زیر رو میده ؟
از دلفی 7 استفاده میکنم ، تو uses چیز خاصی لازم نداره؟
INTERNETGetCONNECTEDState یک تابع API ویندوز هست که در یونیت WinInet تعریف شده. این یونیت را به بخش uses اضافه کنید.

Anis131313
چهارشنبه 16 آذر 1390, 06:21 صبح
INTERNETGetCONNECTEDState یک تابع API ویندوز هست که در یونیت WinInet تعریف شده. این یونیت را به بخش uses اضافه کنید.

سلام جناب کشاورز در اینترنت گشتم و 2 تا فایل رو در پایین درج کردم در پوشه ای که با نام Internet هستش یک پروژه هست که در Button2 کدی که در ای پست ها دوستان زحمت کشیده اند رو درج کردم. منتها ظاهرا این کد فقط اتصال به Network را چک میکند و اگر چنانچه LAN کانکت باشد اما Modem ADSL به اینترنت وصل نباشد مقدار برگشتی تابع همواره True هستش ، در همین فایل پروژه یک تایمر و یک کامپوننت با نام NMHTTP1 قرار داده ام که تایمر هر 10 ثانیه دستور
NMHTTP1.Get('http://delphipages.com');
را Try میکند و به خاطر اینکه یه وقت سرعت اینترنت کم باشد من تایمر را از 10 ثانیه گذاشتم تا از صفحه Page موجود Response به کامپوننت برسد و متوجه شیم که آیا به اینترنت متصل است یا نه ...

خلاصه اینکه از شما تاییدیه میخوام که اولا صحبت من راجع به تابع صحبت شده در این تاپیک درست است یا نه و مورد بعد اینکه آیا راه بهتری برای تشخیص اتصال به اینترنت وجود دارد یا خیر.

با تشکر از بزرگواری شما.


78807

_______________________________

Mask
چهارشنبه 16 آذر 1390, 18:47 عصر
uses wininet;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
connstate: dword;
begin
connstate:=INTERNET_CONNECTION_LAN+INTERNET_CONNEC TION_MODEM;
if not InternetGetConnectedState(@connstate,0) then
ShowMessage('Not Conected')
else
ShowMessage('Conected');


uses WinInet, Math;
{$R *.dfm}
function INTERNETCONNECTED: Boolean;
CONST
// local system uses a modem to connect to the INTERNET.
INTERNET_CONNECTION_MODEM = 1;
// local system uses a local area network to connect to the INTERNET.
INTERNET_CONNECTION_LAN = 2;
// local system uses a proxy server to connect to the INTERNET.
INTERNET_CONNECTION_PROXY = 4;
// local system's modem is busy with a non-INTERNET connection.
INTERNET_CONNECTION_MODEM_BUSY = 8;

VAR
dwConnectionTypes : DWORD;
BEGIN
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := INTERNETGetCONNECTEDState(@dwConnectionTypes,0);
END;

procedure TForm1.Button1Click(Sender: TObject);
begin
If INTERNETCONNECTED Then
Begin
ShowMessage('Yes');
End Else Begin
ShowMessage('No');
End;

loo30fer
چهارشنبه 16 آذر 1390, 19:15 عصر
البته یکی از بهترین روش و مطمئن ترین روش , روش خودتون هست چون اگه LAN شما در حالت True باشد و مشکلی در اینترنت بوجود بیاد برای مثال قطعی از طرف آی اس پی هنگام چک کردن وضعیت اتصال با کدی که دوستمون قرار دادن و کدهای دیگر حدود 15 ثانیه برنامه در حالت انتظار میره و بعد از 15 ثانیه به شما وضعیت اتصال رو گزارش میکنه که فکر نمیکنم شما این وضعیت رو دوست داشته باشین.
ضمنا فقط به جای گرفتن محتویات سایت http://delphipages.com یک فایل 1 بایتی روی یک سرور که مطمئن هستید حذف نمیشه آپلود کنید و اون رو دریافت کنید که برای متوجه شدن سریع تر وضعیت اتصال در رویداد OnStatus چک کنید که اگه مقدار برگشتی Connected بود از دانلود فایل صرف نظر کند ضمنا میتونید از روش Ping کردن هم کمک بگیرین.