| История развития программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Калькулятор, помосчь при создании, обьяснение !!! Копирование файлов по локальной сети Запуск программы с параметрами кнопка в заголовке окна Как Вы относитесь к курящим девушкам? Блокировка пол. install JBuilder, kak instalirovatJBuilder7 na linux Огромный расчет - нужно написать прогу, Помогите выбрать язык VB6 vs PB7, интересный прикол дозвон до интрнета Определение стиля рабочего стола error '339' - ДОСТАЛА!!!, дома работает, в универе- нет Как проверить TextBox Таблица значений в 1С, анологично в VB возможно? Справочник функций API, где взять OCX не происходит Text_Validate При закрытии формы, При Form_QueryUnload поле не проверяетс Помогите начинающему, Хочу начать изучать Java... В Word-е как получить имя открытого файла, БЕЗ расширения книга по DirectX события ComboBox скроллы в MDI На Ваш суд и заодно может что подскажете, архив Проблема при ЗАПУСКЕ проги под VB! Связь VB и WWW, какая может быть - Как задать минимальный размер формы? DialUP без настроек в Удаленном доступе к сети Global переменная Взаимодействие PHP c JAVA Запуск программы с заданными параметрами, как сделать? Вопрос по ActiveX не работает функция, rundll32 rnaui.dll,RnaWizard /1 заполнить список ComboBox (DBCombo) _, Значениями из опред. поля Data Base ? Проверка канала, IP адрес Help!!! Проверка Record's Fields На правильность типов, несоотв-е типа введенных USER-om данных Значение ячейки в MS Exel, Как присвоить значение ячейки Текст: Как "снять" слово с текста на метке Ошибка в программе, нахождение точки, на графике VSFlexGrid 7.0 Pro - что об этом знаете, возможность работы без базы данных Дока для подготовки к Certified Programmer Работа с датой, Как ввести дату по шаблону?? компиляция программы на VB, не получается закрыть другое приложение из VB, например Calc HEX - to - String... DEC.... и т.п., Перевод типа данных Глюк с коллекциями как написать условия IF:, 1) Если Х не Integer то... Удаление каталогов, Не могу удалить папку Мыло, через VB Работа с LPT портом!!!, Работа с LPT портом!!! Как Вы относитесь к курящим девушкам? Счетчик, посещаемости... Узнать текущий директорий Скрытие строк в Excel Увеличение DataGrid при увеличении размкра формы, чтоб автоматом добавлялись ячейки Выбор даты из таблицы, что максимально, приближенная к указанной Создание нового листа в Excel из VBA как запомнить цвет Отчеты=(, Не обновляются=( разбивка многострочной строки Перетаскивание группы ячеек в excel Как прочитать текст из Word-ова doc-a Как сделать рандомные картинки при перезагрузке?, готовый пример, куки, Math.random и т.д. Вопрос к мэтрам и зубрам Прблемы при работе с реестром Работа с элементом TabStrip Перехват событий нажатия клавиш. есть немного работы, создать базу данных Как подключить Progress Bar control?, если его нет! Нити(потоки) в VB, Корректное создание Работа программы на VB без Excel |
Платные хостинги Раскрутка сайта Книги по программированию закрыть другое приложение из VB, например Calc
- Помогите найти решение задачи:в программе на VB создается файл с данными, необходимо подключиться через модем к другой сети и передать этот файл.Мне кажется, для этой цели лучше использовать какую-либо готовую программу-звонилку - она подклются к сети программа на VB отправит файл, затем после успешной отправки необходимо закрыть эту программу, а вот как ее закрыть, может кто-нибудь подскажет. - Когда ты стартуешь ее, ты получаешь ее хендл. Отправь ей сообщение что пора закрываться - она закроется если сможет.Хендл можно найти и через АПИ.А вообще если у тебя есть готовое сетевое подключение - тебе достаточно дать команду копирования. Система сама подключится, потом файл скопируется, а связь сама оборвется по неактивности. Только настроить надо нормально. - Вобщем-то я так и представлял это. То есть я уже и раньше читал, что нужно пользоваться api, однако ни где не могу по быстрому найтие ее (его) применение, то есть как это сделать. А по поводу, если есть готовое подключение, здесь есть несколько не удобств, я же пишу это не для себя, мне лично не влом нажать кнопочку чтобы подключиться и нажать кнопочку чтобы отключиться, однако предполагаемые пользователи - очень капризные и зачастую неграмотные (в плане пользования компьютером) люди. В связи с вышесказанным вариант ручного подключения не подходит. Варинат-же когда все настроено "Система сама подключится, потом файл скопируется, а связь сама оборвется по неактивности. Только настроить надо нормально." опять не подходит, так как эти настройки делаются, если я правильно понял о чем идет речь, в свойствах обозревателя, а эти свойства может настраивать кто-угодно, сколько угодно раз. А ездить каждый раз и настраивать - это не подходит уже для меня.Поэтому если на затруднит, прошу разъяснить каким образом можно использовать API, для моей задачи.Заранее очень благодарен. - Для закрытия приложения можно использовать функцию: Код BOOL DestroyWindow( HWND hWnd // handle to window to destroy);highlightSyntax('cppOWNiZj','cpp');Для получения hWnd можно использовать:Код HWND FindWindow( LPCTSTR lpClassName, // class name LPCTSTR lpWindowName // window name); highlightSyntax('cppTZjMWZ','cpp');Декларации в VB 6.0:Код Public Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As LongPublic Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LonghighlightSyntax('vblOWMwN','vb'); - slang, как происходит подключение через Dialup connection или напрямую модем? - через Dialup connection подключаемся к FTP - IMHO, будет легче и быстрее сделать свой код.Могу бросить код для работы с Dialup connections. - было-бы не плохо взглянуть, вообще-то мне сегодня нужно закончить ЭТО, но пока работы не початый край.Так-что буду премного благодарен.PS: может кто подскажет как сделать из того, программульку, которую можно установить, так, чтобы были все библиотеки и т.д. т.п., а то при установке он матерится, что ему чего-то не хватает. Я собственно использую-то всего две вещи FlexGrid и FTPSimple. - У меня есть пример кода для создания\удаления сетевого диска (в локальной сети)Есть пример вызова окна диалога подключения к инетуЕсть пример (с использованием ВинАПИ) определения, подключен ли комп к инетуЕсть пример создания нового подключения к инету(логин, пароль и т.д.)если что-то надо, могу кинуть сюда... - если можно "Есть пример вызова окна диалога подключения к инету" - -Mikle-, все выкидывай, в FAQ засунем... А вообще я вот тут про закрытие программ писал:http://forum.vingrad.ru/index.php?showtopic=20967 - -Mikle-И мне не помишает. Я решал подобную задачку. Не исключено, что придется еще раз на грабли наступить, а не хотелось бы. - Вот, то что я когда-то давно, где-то нашел в инете...Не все ф-ии я проверял на работоспособность...--------------------------------------------------------------------------------Вызвать окно "Установка связи с Интернетом"--------------------------------------------------------------------------------Данный код вызывает окно "Установка связи" из "Удаленный доступ к сети". Естественно, вы должны знать имя текущего соединения с интернетом. Код Private Sub Form_Load() Result = Shell("rundll32.exe rnaui.DLL,RnaDial " & "connection_name", 1) 'rundll32 rnaui.dll,RnaWizard /1 'Вывод окна "Установка Связи", с ключем "/1" - без окна'start /wait rundll32.exe rnaui.dll,RnaDial MyConnection End SubhighlightSyntax('vbNzQ4ZT','vb'); --------------------------------------------------------------------------------Имя текущего соединения с инетом --------------------------------------------------------------------------------Расположите на форме элемент CommandButton. Код Private Const RAS_MAXENTRYNAME As Integer = 256 Private Const RAS_MAXDEVICETYPE As Integer = 16 Private Const RAS_MAXDEVICENAME As Integer = 128 Private Const RAS_RASCONNSIZE As Integer = 412 Private Type RASCONN dwSize As Long hRasConn As Long szEntryName(RAS_MAXENTRYNAME) As Byte szDeviceType(RAS_MAXDEVICETYPE) As Byte szDeviceName(RAS_MAXDEVICENAME) As Byte End Type Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (udtRasConn As Any, lpcb As Long, lpcConnections As Long) As Long Private Sub Command1_Click() Dim udtRasConn(255) As RASCONN, countConn As Long Dim Ret As Long, b As Long udtRasConn(0).dwSize = RAS_RASCONNSIZE Ret = RasEnumConnections(udtRasConn(0), RAS_MAXENTRYNAME * udtRasConn(0).dwSize, countConn) If Ret = 0 Then For b = 0 To countConn - 1 MsgBox "Текущее соединение: " & StrConv(udtRasConn(b).szEntryName(), vbUnicode) Next b End If End SubhighlightSyntax('vb2EwZDY','vb'); --------------------------------------------------------------------------------Как программно отсоединиться от Интернета --------------------------------------------------------------------------------Добавьте на форму элемент CommandButton. При нажатии на кнопку происходит вызов функции HangUp, которая закрывает соединение с Интернетом. Код Const RAS_MAXENTRYNAME As Integer = 256 Const RAS_MAXDEVICETYPE As Integer = 16 Const RAS_MAXDEVICENAME As Integer = 128 Const RAS_RASCONNSIZE As Integer = 412 Const ERROR_SUCCESS = 0& Private Type RasEntryName dwSize As Long szEntryName(RAS_MAXENTRYNAME) As Byte End Type Private Type RasConn dwSize As Long hRasConn As Long szEntryName(RAS_MAXENTRYNAME) As Byte szDeviceType(RAS_MAXDEVICETYPE) As Byte szDeviceName(RAS_MAXDEVICENAME) As Byte End Type Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long) As Long Private Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long Private gstrISPName As String Public ReturnCode As Long Public Sub HangUp() Dim i As Long Dim lpRasConn(255) As RasConn Dim lpcb As Long Dim lpcConnections As Long Dim hRasConn As Long lpRasConn(0).dwSize = RAS_RASCONNSIZE lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize lpcConnections = 0 ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections) If ReturnCode = ERROR_SUCCESS Then For i = 0 To lpcConnections - 1 If Trim(ByteToString(lpRasConn(i).szEntryName)) = Trim(gstrISPName) Then hRasConn = lpRasConn(i).hRasConn ReturnCode = RasHangUp(ByVal hRasConn) End If Next i End If End Sub Public Function ByteToString(bytString() As Byte) As String Dim i As Integer ByteToString = "" i = 0 While bytString(i) = 0& ByteToString = ByteToString & Chr(bytString(i)) i = i + 1 Wend End Function Private Sub Command1_Click() Call HangUp End SubhighlightSyntax('vbmEwZjI','vb'); --------------------------------------------------------------------------------Как определить тип подключения к сети при помощи InternetGetConnectedState--------------------------------------------------------------------------------API функция InternetGetConnectedState содержится в wininet.dll (IE4 / IE5) и показывает состояние подключения к сети локальной системы. Она довольно проста в использовании и возвращает TRUE, если присутствует соединение с интернетом, иначе FALSE.Так же функция содержит параметр dwFlags. После вызова функции, dwFlags содержит состояние текущего соединения.Добавьте следующий код в секцию объявлений модуля BAS:Код Option ExplicitPublic Declare Function InternetGetConnectedState Lib "wininet" _ (ByRef dwFlags As Long, _ ByVal dwReserved As Long) As Long'Для соединения с интернетом используется модем.Public Const INTERNET_CONNECTION_MODEM As Long = &H1'Для соединения с интернетом используется LAN.Public Const INTERNET_CONNECTION_LAN As Long = &H2'Для соединения с интернетом используется прокси сервер.Public Const INTERNET_CONNECTION_PROXY As Long = &H4'No longer used.Public Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8Public Const INTERNET_RAS_INSTALLED As Long = &H10Public Const INTERNET_CONNECTION_OFFLINE As Long = &H20Public Const INTERNET_CONNECTION_CONFIGURED As Long = &H40'Следующие функции содержат в себе вызов InternetGetConnectedStatePublic Function IsNetConnectViaLAN() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги указывают на соединение по LAN IsNetConnectViaLAN = dwflags And INTERNET_CONNECTION_LAN End FunctionPublic Function IsNetConnectViaModem() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги указывают на соединение по модему IsNetConnectViaModem = dwflags And INTERNET_CONNECTION_MODEM End FunctionPublic Function IsNetConnectViaProxy() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги указывают на соединение через проксю IsNetConnectViaProxy = dwflags And INTERNET_CONNECTION_PROXY End FunctionPublic Function IsNetConnectOnline() As Boolean 'здесь не нужно флагов - функция вернёт True если 'присутствует соединие с интернетом любого типа IsNetConnectOnline = InternetGetConnectedState(0&, 0&) End FunctionPublic Function IsNetRASInstalled() As Boolean Dim dwflags As Long 'передаём пустую переменную в функцию, чтобы 'получить состояние флагов, отвечающих за соединение Call InternetGetConnectedState(dwflags, 0&) 'возвращаем True если флаги показывают, что RAS установлен IsNetRASInstalled = dwflags And INTERNET_RAS_INSTALLED End FunctionPublic Function GetNetConnectString() As String Dim dwflags As Long Dim msg As String 'составляем строку для отображения If InternetGetConnectedState(dwflags, 0&) Then If dwflags And INTERNET_CONNECTION_CONFIGURED Then msg = msg & "You have a network connection configured." & vbCrLf End If If dwflags And INTERNET_CONNECTION_LAN Then msg = msg & "The local system connects to the Internet via a LAN" End If If dwflags And INTERNET_CONNECTION_PROXY Then msg = msg & ", and uses a proxy server. " Else: msg = msg & "." End If If dwflags And INTERNET_CONNECTION_MODEM Then msg = msg & "The local system uses a modem to connect to the Internet. " End If If dwflags And INTERNET_CONNECTION_OFFLINE Then msg = msg & "The connection is currently offline. " End If If dwflags And INTERNET_CONNECTION_MODEM_BUSY Then msg = msg & "The local system's modem is busy with a non-Internet connection. " End If If dwflags And INTERNET_RAS_INSTALLED Then msg = msg & "Remote Access Services are installed on this system." End If Else msg = "Not connected to the internet now." End If GetNetConnectString = msgEnd FunctionhighlightSyntax('vbMDQ5MD','vb');Добавьте на форму кнопку (Command1), шесть текстовых полей (Text1 - Text6). Установите в Text6 свойство Multiline в True и добавьте следующий код:Код Private Sub Command1_Click() Text1.Text = IsNetConnectViaLAN() Text2.Text = IsNetConnectViaModem() Text3.Text = IsNetConnectViaProxy() Text4.Text = IsNetConnectOnline() Text5.Text = IsNetRASInstalled() Text6.Text = GetNetConnectString()End SubhighlightSyntax('vbE2MTY3','vb');--------------------------------------------------------------------------------Добавление удаление Share-диска--------------------------------------------------------------------------------Код Private Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As LongPrivate Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long' можно использовать следующие константы:Const WN_SUCCESS = 0 Const WN_NET_ERROR = 2 Const WN_BAD_PASSWORD = 6 Function AddConnection(shareName As String, pwd As String, localLetter As String) As Integer On Local Error GoTo AddConnection_Err AddConnection = WNetAddConnection(shareName, pwd, localLetter)AddConnection_End: Exit FunctionAddConnection_Err: AddConnection = Err MsgBox Error$ Resume AddConnection_EndEnd FunctionFunction CancelConnection(localLetter As String, force As Integer) As Integer On Local Error GoTo CancelConnection_Err CancelConnection = WNetCancelConnection(localLetter, force)CancelConnection_End: Exit FunctionCancelConnection_Err: CancelConnection = Err MsgBox Error$ Resume CancelConnection_EndEnd Function' использование функций:' AddConnection "\\RemoteComp1\H", "пароль удаленного компа", "R:"' и ' CancelConnection "R:", False' если параметр force = False, и текущее устройство' используется, то функция не отключает устройство.highlightSyntax('vbg3NTRk','vb');-------------------------------------------------------------------------------- - и как с этим бороться. пошарился - многие предлагают эту функцию, но она не работает под 2к - да уж... попробовал ее щас у себя, точно не работает... у меня ХР...надо поискать че-нить... |