powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сделать программно скрин вкладки
189 сообщений из 189, показаны все 8 страниц
сделать программно скрин вкладки
    #37792273
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, можно сделать программно скрин вкладки не открывая её
Панель управления
Телефон и модемы
Модем и поместить в пикчербокс
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792279
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так
http://files.mail.ru/20VGFL
(модератору - на сайт не цепляется)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792353
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А пошто именно скрин -то?
Может, просто запросить список установленных модемов (через WMI, например)?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792407
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> можно сделать программно скрин вкладки не открывая её

Сделать скрин (он же screen shot, он же снимок экрана ) чего-либо , не отображаемого на экране , невозможно.
Ни програмно, ни вручную.

--
А головой я ем!
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792559
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, ОК, доходчиво
ну тогда программно открывая "втёмную" Визибле=Фальше можно?
>Может, просто запросить список установленных модемов (через WMI, например)?
плавали, знаем не сходится ответ на запрос с тем, что на вкладке
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792560
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
screen shot, он же снимок экрана, не ну я не настаиваю, может оно будет по другому называться, но смысл в том, что сто-пудово что там на вкладке есть, фото окна, потому как
screen shot его ведь ещё обрезать придётся
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792604
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,
1. как ты собираешься "фотать" то, чего не видно? сама идея бредовая
2. причем тут VB?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792696
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа...плавали, знаем не сходится ответ на запрос с тем, что на вкладкеЭндрю, то есть ты, до сих пор не разобрался, что там было неверно в твоем коде? Не удосужился хоть немного почитать по предложенным вариантам (а, насколько я помню, разговор тогда дошел до того, что можно было проверить наличие/работоспособность модемов AT-командами).
И теперь принялся выдумывать новые обходные пути... которые, если что и получилось бы, были преподнесены как очередное озарение и "фирменный подход"
Пичалька
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792894
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QValD,
>1. как ты собираешься "фотать" то, чего не видно? сама идея бредовая
всё по аналогии, Ворд "втёмную" открыть и прочитать могу, почему бы это нет?
2. причем тут VB?
предлагаете выучить си? ассемблер?
AndreTM,
>до сих пор не разобрался, что там было неверно в твоем коде
доказано мною!!!!!!!! - самые точные данные там - в Панели управления
хорошо, а есть возможность программно это окно открыть и неверующему предоставить?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792897
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, и вообще странно что это пахнет проблемой века
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37792943
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> доказано мною!!!!!!!! - самые точные данные там - в Панели управления

Наивный.

P.S. Ну чиркай, чиркай (с) Анекдот

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37793079
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаQValD,
>1. как ты собираешься "фотать" то, чего не видно? сама идея бредовая
всё по аналогии, Ворд "втёмную" открыть и прочитать могу, почему бы это нет?

Разницу между "отрыть и прочитать файл" и "сфоткать картинку, которой нет" не чуешь?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37793728
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QValD,
>сфоткать картинку, которой нет
так и не ответили
есть возможность программно это окно открыть и неверующему предоставить?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37793760
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск не работает? http://www.sql.ru/forum/actualthread.aspx?tid=632921
Код: vbnet
1.
MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37793766
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
control.exe telephon.cpl,,1
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37793785
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, что написали фиг поймёшь - расшифровка нужна
ну вот и ответ
Код: vbnet
1.
MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)


AndreTM рулит, спасибо!!!!!!!!!!
и как обычно одной строкой
MyID = у меня равно 256, это хендл окна?
ну и осталось открыли, как программно закрыть и это окно сделать чтобы было по центру экрана?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37793879
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробовал так
Код: vbnet
1.
SendMessage(MyID,WM_CLOSE, 0&, 0&)


вроде знак равно просит
????
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37793929
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаAntonariy, что написали фиг поймёшь - расшифровка нужна
Код: vbnet
1.
shell "control.exe telephon.cpl,,1"

control.exe — приблуда для работы с панелью управления.
telephon.cpl — оснастка панели управления для телефонии
1 — номер вкладки, которую нужно активировать при открытии (отсчет с нуля).

Можно и так, как оказалось:
Код: vbnet
1.
shell "control.exe modem.cpl"

Сразу открывается вторая вкладка.

авторпробовал такShell возвращает идентификатор процесса, а не окна.
Самый простой способ получить окно это выполнить GetActiveWindow сразу после Shell.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37794063
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа>Может, просто запросить список установленных модемов (через WMI, например)?
плавали, знаем не сходится ответ на запрос с тем, что на вкладке

Все что отображается про модемы в панели управления, находится в
Код: vbnet
1.
2.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}
0000,0001,0002


Но: если вы ручками "напоганите" то что находится в 0000,
это при том что в 0001, 0002 и т. д. содержатся адекватные данные,
адекватно воспринимаемые системой и в частности корректно отображаемые в "модемах" в панели управления,
то WMI ничего вообще не увидит.

У меня почему-то при каких-то обстоятельствах ветку реестра поганила иногда программа (при автоматической установке/удалении модемов), при этом я использую WMI для отображения этих самых модемов в реестре.

WMI я так и не переделал на что-то другое, но правда оптимизировал эту самую процедуру установки/удаления, поэтому жалобы на глюки практически свелись к нулю. А раньше пользователи прямиком мной отсылались чистить через regedit.exe эти самые 0000,0002 ручками. Либо переустановка OS.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37794089
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77, спасибо!!!!!!! всем - инфу переварю, что не понятно спрошу
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37795949
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подитожив картина вырисовывается:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
'control.exe — служит для работы с панелью управления
'telephon.cpl — оснастка панели управления для телефонии
'1 — номер вкладки, которую нужно активировать при открытии (отсчет с нуля)
Shell "control.exe telephon.cpl,,1"

'можно и так сразу открывается вторая вкладка
Shell "control.exe modem.cpl"

'MyID - идентификатор процесса
MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)

'идентификатор окна, которое рисуется поверх остальных
'нужно декларировать Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Foreground = GetForegroundWindow
'идентификатор активного окна
'нужно декларировать Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Active = GetActiveWindow

SendMessage(Active,WM_CLOSE, 0&, 0&) '- всё равно знак = просит, декларировать нужно?, как?, чему равно WM_CLOSE?


как зарыть окно?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37795953
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как зарыть окно? - как закрыть окно?, сорри
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37795959
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофачему равно WM_CLOSE?освой уже API Text Viewer, который входит в комплект поставки VS6
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37795965
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, да это попутный мини вопрос и ответ уже известен:
Const WM_CLOSE = &H10
самое главное, почему не закрывает окно? как закрыть?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37795967
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня работает и закрывает
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37795979
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, печалька, и что это может быть?, Вы как то декрарировали чтобы работало SendMessage? (просто я забыл)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37795980
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну ведь выделяет у меня всю строку SendMessage(Active,WM_CLOSE, 0&, 0&) и говорит ошибка в синтаксе, вот ересь
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37796000
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаВы как то декрарировали чтобы работало SendMessage? (просто я забыл)разумеется. И где взять декларацию я тебе уже сказал.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37796008
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, закрывает да только не то что надо, закрывает Ворд
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
'закрыть окно
'нужно декларировать Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _
  ByVal hwnd As Long, _
  ByVal wMsg As Long, _
  ByVal wParam As Long, _
  lParam As Any) As Long
PostMessage Active, WM_CLOSE, 0&, 0&


Active - не правильно обсчитывается или ересь??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37796013
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и косяк на страницах форума, эти строки заремарчены, но форум об этом умалчивает
Код: vbnet
1.
2.
3.
4.
 ByVal hwnd As Long, _
  ByVal wMsg As Long, _
  ByVal wParam As Long, _
  lParam As Any) As Long
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37796030
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофавот и косяк на страницах форумаОтписал про глюк на ОНС
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37796382
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proу меня работает и закрывает
выложите пжл код где всё работает
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37796603
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаShocker.Proу меня работает и закрывает
выложите пжл код где всё работает
Код: vbnet
1.
2.
Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus
SendMessage GetForegroundWindow, &H10, 0&, 0&
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797440
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, спасибо!!!!!!

открыли - закрыли вкладку
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Option Explicit

Private Declare Function GetForegroundWindow Lib "user32" () As Long
'
Sub OpenОткрыть_вкладку_модемы()

'отключаем дёргание экрана при выполнении кода
  Application.ScreenUpdating = False

  '1
  'control.exe — служит для работы с панелью управления
  'telephon.cpl — оснастка панели управления для телефонии
  '1 — номер вкладки, которую нужно активировать при открытии (отсчет с нуля)
  'Shell "control.exe telephon.cpl,,1"

  '2
  'можно и так сразу открывается вторая вкладка
  'Shell "control.exe modem.cpl"

  '3
  Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus

  'MyID - идентификатор процесса
  'MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)

  'закрыть вкладку
  SendMessage GetForegroundWindow, &H10, 0&, 0&

  'отменяем отключенное ранее дёргание экрана при выполнении кода
  Application.ScreenUpdating = True

End Sub



можно это сделать "втёмную", как считать вкладку между открытием и закрытием и поместить её в picturebox?, это возможно?
Подскажите код
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797476
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMкатастрофа...плавали, знаем не сходится ответ на запрос с тем, что на вкладкеЭндрю, то есть ты, до сих пор не разобрался, что там было неверно в твоем коде? Не удосужился хоть немного почитать по предложенным вариантам (а, насколько я помню, разговор тогда дошел до того, что можно было проверить наличие/работоспособность модемов AT-командами).
И теперь принялся выдумывать новые обходные пути... которые, если что и получилось бы, были преподнесены как очередное озарение и "фирменный подход"
Пичалька

согласен про печальку, плачу..., посмотрите пжл в файле все разногласия: http://files.mail.ru/V85R16
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797568
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _
    ByVal nWidth As Long, ByVal nHeight As Long, _
    ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Private Const SRCCOPY = &HCC0020


Private Sub Command1_Click()
    Dim hwnd As Long
    Dim hdc As Long
    Dim rc As RECT
    
    Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus
    hwnd = GetForegroundWindow
    hdc = GetDC(hwnd)
    GetWindowRect hwnd, rc
    BitBlt Picture1.hdc, 0, 0, rc.Right - rc.Left, rc.Bottom - rc.Top, hdc, 0, 0, SRCCOPY
    DeleteDC hdc
    SendMessage hwnd, &H10, 0&, 0&

End Sub
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797583
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа
Код: vbnet
1.
2.
'отключаем дёргание экрана при выполнении кода
  Application.ScreenUpdating = False

абсолютно тут не нужно, ты же не работаешь с документом
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797809
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proкатастрофа
Код: vbnet
1.
2.
'отключаем дёргание экрана при выполнении кода
  Application.ScreenUpdating = False

абсолютно тут не нужно, ты же не работаешь с документом
Shocker.Pro, понял, учту
а можно закрыть это окно используя MyID, Foreground или Active?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
'MyID - идентификатор процесса
MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)

'идентификатор окна, которое рисуется поверх остальных
'нужно декларировать Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Foreground = GetForegroundWindow
'идентификатор активного окна
'нужно декларировать Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Active = GetActiveWindow



Antonariy, спасибо завтра опробую, отпишусь
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797810
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаа можно закрыть это окно используя MyID, Foreground или Active?а я как закрываю?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797815
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro'закрыть вкладку
Код: vbnet
1.
  SendMessage GetForegroundWindow, &H10, 0&, 0&
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797820
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты ответил на свой вопрос?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797824
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, неа, осталось
>Antonariy, спасибо завтра опробую, отпишусь
>можно это сделать "втёмную", как считать вкладку между открытием и закрытием и поместить её в picturebox?, это возможно? Подскажите код
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37797947
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаShocker.Pro, неа, осталосьAntonariy
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
    Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus
    hwnd = GetForegroundWindow

    hdc = GetDC(hwnd)
    GetWindowRect hwnd, rc
    BitBlt Picture1.hdc, 0, 0, rc.Right - rc.Left, rc.Bottom - rc.Top, hdc, 0, 0, SRCCOPY
    DeleteDC hdc

    SendMessage hwnd, &H10, 0&, 0&
...
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37798079
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMкатастрофаShocker.Pro, неа, осталосьAntonariy
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
    Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus
    hwnd = GetForegroundWindow

    hdc = GetDC(hwnd)
    GetWindowRect hwnd, rc
    BitBlt Picture1.hdc, 0, 0, rc.Right - rc.Left, rc.Bottom - rc.Top, hdc, 0, 0, SRCCOPY
    DeleteDC hdc

    SendMessage hwnd, &H10, 0&, 0&
...


