powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сделать программно скрин вкладки
25 сообщений из 189, страница 6 из 8
сделать программно скрин вкладки
    #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
25 сообщений из 189, страница 6 из 8
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сделать программно скрин вкладки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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