Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2016, 18:59   #1
АлександрDelphi
Форумчанин
 
Аватар для АлександрDelphi
 
Регистрация: 28.02.2016
Сообщений: 115
По умолчанию Проверка INTERNET_CONNECTION( с закрытием формы)

Народ помогите как сделать что бы форма не открывалась если нет интернет соединения
Код:
{$R *.dfm}
function IsConnectedToInternet(lpdwFlags: LPDWORD): Boolean;
const
WininetDLL = 'wininet.dll';
var
hWininetDLL: THandle;
dwReserved: DWORD;
fn_InternetGetConnectedState: function(lpdwFlags: LPDWORD; dwReserved: DWORD): BOOL; stdcall;
begin
Result := False;
dwReserved := 0;
hWininetDLL := LoadLibrary(WininetDLL);
if hWininetDLL > 0 then
begin
@fn_InternetGetConnectedState := GetProcAddress(hWininetDLL,'InternetGetConnectedState');
if Assigned(fn_InternetGetConnectedState) then
begin
Result := fn_InternetGetConnectedState(lpdwFlags, dwReserved);
end;
FreeLibrary(hWininetDLL);
end else
raise Exception.Create('Unable to locate function InternetGetConnectedState in library ' + WininetDLL);
end;

procedure TForm1.FormCreate(Sender: TObject);
const
INTERNET_CONNECTION_MODEM = 1;
INTERNET_CONNECTION_LAN = 2;
INTERNET_CONNECTION_PROXY = 4;
INTERNET_CONNECTION_MODEM_BUSY = 8;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
if IsConnectedToInternet(@dwConnectionTypes) then
(тут надо сделать что бы форма открывалась)
else
( тут что бы  форма не открывалась)

end;
Или же какой нибудь другой способ сколько искал в сетях так и не нашел не чего путного или подходящего ..
Screenshot_1.png
А то когда интернета нету вот такая ошибка и форма открывается а надо что бы она не открывалась а само уничтожалась просто закрывалась ..

Последний раз редактировалось АлександрDelphi; 12.03.2016 в 19:06.
АлександрDelphi вне форума Ответить с цитированием
Старый 12.03.2016, 19:07   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем так проверять? Просто пробуйте сделать нормальное действие требующее интернета (отправка запроса своему серверу и т.п.)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.03.2016, 19:31   #3
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

Я тебе реально могу помочь с кодом, у меня есть то что тебе надо! Если что пиши на 920403@mail.ru
Almaz92 вне форума Ответить с цитированием
Старый 24.03.2016, 20:12   #4
vlad1389
Форумчанин
 
Регистрация: 02.02.2016
Сообщений: 290
По умолчанию

Да, мне тоже интересно, зачем это?
vlad1389 вне форума Ответить с цитированием
Старый 25.03.2016, 11:43   #5
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

Большинство методов проверки подключения интернета в дельфи приложениях, которые пестрят везде в интернете не универсальны, и часто просто не работают или работают не так как надо! Всё зависит от того какой интернет у вас! Мне специально на заказ писали модуль, довольно обширный! Вот этот модуль позволяет корректно обработать именно ту задачу, которая здесь описана! И это действует 100% для любого типа интернета!
Almaz92 вне форума Ответить с цитированием
Старый 25.03.2016, 11:49   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем вообще нужна какая-то специальная проверка? Если программе для чего-то нужен интернет, то при совершении действия требующем его вы и так узнаете об его отсутствии (выпадет Exception и т.п.)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.03.2016, 12:08   #7
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

Я так думаю, что челу необходима просто своя программка - типа контролёр интернета! Ну как логический элемент микросхемы! Вход и выход! Если на входе есть интернет то на выходе 1, если на входе нет интернета, то на выходе 0! А как уже применить этот логический элемент, это уже зависит от фантазии прогера! Этот ключевой логический элемент может управлять в программах хоть чем угодно! У чела просто не работал по ходу сам код и он не мог его найти нигде, вот и всё!
Almaz92 вне форума Ответить с цитированием
Старый 25.03.2016, 12:12   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не необходима, он пытается защитить свою мегапрограмму от взломщиков запускающих ее без интернета.
Поэтому непонятно почему просто не попытаться при запуске сделать то действие (которое очевидно уже реализовано или должно быть реализовано), для которого программе и нужен интернет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.03.2016, 13:05   #9
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

Да! кстати я вспомнил! Один знакомый товарищ был любитель всякого мусора в сети по заработку легких денег, ну короче лох одним словом! И вот однажды он скачал там где то программу лохотрон - генератор денег! Он уже хотел оплачивать активацию 370 рублей, ну развод на деньги! Я ему говорю, ты идиот! Он обижается! Ну давай проверим очень элементарно! Отключай интернет говорю! Зачем, спрашивает он! А затем говорю я! Ладно! Отключил инет! Запускай прогу! Говорю я! И что? А то, что мошенники идиоты! Не понял? Прога начисляет бабло без интернета! Тебе это на арабском объяснить? БЛИН! Вот тебе блин! Просто горе прогеры забыли включить туда функцию проверки интернета! Дилетанты! Детский сад!
Almaz92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка формы Астасья HTML и CSS 0 01.04.2013 15:35
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
Как сделать закрытие формы вместе закрытием активного лита eхel amadi Общие вопросы Delphi 7 03.02.2011 12:55
Проверка перед закрытием (аналог Паинт) Claster Помощь студентам 0 01.12.2010 17:35
проблема с закрытием формы betirsolt Общие вопросы Delphi 46 03.08.2009 01:00