ой я даже не смотрел, ну ничего всё равно до вечера
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37798083
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще то не стал ничего дожидаться попробовал на домашней машине, Picture то никогда не пользовался, в Ворде на форму добавил
Microsoft Picture Clip Control, version 6.0
получил отлуп
Could not complete the operation due to error 800a0011
как лечить?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37798140
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Picture Clip это совсем не то
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37798196
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, понял, а эта штука в ВБА есть? если есть как называется? или только в ВБ6?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37798267
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем это все вообще? Ну скопировали на форму картинку, почему недостаточно посмотреть на саму закладку?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37798400
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
>А зачем это все вообще?
человек он царь компьютеров, это точно, насчёт зверей спорно
что будет плохого если у меня расширится кругозор, если на форме будет фото закладки, если она откроется тоже не плохого, любому не верующему нос утрёт, но не могу управлять, чтобы она появлялась по человечески, по центру
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37798427
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, если с Вашим кодом скомпилировать на ВБ6.0, тогда запуская экзешник не понятно что происходит, если пошагово делать
получаю сообщение Недостаточно памяти для запуска; закрыть
что за ересь??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37800088
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть проект
Без ложки дёгтя не обошлось, сначала есть на форме "следующие модемы", а потом появляется "На компьютере установлены"
слабый компьютер или можно уладить?
правда пробовал несколько раз - по разному загружается
Но что совершенно точно когда эта форма открыта взять и сверить самому не возможно в панели управления нельзя открыть даже Телефоны и модемы, почему? это можно уладить?
2
Пользуюсь этим кодом:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
    Sub Все_модемы()

    On Error Resume Next

    Dim strComputer As String
    strComputer = "."

    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")

    Dim objItem As Object

    Dim Количество_модемов As Byte
    Dim Результат As String

    Selection.EndKey Unit:=wdStory

    For Each objItem In colItems
        Количество_модемов = Количество_модемов + 1
        
        Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & Chr$(13)

    Next

    MsgBox$ "Количество модемов: " & Количество_модемов & Chr$(13) & Результат

End Sub



выполняя его имеются разногласия с картинкой, которую выдаёт в реале вкладка Модемы, есть возможность подправить этот код, чтобы было верно?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37802239
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMкатастрофа...плавали, знаем не сходится ответ на запрос с тем, что на вкладкеЭндрю, то есть ты, до сих пор не разобрался, что там было неверно в твоем коде? Не удосужился хоть немного почитать по предложенным вариантам (а, насколько я помню, разговор тогда дошел до того, что можно было проверить наличие/работоспособность модемов AT-командами).
И теперь принялся выдумывать новые обходные пути... которые, если что и получилось бы, были преподнесены как очередное озарение и "фирменный подход"
Пичалька
Вот код, солянка, со всего что есть в сети:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
    Sub Все_модемы()
 
    On Error Resume Next
 
    Dim strComputer As String
    strComputer = "."
 
    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
 
    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")
 
    Dim objItem As Object
 
    Dim Количество_модемов As Byte
    Dim Результат As String
    Dim Ответ_модема As String
 
    Selection.EndKey Unit:=wdStory
 
    Dim Comm1 As MSComm
 
    Dim i As Long
 
    For Each objItem In colItems
        'имя порта
        'MsgBox$ objItem.AttachedTo
        'имя порта без первых трёх букв
        'MsgBox$ Right$(objItem.AttachedTo, (Len(objItem.AttachedTo) - 3))
        'назначаем порт скоторым будем работать
        Comm1.CommPort = Right$(objItem.AttachedTo, (Len(objItem.AttachedTo) - 3))
        'делаем установки элемента управления MS Comm
        Comm1.Settings = "9600,N,8,1"
        'используем весь буфер
        Comm1.InputLen = 0
        'открываем порт
        Comm1.PortOpen = True
        'посылаем команду модему
        Comm1.Output = "AT" + Chr$(13)
        'ожидаем возврата данных, задержка тут ламерская, но чисто что бы показать работу
        Do
            i = i + 1
            DoEvents
        Loop Until i = 1000000 Or Comm1.InBufferCount >= 2
        'читаем ответ "ОК" в последовательном порту
        Ответ_модема = Comm1.Input
        'закрываем порт
        Comm1.PortOpen = False
 
        Количество_модемов = Количество_модемов + 1
 
        If Len(Ответ_модема) <> 0 Then
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - " & Ответ_модема & vbCrLf
        Else
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - Ответ модема не ОК" & vbCrLf
        End If
 
    Next
 
    MsgBox$ "Количество модемов: " & Количество_модемов & vbCrLf & Результат
 
    Selection.TypeText Text:="Количество модемов: " & Количество_модемов & vbCrLf & Результат
 
End Sub


Ответ:
Количество модемов: 6
1 SoftV92 Data Fax Modem - COM3 - Ответ модема не ОК
2 SAMSUNG Mobile USB Modem - COM6 - Ответ модема не ОК
3 SAMSUNG Mobile USB Modem - COM4 - Ответ модема не ОК
4 HUAWEI Mobile Connect - 3G Modem - COM9 - Ответ модема не ОК
5 SAMSUNG Mobile USB Modem - COM12 - Ответ модема не ОК
6 HUAWEI Mobile Connect - 3G Modem - COM15 - Ответ модема не ОК

Вручную опросил SoftV92 Data Fax Modem говорит успешно, вот ересь!!!!!!!! потому и начинаешь приблуды придумывать
Ну есть внятный код?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37802572
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё с ног на голову, пробую следующий код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
 Sub Все_модемы()

'в случае возникновения ошибки перейти к метке ...
    On Error GoTo Nextt

    Dim strComputer As String
    strComputer = "."

    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")

    Dim objItem As Object

    Dim Количество_модемов As Byte
    Dim NumberPort As String
    Dim Результат As String
    Dim Ответ_модема As String

    Selection.EndKey Unit:=wdStory

    Dim Comm1 As MSComm

    Dim i As Long

    For Each objItem In colItems
        'имя порта
        MsgBox$ objItem.AttachedTo
        'имя порта без первых трёх букв
        MsgBox$ Right$(objItem.AttachedTo, (Len(objItem.AttachedTo) - 3))
        NumberPort = Right$(objItem.AttachedTo, (Len(objItem.AttachedTo) - 3))
        MsgBox$ NumberPort
        'назначаем порт с которым будем работать
        'Функция CLng(Conversion to Long) используется для приведения выражения в тип Long
        Comm1.CommPort = CLng(NumberPort)
        'если преобразовываемый тип данных String,тогда он должен быть числом
        'иначе возникает ошибка стадии выполнения - 13 (Type mismasth)
        'делаем установки элемента управления MS Comm
        Comm1.Settings = "9600,N,8,1"
        'используем весь буфер
        Comm1.InputLen = 0
        'открываем порт
        Comm1.PortOpen = True
        'посылаем команду модему
        Comm1.Output = "AT" + Chr$(13)
        'ожидаем возврата данных, задержка тут ламерская, но чисто что бы показать работу
        Do
            i = i + 1
            DoEvents
        Loop Until i = 1000000 Or Comm1.InBufferCount >= 2
        'читаем ответ "ОК" в последовательном порту
        Ответ_модема = Comm1.Input
        'закрываем порт
        Comm1.PortOpen = False

        Количество_модемов = Количество_модемов + 1

        If Len(Ответ_модема) <> 0 Then
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - " & Ответ_модема & vbCrLf
        Else
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - Ответ модема не ОК" & vbCrLf
        End If

Nextt:

        If Err.Number <> 0 Then
            MsgBox$ Err.Number & "-" & Err.Description
            Err.Number = 0
            'или Err.Clear - обнуляем ошибку
        End If
    Next

    MsgBox$ "Количество модемов: " & Количество_модемов & vbCrLf & Результат

    Selection.TypeText Text:="Количество модемов: " & Количество_модемов & vbCrLf & Результат

End Sub[//SSRC]

на первом проходе когда СОМ3 на строке
Comm1.CommPort = CLng(NumberPort)
получаю ошибку
91 Object variable or With block variable not set Переменная объекта или переменная блока With не задана
то есть меня заводит в блок
[SRC vba] If Err.Number <> 0 Then
            MsgBox$ Err.Number & "-" & Err.Description
            Err.Number = 0
            'или Err.Clear - обнуляем ошибку
        End If


и там сообщает об этой ошибке
А на втором проходе когда СОМ6 на этой же строке также ошибка 91, и главное уже прямо на строке стопорится и не уводит в указанный блок, что не работает ранее сказанное On Error GoTo Nextt??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37803555
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спрошу покороче, код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub aaaaaaaaa_модемы()

    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")

    Dim Comm1 As MSComm

    'назначаем порт с которым будем работать
    Comm1.CommPort = 3 'и здесь ошибка 91 имею ввиду СОМ3 он у меня есть
    '91 Object variable or With block variable not set Переменная объекта или переменная блока With не задана
    'что за ересь????

End Sub
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37803581
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа
Код: vbnet
1.
'что за ересь????

А что, у тебя в переменной Comm1 у тебя что-то есть? Бросай уже программирование, ну не по зубам оно тебе.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37803749
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаспрошу покороче, код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub aaaaaaaaa_модемы()

    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")

    Dim Comm1 As MSComm

    'назначаем порт с которым будем работать
    Comm1.CommPort = 3 'и здесь ошибка 91 имею ввиду СОМ3 он у меня есть
    '91 Object variable or With block variable not set Переменная объекта или переменная блока With не задана
    'что за ересь????

End Sub


Что делает оператор Dim?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37803819
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QValDЧто делает оператор Dim?Отвечу за Эндрю: в его понимании позволяет избежать ругани Option Explicit, который его два года назад заставили использовать, чтобы еще и не ловить ошибки с взятыми с потолка переменными и функциями.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804031
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До него пока что не дошло, что данные в переменных с потолка тоже не берутся, и посторонние объектные типы сами собой в проект не подключаются.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804630
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
> До него пока что не дошло, что данные в переменных с потолка тоже не берутся - тут Вы не правы
>посторонние объектные типы сами собой в проект не подключаются - тут Вы правы, и как его подключить? вроде сколько кодов на эту тему смотрел не увидел
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804635
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофатут Вы не правыеще как прав, если б понимал, не писал глупость
Dim Comm1 As MSComm
Comm1.CommPort = 3
с последующим сильным удивлением.
Как минимум задал бы вопрос "как инициализировать переменную", а не "что за ересь". Ересь это то, что ты пишешь.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804642
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, стоп Comm1.CommPort = 3 - там же точка есть и этому есть коммент - 'Назначаем порт скоторым будем работать, шо не так?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804645
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
назначаем ЧЕМУ? Что в переменной Comm1?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804655
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proназначаем ЧЕМУ? Что в переменной Comm1?
такой объект - порт называется (рассуждаю - вроде в Дим не должно быть объектов) ХЗ
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804657
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, начнём с минимума - "как инициализировать переменную"
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804690
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаОК, начнём с минимума - "как инициализировать переменную"начни с минимума. Почитай учебник. Что такое переменная, объектная переменная, объект, экземпляр объекта. Тогда вопрос отпадет сам собой.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804715
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, почитал, MSDN не помогает 546397 помогите хоть Вы
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804722
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем помочь? Написать учебник "основы ООП"? Это тебе дорого будет стоить.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804837
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофаспрошу покороче, код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub aaaaaaaaa_модемы()

    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")

    Dim Comm1 As MSComm

    'назначаем порт с которым будем работать
    Comm1.CommPort = 3 'и здесь ошибка 91 имею ввиду СОМ3 он у меня есть
    '91 Object variable or With block variable not set Переменная объекта или переменная блока With не задана
    'что за ересь????

End Sub



Попробую ответить образно
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub bbb_модемы()

    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")

    Dim Comm1 As MSComm

    If Comm1 Is Nothing Then
        MsgBox "Переменный 'Comm1' пустой, аднака.", vbExclamation, "Думайте, Эндрю, думайте!"
        Exit Sub
    Else
        'пробуем назначить порт с которым будем работать
        Comm1.CommPort = 3
    End If

End Sub

...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37804975
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, это называется приехали, печалька, и что это значит когда лицезрею сообщение
Переменный 'Comm1' пустой, аднака - как двигаться дальше?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37805159
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаскукотища, это называется приехали, печалька, и что это значит когда лицезрею сообщение
Переменный 'Comm1' пустой, аднака - как двигаться дальше?
создать экземпляр класса.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37805373
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QValD, трёх буковок не хватало New
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37805618
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаQValD, трёх буковок не хватало Newэх, если бы ты еще сам до этого дошел, а не с посторонней подсказки (
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808571
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProкатастрофаQValD, трёх буковок не хватало Newэх, если бы ты еще сам до этого дошел, а не с посторонней подсказки (
а разница то какая? да бог с ним, двигаюсь дальше
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Option Explicit
 
Sub Все_модемы()
  
    Dim objWMIService As Object
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
 
    Dim colItems As Object
    Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")
 
    Dim objItem As Object
 
    Dim Количество_модемов As Long
    Dim NumberPort As String
    Dim Результат As String
    Dim Ответ_модема As String
    Dim Comm1 As New MSComm
    Dim i As Long
 
    For Each objItem In colItems
        'имя порта
        MsgBox$ objItem.AttachedTo
        'имя порта без первых трёх букв
        MsgBox$ Right$(objItem.AttachedTo, (Len(objItem.AttachedTo) - 3))
        NumberPort = Right$(objItem.AttachedTo, (Len(objItem.AttachedTo) - 3))
        MsgBox$ NumberPort
        'назначаем порт с которым будем работать
        'Функция CLng(Conversion to Long) используется для приведения выражения в тип Long
        Comm1.CommPort = CLng(NumberPort)
        'если преобразовываемый тип данных String,тогда он должен быть числом
        'иначе возникает ошибка стадии выполнения - 13 (Type mismasth)
        'делаем установки элемента управления MS Comm
        Comm1.Settings = "9600,N,8,1"
        'используем весь буфер
        Comm1.InputLen = 0
        'открываем порт
        Comm1.PortOpen = True
        'посылаем команду модему
        Comm1.Output = "AT" + Chr$(13)
        'ожидаем возврата данных, задержка тут ламерская, но чисто что бы показать работу
        Do
            i = i + 1
            DoEvents
        Loop Until i = 1000000 Or Comm1.InBufferCount >= 2
        'читаем ответ "ОК" в последовательном порту
        Ответ_модема = Comm1.Input
        'закрываем порт
        Comm1.PortOpen = False
 
        Количество_модемов = Количество_модемов + 1
 
        If Len(Ответ_модема) <> 0 Then
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - " & Ответ_модема & vbCrLf
        Else
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - Ответ модема не ОК" & vbCrLf
        End If
  
        If Err.Number <> 0 Then
            MsgBox$ Err.Number & "-" & Err.Description
            Err.Number = 0
            'или Err.Clear - обнуляем ошибку
        End If
    Next
 
    MsgBox$ "Количество модемов: " & Количество_модемов & vbCrLf & Результат
 
    Selection.EndKey Unit:=wdStory
    Selection.TypeText Text:="Количество модемов: " & Количество_модемов & vbCrLf & Результат
 
End Sub



В цикл For Each objItem In colItems не заходит, потому, что objItem = Nothing
в тоже время я ведь не создал Set objItem =
как его создать? и этот господин Option Explicit не помогает
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808588
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаа разница то какая?а разница в том, что ты по сто раз спрашиваешь одно и то же. А если б сам один раз подумал, вместо того, чтобы копипастить, то и вопросов бы столько не было.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808591
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаВ цикл For Each objItem In colItems не заходит, потому, что objItem = Nothingпочитай справку или учебник о том, что такое коллекция и как работает For Each
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808602
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из прочитанного я понял, что надо сделать так:
Dim objItem As Variant, теперь имею переменную как Empty, теперь умный вопрос, как инициализировать переменную?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808604
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаумный вопрос, как инициализировать переменную?это не умный вопрос, это как раз идиотский вопрос. Иди изучать понятие коллекции и работу цикла For Each
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808613
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, всё же в книге просто
Набор действий – функций, содержащихся в блоке For Each…Next, выполняется
только в том случае, если группа содержит хотя бы один элемент
а как программно посчитать перед строкой кода типа
For Each objItem In colItems
сколько же objItem в colItems??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808639
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофаShocker.Pro, всё же в книге просто
Набор действий – функций, содержащихся в блоке For Each…Next, выполняется
только в том случае, если группа содержит хотя бы один элемент
а как программно посчитать перед строкой кода типа
For Each objItem In colItems
сколько же objItem в colItems??Эндрю, Вы и мёртвого расшевелите :)) Кто Вы по професии ?

У коллекции есть свойство Count и много других полезных свйств и методов.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808642
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаЭндрю, Вы и мёртвого расшевелите :)) Кто Вы по професии ?


Это к Шокеру, он всё знает
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808649
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если предположить что это утверждение верное
Код: vbnet
1.
2.
Dim Количество_модемов As Long
Количество_модемов = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_POTSModem").Count



то у меня зеро, так верное?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808665
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофаесли предположить что это утверждение верное
Код: vbnet
1.
2.
Dim Количество_модемов As Long
Количество_модемов = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_POTSModem").Count



то у меня зеро, так верное?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
' так тоже ноль ака зеро ?
Dim Количество_модемов As Long
dim wmi as object
dim myCollection as collection
set wmi = GetObject("winmgmts:\\.\root\cimv2")
myCollection = wmi.ExecQuery("Select * from Win32_POTSModem")
Количество_модемов = myCollection.Count
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808865
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, выделяет myCollection = и говорит, что аргумент не опционален, ересь какая-то
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808888
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> скукотища, выделяет myCollection = и говорит, что аргумент не опционален, ересь какая-то

Никакая, нах, не ересь - обшыблось я просто
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim Количество_модемов As Long
dim wmi as object
'dim myCollection as collection
dim myCollection as object
set wmi = GetObject("winmgmts:\\.\root\cimv2")
set myCollection = wmi.ExecQuery("Select * from Win32_POTSModem")
Количество_модемов = myCollection.Count


Эндрю, надеюсь Вы не врач.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37808978
ых
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаЭндрю, надеюсь Вы не врач.

Проктолог он.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37809127
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ыхскукотищаЭндрю, надеюсь Вы не врач.

Проктолог он.Отоларинголог. Который гланды удаляет через...
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37809277
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> Который гланды удаляет через...

Этот называется - проктостоматолог, потому, что там не только гланды обслуживаются

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37809426
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,
1 спасибо, пока в шоколаде
2 с врачом не угадали
3 позже двинусь дальше ....
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37809545
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа3 позже двинусь дальше ....
это угроза?))
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37810413
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QValDэто угроза?))
нет, повествование
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37810596
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> ...
> 3 позже двинусь дальше ....[/quot]

Напомнило "...Сейчас мы мееееедленно спууууустимся с горы, ... "
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37812758
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, ага, спуууууууустился, имею код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
Option Explicit

Sub aКоличество_модемов_все_модемы()

    Dim WMI As Object
    Set WMI = GetObject("winmgmts:\\.\root\cimv2")

    Dim myCollection As Object
    Set myCollection = WMI.ExecQuery("Select * from Win32_POTSModem")

    Dim Количество_модемов As Long
    'Количество_модемов = myCollection.Count

    Dim Результат As String
    Dim Ответ_модема As String

    Dim objItem As Object

    'если выделяет "Comm As New MSComm" и сообщение User-defined type not defined
    'значит в Tools References... нужно поставить опцию у Microsoft Comm Control 6.0
    Dim Comm As New MSComm

    Dim NumberCommPort As Long
    Dim i As Long

    For Each objItem In myCollection
        'имя порта
        'MsgBox$ objItem.AttachedTo
        'имя порта без первых трёх букв
        'Mid$(String,Start,[Length])
        'MsgBox$ Mid$(objItem.AttachedTo, 4)
        'оператор для отлова ошибок, указывает, что при возникновении ошибки нужно переходить к следующей строке кода
        On Error Resume Next
        'Функция CLng(Expression) используется для приведения выражения в тип Long
        'Если Expression имеет тип данных String,то он должен быть числом,иначе возникает ошибка стадии выполнения Type mismasth
        NumberCommPort = CLng(Mid$(objItem.AttachedTo, 4))
        If Err.Number <> 0 Then
            MsgBox$ _
                    Err.Number & "-" & Err.Description, vbOKOnly, _
                               "Внимание"
            'перейти к метке с именем ...
            GoTo Конец
        End If
        'оператор для отлова ошибок, указывает, что при возникновении ошибки нужно переходить к следующей строке кода
        On Error Resume Next
        'назначаем порт с которым будем работать
        Comm.CommPort = NumberCommPort
        'делаем установки элемента управления MS Comm
        Comm.Settings = "9600,N,8,1"
        'используем весь буфер
        Comm.InputLen = 0
        'открываем порт
        Comm.PortOpen = True
        'посылаем команду модему
        Comm.Output = "AT" + Chr$(13)
        'ожидаем возврата данных, задержка тут ламерская, но чисто что бы показать работу
        Do
            i = i + 1
            DoEvents
        Loop Until i = 1000000 Or Comm.InBufferCount >= 2
        MsgBox$ "|"
        'читаем ответ "ОК" в последовательном порту
        Ответ_модема = Comm.Input
        'закрываем порт
        Comm.PortOpen = False

        Количество_модемов = Количество_модемов + 1

        If Len(Ответ_модема) <> 0 Then
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - " & Ответ_модема & vbCrLf
        Else
            Результат = Результат & Количество_модемов & " " & objItem.Model & " - " & objItem.AttachedTo & " - Ответ модема не ОК" & vbCrLf
        End If

    Next objItem

    MsgBox$ "Количество модемов: " & Количество_модемов & vbCrLf & Результат

    Selection.TypeText Text:="Количество модемов: " & Количество_модемов & vbCrLf & Результат

Конец:

    'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
    Set WMI = Nothing
    Set myCollection = Nothing

End Sub



на первой интеракции, где СОМ3, который рабочий - всё ОК
вторая интеракция, где СОМ6, который на вкладке Панель управления Телефон Модемы указан как Отсутствует не дождаться выполнения строки MsgBox$ "|" и как быть??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37812887
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> не дождаться выполнения строки MsgBox$ "|" и как быть??

Взять тайм-аут, набраться терпения/сходить ("на пиво"|в театр)/удалить VB IDE нафиг/etc.
многабукаф
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
' ==============================================================
' script:     modem01.vbs 26-MAY-2012 by скукотища
' purpose:    enumerates POTS modems' status/parameters
' language:   VBScript
' parameters: no
' host:       script.exe
' ==============================================================
' http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx
' ==============================================================
option explicit

const MAX_ConfigManagerErrorCode=&H1F&
const MAX_Availability=&H11
const NA="N/A"

dim wmi
dim mdms,mdm
dim aAvailability, aConfigManagerError
dim sep, banner

Set wmi  = getobject("winmgmts:\\.\root\cimv2")
set mdms = wmi.execquery("select * from Win32_POTSModem")

if mdms.count>0 then
  call setpdb()
  wscript.echo "modems count: "& mdms.count
  for each mdm in mdms
    wscript.echo sep
    wscript.echo "DeviceType:             "& mdm.DeviceType
    
    wscript.echo "Caption:                "& mdm.Caption
    wscript.echo "Description:            "& mdm.Description
    
    wscript.echo "AttachedTo:             "& mdm.AttachedTo
    wscript.echo "DeviceLoader:           "& mdm.DeviceLoader
    if mdm.Availability <=MAX_Availability then
    wscript.echo "Availability:           ("& tohex(mdm.Availability) &") "& aAvailability(mdm.Availability)
    else
    wscript.echo "Availability:           "& NA
    end if
    if mdm.ConfigManagerErrorCode<=MAX_ConfigManagerErrorCode then
    wscript.echo "ConfigManagerErrorCode: ("& tohex(mdm.ConfigManagerErrorCode) &") "& aConfigManagerError(mdm.ConfigManagerErrorCode)
    else
    wscript.echo "ConfigManagerErrorCode: "& NA
    end if
  next
else
  wscript.echo "modems not found"
end if
wscript.echo banner
wscript.quit


function tohex(i):tohex="0x"& hex(i):end function

sub setpdb()
  aAvailability= _
  array("WTF?..." _
  ,"Other" _
  ,"Unknown" _
  ,"Running or Full Power" _
  ,"Warning" _
  ,"In Test" _
  ,"Not Applicable" _
  ,"Power Off" _
  ,"Off Line" _
  ,"Off Duty" _
  ,"Degraded" _
  ,"Not Installed" _
  ,"Install Error" _
  ,"Power Save - Unknown"& vbcrlf & space(24) &"The device is known to be in a power save mode, but its exact status is unknown." _
  ,"Power Save - Low Power Mode"& vbcrlf & space(24) &"The device is in a power save state but still functioning, and may exhibit degraded performance." _
  ,"Power Save - Standby"& vbcrlf & space(24) &"The device is not functioning, but could be brought to full power quickly." _
  ,"Power Cycle" _
  ,"Power Save - Warning"& vbcrlf & space(24) &"The device is in a warning state, though also in a power save mode.")
  
  aConfigManagerError= array( _
  "Device is working properly." _
  ,"Device is not configured correctly." _
  ,"Windows cannot load the driver for this device." _
  ,"Driver for this device might be corrupted, or the system may be low on memory or other resources." _
  ,"Device is not working properly."& vbcrlf & space(24) &"One of its drivers or the registry might be corrupted." _
  ,"Driver for the device requires a resource that Windows cannot manage." _
  ,"Boot configuration for the device conflicts with other devices." _
  ,"Cannot filter." _
  ,"Driver loader for the device is missing." _
  ,"Device is not working properly."& vbcrlf & space(24) &"The controlling firmware is incorrectly reporting the resources for the device." _
  ,"Device cannot start." _
  ,"Device failed." _
  ,"Device cannot find enough free resources to use." _
  ,"Windows cannot verify the device's resources." _
  ,"Device cannot work properly until the computer is restarted." _
  ,"Device is not working properly due to a possible re-enumeration problem." _
  ,"Windows cannot identify all of the resources that the device uses." _
  ,"Device is requesting an unknown resource type." _
  ,"Device drivers must be reinstalled." _
  ,"Failure using the VxD loader." _
  ,"Registry might be corrupted." _
  ,"System failure."& vbcrlf & space(24) &"If changing the device driver is ineffective, see the hardware documentation."& vbcrlf & space(24) &"Windows is removing the device." _
  ,"Device is disabled." _
  ,"System failure."& vbcrlf & space(24) &"If changing the device driver is ineffective, see the hardware documentation." _
  ,"Device is not present, not working properly, or does not have all of its drivers installed." _
  ,"Windows is still setting up the device." _
  ,"Windows is still setting up the device." _
  ,"Device does not have valid log configuration." _
  ,"Device drivers are not installed." _
  ,"Device is disabled."& vbcrlf & space(24) &"The device firmware did not provide the required resources." _
  ,"Device is using an IRQ resource that another device is using." _
  ,"Device is not working properly."& vbcrlf & space(24) &"Windows cannot load the required device drivers.")
  
  sep   = vbcrlf & string(23,"=") &" "& string(55,"=")
  banner= vbcrlf &"http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx"& vbcrlf
end sub


...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37812996
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,
Улибнуло, скопировал, вставляю в ВБА, отлуп и мессага
Too many line continuations
Слишком много продолжений линии
ну точно многабукафф и как быть???
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37813005
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эндрю,
не пихайте "что попало" в VBA во что бы то ни было.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37813047
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, вставил в ВБ6 - тоже самое, мне ещё какой-то язык выучить надо?? я и так двумя влядею в совершенстве :)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37813049
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-Доктор, когда я делю так, - мне больно.
-Ну не делайте ТАК.

Эндрю, посмотрите на то, ЧТО вы копипастите и пытаетесь запустить ...
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37813060
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, ну вставить в Блокнот, сохранить с расширением vbs большого ума не надо, нет такого же только для ВБ(А) с перламутровыми пуговицами??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37813062
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> нет ли такого же только для ВБ(А) с перламутровыми пуговицами??

Нету. Зачем оно мне ?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37822751
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только что прочёл
Если такая приблуда непростая, "ну озвучьте же цену!"
к чему это я. На 4х сайтах в фрилансе выложил
нужен код на вб(а) как программно вывести список модемов на компьютере и их состояния, строго!!!!! с вкладки панель управления, телефон и модем, программно она открывается так:

'control.exe - служит для работы с панелью управления
'telephon.cpl - оснастка панели управления для телефонии
'1 - номер вкладки, которую нужно активировать при открытии (отсчет с нуля)
'Shell "control.exe telephon.cpl,,1"

'закрыть вкладку
SendMessage GetForegroundWindow, &H10, 0&, 0&

В ответ тишина, я и говорю - Если такая приблуда непростая, "ну озвучьте же цену!"
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37822786
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А знаешь, почему даже на фрилансе не отвечают?
Потому что "кто сейчас будет заморачиваться с модемами?", ибо только на поиск железа, установку, тестирование уйдет столько времени... плюс надо же вам будет "разъяснить, как"; что вменяемый специалист уже в первые же три минуты после осмысления пойдет сделать что-нить на .NET или WebForms...
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37822798
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,
> .NET или WebForms
.NET - слышал и видел
WebForms - не пойму что это?
не ну если можно так
по аналогии из Ворда толкать
Код: vbnet
1.
2.
3.
4.
Dim nButton As String
    nButton = "89028912680"
    '1 вариант
    Shell "D:VB.NET.exe " & nButton, vbNormalFocus


где VB.NET.exe скомпилирован на VB.NET то можно и так
>ибо только на поиск железа
что его искать-то на указанной вкладке всё уже достоверно сказано о всех состояниях
никто не говорит о том что нужно соединение сделать
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37822807
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
многабукаф
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
' осталось только скопипастить в VBA...
Option Explicit

Dim aAvailability, aConfigManagerError
Dim sep$, banner$

Sub modems_SpecialForCE()
    Const MAX_ConfigManagerErrorCode& = &H1F&
    Const MAX_Availability% = &H11
    Const NA$ = "N/A"
    
    Dim wmi As Object
    Dim mdms As Object, mdm As Object
    
    Set wmi = GetObject("winmgmts:\\.\root\cimv2")
    Set mdms = wmi.execquery("select * from Win32_POTSModem")
    
    If mdms.Count > 0 Then
      Call setpdb
      Debug.Print banner
      Debug.Print "modems count: " & mdms.Count
      For Each mdm In mdms
        Debug.Print sep
        Debug.Print "DeviceType:             " & mdm.DeviceType
        
        Debug.Print "Caption:                " & mdm.Caption
        Debug.Print "Description:            " & mdm.Description
        
        Debug.Print "AttachedTo:             " & mdm.AttachedTo
        Debug.Print "DeviceLoader:           " & mdm.DeviceLoader
        If mdm.Availability <= MAX_Availability Then
        Debug.Print "Availability:           (" & tohex(mdm.Availability) & ") " & aAvailability(mdm.Availability)
        Else
        Debug.Print "Availability:           " & NA
        End If
        If mdm.ConfigManagerErrorCode <= MAX_ConfigManagerErrorCode Then
        Debug.Print "ConfigManagerErrorCode: (" & tohex(mdm.ConfigManagerErrorCode) & ") " & aConfigManagerError(mdm.ConfigManagerErrorCode)
        Else
        Debug.Print "ConfigManagerErrorCode: " & NA
        End If
      Next mdm
      Set mdm = Nothing
      Call clearpdb
    Else
      Debug.Print "modems not found"
    End If
    Set mdms = Nothing: Set wmi = Nothing
End Sub

Function tohex(i): tohex = "0x" & Hex(i): End Function

Sub setpdb()
    aAvailability = _
    Array("WTF?..." _
    , "Other", "Unknown" _
    , "Running or Full Power", "Warning" _
    , "In Test", "Not Applicable" _
    , "Power Off", "Off Line" _
    , "Off Duty", "Degraded" _
    , "Not Installed", "Install Error" _
    , "Power Save - Unknown" & vbCrLf & Space(24) & "The device is known to be in a power save mode, but its exact status is unknown." _
    , "Power Save - Low Power Mode" & vbCrLf & Space(24) & "The device is in a power save state but still functioning, and may exhibit degraded performance." _
    , "Power Save - Standby" & vbCrLf & Space(24) & "The device is not functioning, but could be brought to full power quickly." _
    , "Power Cycle" _
    , "Power Save - Warning" & vbCrLf & Space(24) & "The device is in a warning state, though also in a power save mode.")
    
      aConfigManagerError = Array( _
    "Device is working properly.", "Device is not configured correctly." _
    , "Windows cannot load the driver for this device.", "Driver for this device might be corrupted, or the system may be low on memory or other resources." _
    , "Device is not working properly." & vbCrLf & Space(24) & "One of its drivers or the registry might be corrupted.", "Driver for the device requires a resource that Windows cannot manage." _
    , "Boot configuration for the device conflicts with other devices.", "Cannot filter." _
    , "Driver loader for the device is missing.", "Device is not working properly." & vbCrLf & Space(24) & "The controlling firmware is incorrectly reporting the resources for the device." _
    , "Device cannot start.", "Device failed." _
    , "Device cannot find enough free resources to use.", "Windows cannot verify the device's resources." _
    , "Device cannot work properly until the computer is restarted.", "Device is not working properly due to a possible re-enumeration problem." _
    , "Windows cannot identify all of the resources that the device uses.", "Device is requesting an unknown resource type." _
    , "Device drivers must be reinstalled.", "Failure using the VxD loader." _
    , "Registry might be corrupted." _
    , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." & vbCrLf & Space(24) & "Windows is removing the device." _
    , "Device is disabled." _
    , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." _
    , "Device is not present, not working properly, or does not have all of its drivers installed." _
    , "Windows is still setting up the device." _
    , "Windows is still setting up the device." _
    , "Device does not have valid log configuration." _
    , "Device drivers are not installed." _
    , "Device is disabled." & vbCrLf & Space(24) & "The device firmware did not provide the required resources." _
    , "Device is using an IRQ resource that another device is using." _
    , "Device is not working properly." & vbCrLf & Space(24) & "Windows cannot load the required device drivers.")
  
    sep = vbCrLf & String(23, "=") & " " & String(55, "=")
    banner = vbCrLf & "http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx" & vbCrLf
End Sub

Sub clearpdb()
    Erase aAvailability, aConfigManagerError
    sep = ""
    banner = ""
End Sub

' Ответы на вопросы типа "а вот ..., - что за ересь?", искать в msdn и ms technet.
' Ответ на вопрос "MSDN, MS Technet - что за звери?" спросить у гугла, с ним Вы уже знакомы.

...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37822818
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, спасибо!!!!!! проверю отпишусь
вб.нет русский есть? можете скинуть? откуда взять можно только не мдсн там фиг что поймёшь, куча версий, положительный момент пока вб.нет юзаю вб6 отдыхает :)
вб6 - Вашим пользуюсь
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823072
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, проверил, прилагаю файл, там реальный скрин вкладки и ответ от Вашей проги, где я увидел, что есть 6 модемов и они подключены к портам ..., на скрине всё по другому, сказано по русски Отсутствует
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823080
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, вот он http://files.mail.ru/A5YLQG
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823090
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эндрю,
выкладывайте файлы в форум. Мне, например, лень лазить по файлопомойкам.

Вот что поучаю у себя:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx

modems count: 3

======================= =======================================================
DeviceType:             Internal Modem
Caption:                Motorola SM56 Data Fax Modem
Description:            Motorola SM56 Data Fax Modem
AttachedTo:             COM3
DeviceLoader:           
Availability:           N/A
ConfigManagerErrorCode: (0x16) Device is disabled.

======================= =======================================================
DeviceType:             External Modem
Caption:                Стандартный модем 33600 bps
Description:            Стандартный модем 33600 bps
AttachedTo:             COM40
DeviceLoader:           
Availability:           N/A
ConfigManagerErrorCode: (0x16) Device is disabled.

======================= =======================================================
DeviceType:             External Modem
Caption:                HUAWEI Mobile Connect - 3G Modem
Description:            HUAWEI Mobile Connect - 3G Modem
AttachedTo:             COM4
DeviceLoader:           
Availability:           N/A
ConfigManagerErrorCode: N/A

...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823119
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, что можно сказать, буду крутить вертеть, нагрузку подавать и если код
Код: vbnet
1.
2.
3.
4.
5.
If ConfigManagerErrorCode = "N/A" Then
Modems = "Отсутствует"
ElseIf ConfigManagerErrorCode = "(0x16) Device is disabled."  Then
Modems = "Не работает"
End If


будет чётко работать, то я в шоколаде и вб.нет не придётся учить, спасибо!!!
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823177
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эндрю,
что можно сказать...
Вы так и не дали себе труда посмотреть информацию по ссылке, которую я добавлял в "баннер"...
{Пичалька}
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823186
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, там же на иностранном языке
сделал:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
Option Explicit

Private Declare Function GetForegroundWindow Lib "user32" () As Long

Dim aAvailability, aConfigManagerError
Dim sep$, banner$
'

Sub modems_SpecialForCE()
'http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx

    Dim ModemNone As String
    'Отсутствует - None
    ModemNone = ""

    Dim CountModemNone As Long
    'Отсутствует - None
    CountModemNone = 0

    Dim ModemWork As String
    'Работает - Works
    ModemWork = ""

    Dim CountModemWork As Long
    'Работает - Works
    CountModemWork = 0

    Dim ModemDoesNotWork As String
    'Не работает - Does Not Work
    ModemDoesNotWork = ""

    Dim CountModemDoesNotWork As Long
    'Не работает - Does Not Work
    CountModemDoesNotWork = 0

    Const MAX_ConfigManagerErrorCode& = &H1F&
    Const MAX_Availability% = &H11
    Const NA$ = "N/A"

    Dim wmi As Object
    Set wmi = GetObject("winmgmts:\\.\root\cimv2")

    Dim mdms As Object, mdm As Object
    Set mdms = wmi.execquery("select * from Win32_POTSModem")

    If mdms.Count > 0 Then

        'выполнить макрос с именем ...
        Call setpdb

        'Debug.Print banner
        'Debug.Print "modems count: " & mdms.Count

        For Each mdm In mdms

            'Debug.Print sep
            'Debug.Print "DeviceType:             " & mdm.DeviceType

            'Debug.Print "Caption:                " & mdm.Caption
            'Debug.Print "Description:            " & mdm.Description

            'Debug.Print "AttachedTo:             " & mdm.AttachedTo
            'Debug.Print "DeviceLoader:           " & mdm.DeviceLoader

            If mdm.Availability <= MAX_Availability Then
                'Debug.Print "Availability:           (" & tohex(mdm.Availability) & ") " & aAvailability(mdm.Availability)
                'отсутствующие модемы
                CountModemNone = CountModemNone + 1
                ModemNone = Trim$(ModemNone & " " & ModemNone)
            Else
                'Debug.Print "Availability:           " & NA
            End If

            If mdm.ConfigManagerErrorCode <= MAX_ConfigManagerErrorCode Then
                'Debug.Print "ConfigManagerErrorCode: (" & tohex(mdm.ConfigManagerErrorCode) & ") " & aConfigManagerError(mdm.ConfigManagerErrorCode)
                'рабочие модемы
                CountModemWork = CountModemWork + 1
                ModemWork = Trim$(ModemWork & " " & mdm.Caption & " - " & mdm.AttachedTo)
            Else
                'Debug.Print "ConfigManagerErrorCode: " & NA
                'не рабочие модемы
                CountModemDoesNotWork = CountModemDoesNotWork + 1
                ModemDoesNotWork = Trim$(ModemDoesNotWork & " " & ModemDoesNotWork)
            End If

        Next mdm

        Set mdm = Nothing

        'выполнить макрос с именем ...
        Call clearpdb

        MsgBox$ _
                "Общее количество модемов " & mdms.Count & vbCrLf & vbCrLf & _
                                            "Рабочие модемы:" & vbCrLf & _
                                            "Количество: " & CountModemWork & vbCrLf & _
                                            ModemWork & vbCrLf & vbCrLf & _
                                            "Не рабочие модемы:" & vbCrLf & _
                                            "Количество: " & CountModemDoesNotWork & vbCrLf & _
                                            ModemDoesNotWork & vbCrLf & vbCrLf & _
                                            "Отсутствующие модемы:" & vbCrLf & _
                                            "Количество: " & CountModemNone & vbCrLf & _
                                            ModemNone
    Else
        '1
        'control.exe - служит для работы с панелью управления
        'telephon.cpl - оснастка панели управления для телефонии
        '1 - номер вкладки, которую нужно активировать при открытии (отсчет с нуля)
        Shell "control.exe telephon.cpl,,1"

        '2
        'можно и так сразу открывается вторая вкладка
        'Shell "control.exe modem.cpl"

        '3
        'Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus

        'MyID - идентификатор процесса
        'MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)

        MsgBox$ "Модемы отсутствуют"

        'закрыть вкладку
        SendMessage GetForegroundWindow, &H10, 0&, 0&
    End If

    Set mdms = Nothing
    Set wmi = Nothing

End Sub

Function tohex(i): tohex = "0x" & Hex(i): End Function

Sub setpdb()
    aAvailability = _
    Array("WTF?..." _
  , "Other", "Unknown" _
                  , "Running or Full Power", "Warning" _
                  , "In Test", "Not Applicable" _
                  , "Power Off", "Off Line" _
                  , "Off Duty", "Degraded" _
                  , "Not Installed", "Install Error" _
                  , "Power Save - Unknown" & vbCrLf & Space(24) & "The device is known to be in a power save mode, but its exact status is unknown." _
                  , "Power Save - Low Power Mode" & vbCrLf & Space(24) & "The device is in a power save state but still functioning, and may exhibit degraded performance." _
                  , "Power Save - Standby" & vbCrLf & Space(24) & "The device is not functioning, but could be brought to full power quickly." _
                  , "Power Cycle" _
                  , "Power Save - Warning" & vbCrLf & Space(24) & "The device is in a warning state, though also in a power save mode.")

    aConfigManagerError = Array( _
                          "Device is working properly.", "Device is not configured correctly." _
                        , "Windows cannot load the driver for this device.", "Driver for this device might be corrupted, or the system may be low on memory or other resources." _
                        , "Device is not working properly." & vbCrLf & Space(24) & "One of its drivers or the registry might be corrupted.", "Driver for the device requires a resource that Windows cannot manage." _
                        , "Boot configuration for the device conflicts with other devices.", "Cannot filter." _
                        , "Driver loader for the device is missing.", "Device is not working properly." & vbCrLf & Space(24) & "The controlling firmware is incorrectly reporting the resources for the device." _
                        , "Device cannot start.", "Device failed." _
                        , "Device cannot find enough free resources to use.", "Windows cannot verify the device's resources." _
                        , "Device cannot work properly until the computer is restarted.", "Device is not working properly due to a possible re-enumeration problem." _
                        , "Windows cannot identify all of the resources that the device uses.", "Device is requesting an unknown resource type." _
                        , "Device drivers must be reinstalled.", "Failure using the VxD loader." _
                        , "Registry might be corrupted." _
                        , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." & vbCrLf & Space(24) & "Windows is removing the device." _
                        , "Device is disabled." _
                        , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." _
                        , "Device is not present, not working properly, or does not have all of its drivers installed." _
                        , "Windows is still setting up the device." _
                        , "Windows is still setting up the device." _
                        , "Device does not have valid log configuration." _
                        , "Device drivers are not installed." _
                        , "Device is disabled." & vbCrLf & Space(24) & "The device firmware did not provide the required resources." _
                        , "Device is using an IRQ resource that another device is using." _
                        , "Device is not working properly." & vbCrLf & Space(24) & "Windows cannot load the required device drivers.")

    sep = vbCrLf & String(23, "=") & " " & String(55, "=")
    banner = vbCrLf & "http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx" & vbCrLf

End Sub

Sub clearpdb()

'очищаем память, Erase - Стирать
    Erase aAvailability, aConfigManagerError
    sep = ""
    banner = ""

End Sub



проверьте пжл а то у меня не работающих нет
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823203
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> сделал:
> {многабукаф}
> проверьте пжл а то у меня не работающих нет

Идти сюда .
и до усра полного понимания вчитываться в описание свойств Availability, ConfigManagerErrorCode.
Если понимание по-прежнему останется на уровне :
> там же на иностранном языке
то скормить описание переводику. Благо на сегодняшний день бесплатных онлайновых переводчиков хоть жопой жуй предостаточно.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823301
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, прочитать я всегда успею, а Вы код от сегодня, 15:27 пробовали? а то от того что сказано в посте от сегодня, 13:24 я отрёкся
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823460
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> прочитать я всегда успею...

Прочитаете, осмыслите, приходите, - побеседуем.

ЗЫ: код "от сегодня, 15:27" не пробовал. И не собираюсь. Мне не надо работать с модемами. Это Вам надо.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37823461
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, тогда до встреч
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37828375
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прочитал
>код "от сегодня, 15:27" не пробовал. И не собираюсь
тогда что вызвало страх??
вот как я всё ещё лучше осознал
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
If mdm.Availability <= MAX_Availability Then
            'отсутствующие модемы
            Else
            If mdm.ConfigManagerErrorCode <= MAX_ConfigManagerErrorCode Then
            'рабочие модемы
            Else
            'не рабочие модемы
            End If
            End If


так??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37828454
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа,
не так.
снова многабукаф
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
If mdm.ConfigManagerErrorCode <= MAX_ConfigManagerErrorCode Then
    ' описание "кода ошибки" менеджера конфигурации есть на MSDN ( ссылка на страницу в моем коде )

    ' вывод "рабочий" модем или "нерабочий" можно сделать, проанализировав значение ConfigManagerErrorCode

    If mdm.Availability <= MAX_Availability Then
        ' описание "кода доступности" есть на MSDN ( ссылка на страницу в моем коде )
        ' исключение - код 0 (у меня интерпретирован как 'WTF?...' )
        
        ' выводы про "доступность" модема делать по значению Availability
    Else
        ' описание "кода доступности" отсутствует на MSDN ( ссылка на страницу в моем коде )
        ' скорее всего он NULL (не проверял)

        ' модем "не доступен"
    End If

Else
    ' описание "кода ошибки" менеджера конфигурации отсутствует на MSDN 
    ' скорее всего он NULL (не проверял)

    ' "нерабочий" модем
End If

...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37828464
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, видимо надо ещё мельче шажки делать
я так понял есть состояния
отсутствует - кстати как добиться чтобы на вкладке у меня так отобразилось?
не работает
иначе
работает
то есть три, так??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37828496
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> я так понял есть состояния

Маладец.

> отсутствует - кстати как добиться чтобы на вкладке у меня так отобразилось?
Подключить, настроить, поработать(опционально), отключить (физически).

> то есть три, так??
то есть не так. Тынц, в который раз. Свойство Availability.
Если лень идти по ссылке, - в коде 12619471 массив aAvailability, сформирован из описания с той страницы.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37828504
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, да прочёл я
Availability -- Доступно, возможности, варианты

Data type: uint16
Access type: Read-only
Availability and status of the device. Inherited from CIM_LogicalDevice.

Value - значение (в смысле - что показывает, сколько)
Meaning - что означает, как трактовать

1 (0x1)
Other ДРУГОЕ (подразумевается -- то, что не вошло в предыдущие
разделы, не было освещено в предыдущих вопросах, все остальное)

2 (0x2)
Unknown НЕИЗВЕСТНОЕ (может быть ошибка, устройство, хз что еще)

3 (0x3)
Running or Full Power РАБОТАЕТ или НА ПОЛНОЙ МОЩНОСТИ

4 (0x4)
Warning ПРЕДУПРЕЖДЕНИЕ, ОСТОРОЖНО!

5 (0x5)
In Test ТЕСТИРУЕТСЯ

6 (0x6)
Not Applicable НЕВОЗМОЖНО ПРИМЕНИТЬ (возможно, какие-то установки? Или
параметры?)

7 (0x7)
Power Off ВЫКЛЮЧЕНО

8 (0x8)
Off Line НЕТ СВЯЗИ, НЕТ СОЕДИНЕНИЯ

9 (0x9)
Off Duty ВНЕ СЛУЖБЫ, НЕ ЗАГРУЖЕН РАБОТОЙ или нагрузкой

10 (0xA)
Degraded ДЕГРАДИРОВАННЫЙ хз, может - ПОНИЖЕННЫЙ В РАНГЕ или что-то
подобное. Что-то стало ниже уровнем, чего-то стало меньше

11 (0xB)
Not Installed НЕ ИНСТАЛЛИРОВАН

12 (0xC)
Install Error ОШИБКА ИНСТАЛЛЯЦИИ

13 (0xD)
Power Save - Unknown
The device is known to be in a power save mode, but its exact status is unknown.
РЕЖИМ СОХРАНЕИЯ ЭНЕРГИИ (экономичный режим) -- ЧТО-ТО НЕ ТАК
Устройство распознано и могло бы быть в экономичном режиме, но
неизвестно, в каком режиме устройство находится в данное время

14 (0xE)
Power Save - Low Power Mode
The device is in a power save state but still functioning, and may
exhibit degraded performance.
Экономичный режим -- низкий уровень потребления энергии
Устройство в экономичном режиме, но работает (функционирует), в связи
с этим (т.е. режимом экономии) производительность может быть понижена

15 (0xF)
Power Save - Standby
The device is not functioning, but could be brought to full power quickly.
Режим экономии -- Режим ожидания. Мы не умерли, просто спим одним глазом.
Устройство не работает, но по первому звуку трубы быстро встанет в
строй. Ну, как твой телик ночью

16 (0x10)
Power Cycle
Круговой (кольцевой, замкнутый на себя, после конца-сразу все сначала,
безостановочный) режим

17 (0x11)
Power Save - Warning
The device is in a warning state, though also in a power save mode.
Внимание!
Устройство в экономичном режиме, но что-то не так (с экономичным
режимом, самим устройством)


понятия не добавилось, печалька

>> отсутствует - кстати как добиться чтобы на вкладке у меня так отобразилось?
ой нет, нужно-как добиться чтобы на вкладке у отобразилось не работает?
вроде простой вопрос но у меня или отсутствует или работает
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37828521
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> понятия не добавилось, ...

Чего так ? Перевод мене-более адекватный. С чем проблема ?

> ой нет, нужно-как добиться чтобы на вкладке у отобразилось не работает?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37828524
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, тайм аут, день думаю, спасибо
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37833867
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,
подумал чуть больше, вот сюда я не лазил никогда:
Панель управления > Система > Оборудование > Диспетчер устройств > Модемы
там оказывается ещё лучше инфа чем на вкладке
Панель управления > Телефон и модемы > Модемы
Можно оттуда считать данные? как?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37833910
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> подумал чуть больше, вот сюда я не лазил никогда:
> Панель управления > Система > Оборудование > Диспетчер устройств > Модемы

Блин ... научил плохому :(
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37834335
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,
>Блин ... научил плохому :(
чего так сразу? или я юмора не понял
вот выродил, пжл посмотрите, проверял работает как надо
соль тут
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        For Each mdm In mdms

            ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)

            If ConfigManagerErrorCode = "0x16" Then
                'не рабочие модемы
                CountModemDoesNotWork = CountModemDoesNotWork + 1
                ModemDoesNotWork = Trim$(ModemDoesNotWork & vbCrLf & mdm.Caption)
            ElseIf ConfigManagerErrorCode = "0x0" Then
                'рабочие модемы
                CountModemWork = CountModemWork + 1
                ModemWork = Trim$(ModemWork & vbCrLf & mdm.Caption & " - " & mdm.AttachedTo)
            ElseIf ConfigManagerErrorCode = "0x" Then
                'отсутствующие модемы
                CountModemNone = CountModemNone + 1
                ModemNone = Trim$(ModemNone & vbCrLf & mdm.Caption)
            End If

        Next mdm


пойдёт? всегда сработает и разграничит их по полочкам, кто есть кто?
если пойдёт, тогда не вижу смысла в условиях
Код: vbnet
1.
2.
3.
   If mdm.Availability <= MAX_Availability Then

            If mdm.ConfigManagerErrorCode <= MAX_ConfigManagerErrorCode Then



так можно с вкладки
Панель управления > Система > Оборудование > Диспетчер устройств > Модемы
считать?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37834549
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> пойдёт? всегда сработает и разграничит их по полочкам, кто есть кто?

Не пойдет. Не сработает НИКОГДА. Ответ на "почему?", - там где и раньше .


> ... не вижу смысла в условиях
Код: vbnet
1.
2.
3.
  If mdm.Availability <= MAX_Availability Then
  
  If mdm.ConfigManagerErrorCode <= MAX_ConfigManagerErrorCode Then

Всё там-же , описания свойств ConfigManagerErrorCode ( мин.=0, макс.=31 ), Availability ( мин.=1, макс.=17 ). Если получили значение выходящие за эти границы, то ...


> так можно с вкладки
>Панель управления > Система > Оборудование > Диспетчер устройств > Модемы считать?

Можно. По дескиптору окна получить содержимое, "распарсить", и "будет Вам щасте".
Но зачем так сложно ?
Целесообразнее узнать, откуда/каким образом данный апплет получает данные ?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37834556
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,
>Не пойдет. Не сработает НИКОГДА
я вроде своим глазам верю, работает
>Целесообразнее узнать, откуда/каким образом данный апплет получает данные
как?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37834591
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа,
> я вроде своим глазам верю, работает

Пардон. Не увидел строку
Код: vbnet
1.
2.
3.
           ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)

            If ConfigManagerErrorCode = "0x16" Then

Да, так иногда будет правильный результат.

Отять же, лишнее преобразование в строку
Код: vbnet
1.
ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)


зачем оно? Я делал для удобочитаемого вывода в консоль. А Вы для чего ?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
        For Each mdm In mdms

select case mdm.ConfigManagerErrorCode
  case 0
    ' типа рабочий
    ' не лишне бу проверить свойство Availability
  case 1
    ' тип рабочий(?), но неправльно сконфигурирован
  case 2
    ' ...
    ' и т.д.
  case 31
  
  case else
    '  ConfigManagerErrorCode получить не удалось(?) или что-то ещё случилось нехорошее...
end select
' ЗЫ некоторые CASE в рамках Вашей задачи можно объединить

'            ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)
'
'            If ConfigManagerErrorCode = "0x16" Then
'                'не рабочие модемы
'                CountModemDoesNotWork = CountModemDoesNotWork + 1
'                ModemDoesNotWork = Trim$(ModemDoesNotWork & vbCrLf & mdm.Caption)
'            ElseIf ConfigManagerErrorCode = "0x0" Then
'                'рабочие модемы
'                CountModemWork = CountModemWork + 1
'                ModemWork = Trim$(ModemWork & vbCrLf & mdm.Caption & " - " & mdm.AttachedTo)
'            ElseIf ConfigManagerErrorCode = "0x" Then
'                'отсутствующие модемы
'                CountModemNone = CountModemNone + 1
'                ModemNone = Trim$(ModemNone & vbCrLf & mdm.Caption)
'            End If
'
        Next mdm




>> узнать, откуда/каким образом данный апплет получает данные
> как?

Читая "первоисточники"
MSDN по-русски (вроде бы)
блоги сотрудников technet
форумы MSDN
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37834611
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,
вот здесь
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
case 0
    ' типа рабочий
    ' не лишне бу проверить свойство Availability
  case 1
    ' тип рабочий(?), но неправльно сконфигурирован
  case 2
    ' ...
    ' и т.д.
  case 31


имеется ввиду, то что идёт после "0х"? а как оно вычленяться будет?
>Да, так иногда будет правильный результат.
не понял, когда не правильный?
>Отять же, лишнее преобразование в строку - ой, не до этого, если сознание не приходит :)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37834668
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> вот здесь
' {skipped}
> имеется ввиду, то что идёт после "0х"?

Почти. "Нет", - для значений [A,B,C,...,1F], "да" - для всех остальных.


> а как оно вычленяться будет?

Никак. "Оно" не будет "зачленяться".
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37834676
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,
имеется подозрения, что значения вроде "0x16" - это в какой-то системе исчесления, в какой? - придумают же, сиди Эндрю зачленяй, вычленяй :)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835081
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вчера не мог вечером проверить а теперь знаю и не пойму как это всё превращается из 22 в 0х16??
Код: vbnet
1.
2.
MsgBox$ mdm.ConfigManagerErrorCode '22
MsgBox$ tohex(mdm.ConfigManagerErrorCode) '0x16
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835084
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофакак это всё превращается из 22 в 0х16?? Шестнадцатеричная система счисления
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835093
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про это
Функция Hex
Hex(Number)
Hex$(Number)
Функция Hex(Hexadecimal) преобразует аргумент в шестнадцатеричное представление числа. Для явного представления шестнадцатеричного числа без вызова функции следует применять символы &H перед числом(например, &H10 - это десятичное число 16 в шестнадцатеричном представлении)

Возвращаемое значение
Возвращает значение субтипа String типа Variant
Я в курсе, но как i существует с Option Explicit не объявленной и как в i попадает mdm.ConfigManagerErrorCode, то есть i становится = mdm.ConfigManagerErrorCode?? кто ему об этом сказал? и вообще зачем эти переводы с 10ти ричное в 16ти ричное представление числа, что в 10ти ричном представление числа нельзя сравнивать?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835137
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаОтять же, лишнее преобразование в строку зачем оно? Я делал для удобочитаемого вывода в консоль. А Вы для чего ?катастрофаи вообще зачем эти переводы с 10ти ричное в 16ти ричное представление числа, что в 10ти ричном представление числа нельзя сравнивать?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835151
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProскукотищаОтять же, лишнее преобразование в строку зачем оно? Я делал для удобочитаемого вывода в консоль. А Вы для чего ?катастрофаи вообще зачем эти переводы с 10ти ричное в 16ти ричное представление числа, что в 10ти ричном представление числа нельзя сравнивать?
она первая начала (с)
не я же это начал писать
типа того:
Код: vbnet
1.
2.
3.
Const MAX_Availability% = &H11
'нельзя по русски написать
Const MAX_Availability% = 17



2
Shocker.Pro, консоль, это зверь, который мне даром не нужен
>не лишне бу проверить свойство Availability
поинтерисовался, вставил
Код: vbnet
1.
MsgBox$ mdm.Availability 'получил смачный отлуп - 94  Invalid use of Null Недопустимое использование Null


приехали, что за ересь?? как лечить?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835160
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё увидел в коде есть два зверя
Availability
и
aAvailability
запутаться можно, они зачем два нужны?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835172
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаона первая начала (с)
не я же это начал писать
типа того:
Код: vbnet
1.
2.
3.
Const MAX_Availability% = &H11
'нельзя по русски написать
Const MAX_Availability% = 17

ты опять путаешь типы данных. Текстовый и числовой. Пока ты не выучишь типы данных. не вижу смысла вопрос разбирать.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835176
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, что я путаю "%" Integer, я ж не написал Const MAX_Availability% = "17"
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835188
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой тип данных возвращает tohex?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835197
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Стринг, в тоже время я не понимаю как с Option Explicit уживаются tohex и i
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835199
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А причем тут Option Explicit?
кажется, ты сам сейчас не понимаешь, что именно ты хочешь спросить.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835211
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, tohex и i не объявлены
куда смотрит Option Explicit
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835214
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне отсюда не видно твой код целиком
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835216
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И опять же, как tohex может возвращать стринг, если он не объявлен. Сам себе противоречишь.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835226
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, целиком так целиком, согласен протеворечу
в этой грёбаной вкладке есть три состояния, которые я видел в природе
Отсутствует, Не работает, СОМ какой-то то есть работает, скукотища хороший парень, запихал туда банеров и всяких функций, чтобы я помучился
неужели чтобы на три полочки разложить модемы, так парится нужно?
вот он целиком

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
Option Explicit

Private Declare Function GetForegroundWindow Lib "user32" () As Long

Dim aAvailability, aConfigManagerError
Dim sep$, banner$
'

Sub modems_SpecialForCE()
'http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx

    Dim ModemNone As String
    'Отсутствует - None
    ModemNone = ""

    Dim CountModemNone As Long
    'Отсутствует - None
    CountModemNone = 0

    Dim ModemWork As String
    'Работает - Works
    ModemWork = ""

    Dim CountModemWork As Long
    'Работает - Works
    CountModemWork = 0

    Dim ModemDoesNotWork As String
    'Не работает - Does Not Work
    ModemDoesNotWork = ""

    Dim CountModemDoesNotWork As Long
    'Не работает - Does Not Work
    CountModemDoesNotWork = 0

    Dim ConfigManagerErrorCode As String
    ConfigManagerErrorCode = ""

    'свойство ConfigManagerErrorCode (мин.=0, макс.=31)
    '31 (Число десятиричное) - 1F (Число шестнадцатиричное)
    Const MAX_ConfigManagerErrorCode& = &H1F&
    'свойство Availability (мин.=1, макс.=17)
    '17 (Число десятиричное) - 11 (Число шестнадцатиричное)
    Const MAX_Availability% = &H11
    Const NA$ = "N/A"

    Dim wmi As Object
    Set wmi = GetObject("winmgmts:\\.\root\cimv2")

    Dim mdms As Object, mdm As Object
    Set mdms = wmi.execquery("select * from Win32_POTSModem")

    If mdms.Count > 0 Then

        'выполнить макрос с именем ...
        Call setpdb

        'Debug.Print banner
        'Debug.Print "modems count: " & mdms.Count

        For Each mdm In mdms

            'Debug.Print sep
            'Debug.Print "DeviceType:             " & mdm.DeviceType
            Debug.Print "Caption:                " & mdm.Caption
            'Debug.Print "Description:            " & mdm.Description
            'Debug.Print "AttachedTo:             " & mdm.AttachedTo
            'Debug.Print "DeviceLoader:           " & mdm.DeviceLoader

            ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)

            If ConfigManagerErrorCode = "0x16" Then
                'не рабочие модемы
                CountModemDoesNotWork = CountModemDoesNotWork + 1
                ModemDoesNotWork = Trim$(ModemDoesNotWork & vbCrLf & mdm.Caption)
            ElseIf ConfigManagerErrorCode = "0x0" Then

                '94  Invalid use of Null Недопустимое использование Null
                'MsgBox$ mdm.Availability
                '(0x3) Running or Full Power - работает или на полной мощности
                If mdm.Availability <= MAX_Availability Then
                    'рабочие модемы
                    CountModemWork = CountModemWork + 1
                    ModemWork = Trim$(ModemWork & vbCrLf & mdm.Caption & " - " & mdm.AttachedTo)
                End If
            ElseIf ConfigManagerErrorCode = "0x" Then
                'отсутствующие модемы
                CountModemNone = CountModemNone + 1
                ModemNone = Trim$(ModemNone & vbCrLf & mdm.Caption)
            End If

        Next mdm

        'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
        Set mdm = Nothing

        'выполнить макрос с именем ...
        Call clearpdb

        MsgBox$ _
                "Общее количество модемов " & mdms.Count & vbCrLf & vbCrLf & _
                                            "Рабочие модемы: " & CountModemWork & vbCrLf & _
                                            ModemWork & vbCrLf & vbCrLf & _
                                            "Не рабочие модемы: " & CountModemDoesNotWork & vbCrLf & _
                                            ModemDoesNotWork & vbCrLf & vbCrLf & _
                                            "Отсутствующие модемы: " & CountModemNone & vbCrLf & _
                                            ModemNone
    Else
        '1
        'control.exe - служит для работы с панелью управления
        'telephon.cpl - оснастка панели управления для телефонии
        '1 - номер вкладки, которую нужно активировать при открытии (отсчет с нуля)
        Shell "control.exe telephon.cpl,,1"

        '2
        'можно и так сразу открывается вторая вкладка
        'Shell "control.exe modem.cpl"

        '3
        'Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus

        'MyID - идентификатор процесса
        'MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)

        MsgBox$ "Модемы отсутствуют"

        'закрыть вкладку
        SendMessage GetForegroundWindow, &H10, 0&, 0&
    End If

    'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
    Set mdms = Nothing
    Set wmi = Nothing

End Sub

Function tohex(i): tohex = "0x" & Hex(i): End Function

Sub setpdb()
    aAvailability = _
    Array("WTF?..." _
  , "Other", "Unknown" _
                  , "Running or Full Power", "Warning" _
                  , "In Test", "Not Applicable" _
                  , "Power Off", "Off Line" _
                  , "Off Duty", "Degraded" _
                  , "Not Installed", "Install Error" _
                  , "Power Save - Unknown" & vbCrLf & Space(24) & "The device is known to be in a power save mode, but its exact status is unknown." _
                  , "Power Save - Low Power Mode" & vbCrLf & Space(24) & "The device is in a power save state but still functioning, and may exhibit degraded performance." _
                  , "Power Save - Standby" & vbCrLf & Space(24) & "The device is not functioning, but could be brought to full power quickly." _
                  , "Power Cycle" _
                  , "Power Save - Warning" & vbCrLf & Space(24) & "The device is in a warning state, though also in a power save mode.")

    aConfigManagerError = Array( _
                          "Device is working properly.", "Device is not configured correctly." _
                        , "Windows cannot load the driver for this device.", "Driver for this device might be corrupted, or the system may be low on memory or other resources." _
                        , "Device is not working properly." & vbCrLf & Space(24) & "One of its drivers or the registry might be corrupted.", "Driver for the device requires a resource that Windows cannot manage." _
                        , "Boot configuration for the device conflicts with other devices.", "Cannot filter." _
                        , "Driver loader for the device is missing.", "Device is not working properly." & vbCrLf & Space(24) & "The controlling firmware is incorrectly reporting the resources for the device." _
                        , "Device cannot start.", "Device failed." _
                        , "Device cannot find enough free resources to use.", "Windows cannot verify the device's resources." _
                        , "Device cannot work properly until the computer is restarted.", "Device is not working properly due to a possible re-enumeration problem." _
                        , "Windows cannot identify all of the resources that the device uses.", "Device is requesting an unknown resource type." _
                        , "Device drivers must be reinstalled.", "Failure using the VxD loader." _
                        , "Registry might be corrupted." _
                        , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." & vbCrLf & Space(24) & "Windows is removing the device." _
                        , "Device is disabled." _
                        , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." _
                        , "Device is not present, not working properly, or does not have all of its drivers installed." _
                        , "Windows is still setting up the device." _
                        , "Windows is still setting up the device." _
                        , "Device does not have valid log configuration." _
                        , "Device drivers are not installed." _
                        , "Device is disabled." & vbCrLf & Space(24) & "The device firmware did not provide the required resources." _
                        , "Device is using an IRQ resource that another device is using." _
                        , "Device is not working properly." & vbCrLf & Space(24) & "Windows cannot load the required device drivers.")

    sep = vbCrLf & String(23, "=") & " " & String(55, "=")
    banner = vbCrLf & "http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx" & vbCrLf

End Sub

Sub clearpdb()

'очищаем память, Erase - Стирать
    Erase aAvailability, aConfigManagerError
    sep = ""
    banner = ""

End Sub

...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835230
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом коде функция tohex объявлена
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835235
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВ этом коде функция tohex объявлена
вот этой строкой
Function tohex(i)
а как же ай?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835238
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приглядись
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835242
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
глазами я не вижу, стал поиском: "Dim " - не увидел
поднимите мне веки пжл
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835252
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> поднимите мне веки пжл

Почитай что обозначает слово "Параметры" в общем и в частности применительно в VB&VBA

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835255
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или вспомни как я тебя учил, если не можешь понять, где объявлена функция ли переменная - нажми на нее правой кнопкой и перейди к объявлению.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835295
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proили вспомни как я тебя учил, если не можешь понять, где объявлена функция ли переменная - нажми на нее правой кнопкой и перейди к объявлению.
ну сделал, нет её там
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835297
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тяжелый случай. Ну опубликуй что ли скриншот )
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835309
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835310
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не приложилось ранее
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835325
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835332
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, не пойму Private aAvailability As Variant - это что ли? так потаённо!!
похоже я кодером никогда не стану
что за фокусы? зачем такие прикиды?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835341
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты же про i спрашивал, причем тут aAvailability, зачем ты на нее щелкаешь?

12702390
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835352
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа

Эндрю, на скрине в ObjectBrowser'е видна функция tohex. Кликни по ней мышкой и посмотри внизу описание. Там где сейчас
написано
Код: vbnet
1.
Private aAvialability As Variant



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835382
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,
вот она Public Function tohex(i)- как бы нонятно, но я привык прежде чем в функцию отправлять писать
Код: vbnet
1.
2.
i = mdm.ConfigManagerErrorCode
tohex i


а как оно без указания
i стало равно mdm.ConfigManagerErrorCode - загадка
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835392
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаа как стало
Эндрю, что два года назад, что полгода назад, что сейчас - один и тот же ответ, поди в учебник и посмотри, что такое функция, параметр функции, вызов функции.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835394
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> Игорь Горбонос,
> вот она Public Function tohex(i)- как бы нонятно, но я привык прежде чем в функцию отправлять писать
> i = mdm.ConfigManagerErrorCode
> tohex i

Да, но сейчас ты сделал так
Код: vbnet
1.
ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)



> а как оно без указания
> i стало равно mdm.ConfigManagerErrorCode - загадка

А что такое параметры функции?

P.S. Кстати, делая так:
Код: vbnet
1.
2.
i = mdm.ConfigManagerErrorCode
tohex i

ты создаешь переменную i, которой присваиваешь значение mdm.ConfigManagerErrorCode и дальше отдаешь это
значение на обработку в функцию. То что там параметр имеет такое же имя не имеет никакий роли именно в этом
случае. Потому что в функцию передается значение , а не сама переменная. Об этом заботится "область видимости
переменных".

P.S.S. Ещё раз советую прочитать и понять как объявляются переменные, что такое область видимости, какие могут быть
параметры, как они передаются. Потому, что с таким подходом можешь очень долго отлаживать программу, не понимаю почему
самопроизвольно меняются значения переменных.


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835395
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносПотому, что с таким подходом можешь очень долго отлаживать программутретий год пошел
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835397
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, спасибо и на том, что там на неё смотреть, говорю как привык, теперь осталось скукотищу ждать, это всё цветочки, а по существу, на сиё время проблемс здесь:

Код: vbnet
1.
2.
3.
4.
For Each mdm In mdms
        
        '94  Invalid use of Null Недопустимое использование Null 
        MsgBox$ mdm.Availability


и как же как Вы скукотища сосетовали проверять mdm.Availability??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37835403
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница, как ты привык, говорю же, реально ты можешь сэкономить 90% времени просто разобравшись с тем, что такое тип данных, функция, параметр, объект, метод, свойство. Вдумайся в эту цифру! 90% твоих вопросов это вопросы об одном и том же. Вдумайся, можно все сделать за 10% времени от того, которое ты сейчас тратишь! Ты говорил, что предпочитаешь подвижные игры - подумай, вместо того, чтобы заниматься ими - ты сидишь за компом 90% времени ВПУСТУЮ! Ты тратишь жизнь ни на что. Ты поверил мне один раз с Option Explicit, поверь наконец и в это, я тебе третий год это долблю в голову. Не превращайся уже в задрота, извини за грубость, настоящего задрота тут мы знаем все, но ты-то понимаешь, что не все время можно проводить за компом, есть и другие ценности. Оптимизируй свою жизнь, наконец, почитай и ПОЙМИ учебник для начинающих, разбери ЭЛЕМЕНТАРНЫЕ примеры, прежде чем браться за сложные.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37836782
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаShocker.Pro, спасибо и на том, что там на неё смотреть, говорю как привык, теперь осталось скукотищу ждать, это всё цветочки, а по существу, на сиё время проблемс здесь:

Код: vbnet
1.
2.
3.
4.
For Each mdm In mdms
        
        '94  Invalid use of Null Недопустимое использование Null 
        MsgBox$ mdm.Availability


и как же как Вы скукотища сосетовали проверять mdm.Availability??
апну тему, уважаемый скукотища как быть?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37836802
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа,

Код: vbnet
1.
2.
3.
4.
5.
6.
For Each mdm In mdms
        
if mdm.Availability < MAX_Availability then ' позволит избежать траблов с Null-ами
        '94  Invalid use of Null Недопустимое использование Null 
        MsgBox$ mdm.Availability
end if


или эпический On Error Rsume Next с последующей обработкой ошибок
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37836816
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, ок завтра отпишусь
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37839596
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищакатастрофа,

Код: vbnet
1.
2.
3.
4.
5.
6.
For Each mdm In mdms
        
if mdm.Availability < MAX_Availability then ' позволит избежать траблов с Null-ами
        '94  Invalid use of Null Недопустимое использование Null 
        MsgBox$ mdm.Availability
end if


или эпический On Error Rsume Next с последующей обработкой ошибок

на этой строке: MsgBox$ mdm.Availability
я получаю только ошибку 94 и в любом случае когда обрабатываю модем в одном из любых его сотояний
"Рабочие модемы: "
"Не рабочие модемы: "
"Отсутствующие модемы: "
и как же её отрабатывать?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37840179
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, сегодня посвятил себя тому что ходил по гостям, пробовал строки кода, что мне надо сделать, чтобы когда строки были
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
For Each mdm In mdms
            ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)

            If ConfigManagerErrorCode = "0x16" Then
                'не рабочие модемы
                CountModemDoesNotWork = CountModemDoesNotWork + 1
                ModemDoesNotWork = Trim$(ModemDoesNotWork & vbCrLf & mdm.Caption)
            ElseIf ConfigManagerErrorCode = "0x0" Then
                    'рабочие модемы
                    CountModemWork = CountModemWork + 1
                    ModemWork = Trim$(ModemWork & vbCrLf & mdm.Caption & " - " & mdm.AttachedTo)
                            ElseIf ConfigManagerErrorCode = "0x" Then
                'отсутствующие модемы
                CountModemNone = CountModemNone + 1
                ModemNone = Trim$(ModemNone & vbCrLf & mdm.Caption)
            End If

        Next mdm


разложило на три полочки не верно?? у меня ответы верные, но Ваш скептизм пугает
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37847427
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа, был замечен на форуме, след не оставил, уважаемый скукотища ответьте пжл чтобы добить\забить тему
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37847452
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа,

> скукотища, сегодня посвятил себя тому что ходил по гостям, пробовал строки кода, что мне надо сделать, чтобы когда строки были
> {vb code skipped}
> разложило на три полочки не верно?? у меня ответы верные, но Ваш скептизм пугает

если ответы верные/Вас устраивают, - не обращайте внимания на мой скептицизьм. Может это я от зависти Вас троллю.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37847789
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, и всё же коротко
что мне надо сделать, какую создать обстановку, чтобы ответы были не верные при указанном коде??
ответьте пожалуйста
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37849044
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> какую создать обстановку, чтобы ответы были не верные при указанном коде??

Код: vbnet
1.
mdm.ConfigManagerErrorCode not in (22, 0, null)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37849252
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища> катастрофа
> какую создать обстановку, чтобы ответы были не верные при указанном коде??

Код: vbnet
1.
mdm.ConfigManagerErrorCode not in (22, 0, null)


не въехал, это что обстановка?
как это mdm.ConfigManagerErrorCode not in (22, 0, null)
перевести на русский язык? я такого not in (22, 0, null) не встречал
??? похоже я ещё сопляк в ЯП
но я обучаемый
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850058
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> катастрофа
> не въехал, это что обстановка?

это краткое описание обстановки, при которой код 12722426 вернёт не то, что Вы от него ожидаете.
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850695
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,
>это краткое описание обстановки
я не пойму как это понять, подскажите, дайте наводку (не знаю пишется вместе или раздельно :))
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850766
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
OFF
> не знаю пишется вместе

Как поправляла нас наша учительница по русскому:
Пишется слитно , а вместе, в кино ходят

Эндрю, посмотри что вернёт такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
For Each mdm In mdms
            ConfigManagerErrorCode = tohex(21)

            If ConfigManagerErrorCode = "0x16" Then
                'не рабочие модемы
                CountModemDoesNotWork = CountModemDoesNotWork + 1
                ModemDoesNotWork = Trim$(ModemDoesNotWork & vbCrLf & mdm.Caption)
            ElseIf ConfigManagerErrorCode = "0x0" Then
                    'рабочие модемы
                    CountModemWork = CountModemWork + 1
                    ModemWork = Trim$(ModemWork & vbCrLf & mdm.Caption & " - " & mdm.AttachedTo)
                            ElseIf ConfigManagerErrorCode = "0x" Then
                'отсутствующие модемы
                CountModemNone = CountModemNone + 1
                ModemNone = Trim$(ModemNone & vbCrLf & mdm.Caption)
            End If

        Next mdm




Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850823
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос, спасибо за начало вразумления, могу сказать только завтра, но так для затравки, почему именно
ConfigManagerErrorCode = tohex(21)
21???
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850837
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> почему именно
> 21???

ну возьми 23, не 23 мало возьми 20! Нет Лучше 1!!!


потому что 21 или 23 или 20 - это не 22 и не 0 и не NULL, т.е. 21 not in (22, 0, null)


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850888
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос, если отдалённо от этого топика то
Код: vbnet
1.
2.
mdm = 4
If mdm Not In (22, 0, 23) Then Beep


не взлетает, или я туплю?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850911
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> не взлетает, или я туплю?

Не взлетает, потому, что In() - это из языка БД - SQL

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850938
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос, то есть как я понял, считаю чему будет
Код: vbnet
1.
чему_будет = mdm.ConfigManagerErrorCode


и в зависимости от ответа думать, так?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850951
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
офф
катастрофа,
чего тут думать, - прыгать надо! (с)
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37850979
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, это я завтра с рабочей машины скажу
что гложет
Игорь Горбонос> Автор: катастрофа
> не взлетает, или я туплю?

Не взлетает, потому, что In() - это из языка БД - SQL


это из языка БД - SQL - как к этому прикоснуться?
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37851138
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаSQL - как к этому прикоснуться?

Есть такой сайт - sql-ex.ru
Регистрируешься и касаешься до умопомрачения. Вот как станешь там адептом 80 уровня, так и возвращайся. Мы подождем. Мы не торопимся.

P.S. Ещё-бы Белова куда-нить сбагрить на учёбу
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37851285
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос, не пременно займусь, пока гложет
Код: vbnet
1.
2.
ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)
MsgBox$ mdm.ConfigManagerErrorCode 'если здесь получаю '94 Invalid use of Null Недопустимое использование Null как строку выше отработало??
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37851289
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь все ситуации предусмотрел?? кроме атомной бомбандировки

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
Option Explicit

Private Declare Function GetForegroundWindow Lib "user32" () As Long

Dim aAvailability, aConfigManagerError
Dim sep$, banner$
'

Sub modems_SpecialForCE()
'http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx

    Dim ModemNone As String
    'Отсутствует - None
    ModemNone = ""

    Dim CountModemNone As Long
    'Отсутствует - None
    CountModemNone = 0

    Dim ModemWork As String
    'Работает - Works
    ModemWork = ""

    Dim CountModemWork As Long
    'Работает - Works
    CountModemWork = 0

    Dim ModemDoesNotWork As String
    'Не работает - Does Not Work
    ModemDoesNotWork = ""

    Dim CountModemDoesNotWork As Long
    'Не работает - Does Not Work
    CountModemDoesNotWork = 0

    Dim ConfigManagerErrorCode As String
    ConfigManagerErrorCode = ""

    Dim mdmConfigManagerErrorCode As String
    mdmConfigManagerErrorCode = ""

    'свойство ConfigManagerErrorCode (мин.=0, макс.=31)
    '31 (Число десятиричное) - 1F (Число шестнадцатиричное)
    Const MAX_ConfigManagerErrorCode& = &H1F&
    'свойство Availability (мин.=1, макс.=17)
    '17 (Число десятиричное) - 11 (Число шестнадцатиричное)
    Const MAX_Availability% = &H11
    Const NA$ = "N/A"

    Dim wmi As Object
    Set wmi = GetObject("winmgmts:\\.\root\cimv2")

    Dim mdms As Object, mdm As Object
    Set mdms = wmi.execquery("select * from Win32_POTSModem")

    If mdms.Count > 0 Then

        'выполнить макрос с именем ...
        Call setpdb

        'Debug.Print banner
        'Debug.Print "modems count: " & mdms.Count

        For Each mdm In mdms

            'Debug.Print sep
            'Debug.Print "DeviceType:             " & mdm.DeviceType
            'Debug.Print "Caption:                " & mdm.Caption
            'Debug.Print "Description:            " & mdm.Description
            'Debug.Print "AttachedTo:             " & mdm.AttachedTo
            'Debug.Print "DeviceLoader:           " & mdm.DeviceLoader

            'оператор для отлова ошибок, указывает, что при возникновении ошибки нужно переходить к следующей строке кода
            On Error Resume Next

            mdmConfigManagerErrorCode = mdm.ConfigManagerErrorCode
            '94 Invalid use of Null Недопустимое использование Null
            'ModemNone - отсутствующие модемы
            If Err.Number = 94 Then Err.Number = 0: GoTo ModemNone

            'требуется, чтобы в нужном месте отключить действие строки 1) On Error GoTo ... 2) либо действие строки On Error Resume Next
            On Error GoTo 0

            ConfigManagerErrorCode = tohex(mdm.ConfigManagerErrorCode)

            'MsgBox$ ConfigManagerErrorCode
            'MsgBox$ mdmConfigManagerErrorCode


            If ConfigManagerErrorCode = "0x16" Then
                'не рабочие модемы
                CountModemDoesNotWork = CountModemDoesNotWork + 1
                ModemDoesNotWork = Trim$(ModemDoesNotWork & vbCrLf & mdm.Caption)
            ElseIf ConfigManagerErrorCode = "0x0" Then
                'рабочие модемы
                CountModemWork = CountModemWork + 1
                ModemWork = Trim$(ModemWork & vbCrLf & mdm.Caption & " - " & mdm.AttachedTo)
            ElseIf ConfigManagerErrorCode = "0x" Then

ModemNone:

                'отсутствующие модемы
                CountModemNone = CountModemNone + 1
                ModemNone = Trim$(ModemNone & vbCrLf & mdm.Caption)
            End If

        Next mdm

        'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
        Set mdm = Nothing

        'выполнить макрос с именем ...
        Call clearpdb

        MsgBox$ _
                "Общее количество модемов " & mdms.Count & vbCrLf & vbCrLf & _
                                            "Рабочие модемы: " & CountModemWork & vbCrLf & _
                                            ModemWork & vbCrLf & vbCrLf & _
                                            "Не рабочие модемы: " & CountModemDoesNotWork & vbCrLf & _
                                            ModemDoesNotWork & vbCrLf & vbCrLf & _
                                            "Отсутствующие модемы: " & CountModemNone & vbCrLf & _
                                            ModemNone

    Else

        '1
        'control.exe - служит для работы с панелью управления
        'telephon.cpl - оснастка панели управления для телефонии
        '1 - номер вкладки, которую нужно активировать при открытии (отсчет с нуля)
        Shell "control.exe telephon.cpl,,1"

        '2
        'можно и так сразу открывается вторая вкладка
        'Shell "control.exe modem.cpl"

        '3
        'Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus

        'MyID - идентификатор процесса
        'MyID = Shell("rundll32.exe shell32.dll, Control_RunDLL modem.cpl, Modems", vbNormalFocus)

        MsgBox$ "Модемы отсутствуют"

        'закрыть вкладку
        'SendMessage GetForegroundWindow, &H10, 0&, 0&
    End If

    'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
    Set mdms = Nothing
    Set wmi = Nothing

End Sub

Function tohex(i): tohex = "0x" & Hex(i): End Function

Sub setpdb()
    aAvailability = _
    Array("WTF?..." _
  , "Other", "Unknown" _
                  , "Running or Full Power", "Warning" _
                  , "In Test", "Not Applicable" _
                  , "Power Off", "Off Line" _
                  , "Off Duty", "Degraded" _
                  , "Not Installed", "Install Error" _
                  , "Power Save - Unknown" & vbCrLf & Space(24) & "The device is known to be in a power save mode, but its exact status is unknown." _
                  , "Power Save - Low Power Mode" & vbCrLf & Space(24) & "The device is in a power save state but still functioning, and may exhibit degraded performance." _
                  , "Power Save - Standby" & vbCrLf & Space(24) & "The device is not functioning, but could be brought to full power quickly." _
                  , "Power Cycle" _
                  , "Power Save - Warning" & vbCrLf & Space(24) & "The device is in a warning state, though also in a power save mode.")

    aConfigManagerError = Array( _
                          "Device is working properly.", "Device is not configured correctly." _
                        , "Windows cannot load the driver for this device.", "Driver for this device might be corrupted, or the system may be low on memory or other resources." _
                        , "Device is not working properly." & vbCrLf & Space(24) & "One of its drivers or the registry might be corrupted.", "Driver for the device requires a resource that Windows cannot manage." _
                        , "Boot configuration for the device conflicts with other devices.", "Cannot filter." _
                        , "Driver loader for the device is missing.", "Device is not working properly." & vbCrLf & Space(24) & "The controlling firmware is incorrectly reporting the resources for the device." _
                        , "Device cannot start.", "Device failed." _
                        , "Device cannot find enough free resources to use.", "Windows cannot verify the device's resources." _
                        , "Device cannot work properly until the computer is restarted.", "Device is not working properly due to a possible re-enumeration problem." _
                        , "Windows cannot identify all of the resources that the device uses.", "Device is requesting an unknown resource type." _
                        , "Device drivers must be reinstalled.", "Failure using the VxD loader." _
                        , "Registry might be corrupted." _
                        , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." & vbCrLf & Space(24) & "Windows is removing the device." _
                        , "Device is disabled." _
                        , "System failure." & vbCrLf & Space(24) & "If changing the device driver is ineffective, see the hardware documentation." _
                        , "Device is not present, not working properly, or does not have all of its drivers installed." _
                        , "Windows is still setting up the device." _
                        , "Windows is still setting up the device." _
                        , "Device does not have valid log configuration." _
                        , "Device drivers are not installed." _
                        , "Device is disabled." & vbCrLf & Space(24) & "The device firmware did not provide the required resources." _
                        , "Device is using an IRQ resource that another device is using." _
                        , "Device is not working properly." & vbCrLf & Space(24) & "Windows cannot load the required device drivers.")

    sep = vbCrLf & String(23, "=") & " " & String(55, "=")
    banner = vbCrLf & "http://msdn.microsoft.com/en-us/library/windows/desktop/aa394360%28v=vs.85%29.aspx" & vbCrLf

End Sub

Sub clearpdb()

'очищаем память, Erase - Стирать
    Erase aAvailability, aConfigManagerError
    sep = ""
    banner = ""

End Sub



маладец??
жаль к дню Победы не успел
...
Рейтинг: 0 / 0
сделать программно скрин вкладки
    #37869932
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофакатастрофа, был замечен на форуме, след не оставил, уважаемый скукотища ответьте пжл чтобы добить\забить тему
...
Рейтинг: 0 / 0
189 сообщений из 189, показаны все 8 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сделать программно скрин вкладки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]