Вверх ↑
Этот топик читают: Гость
Ответов: 322
Рейтинг: 8
#1: 2022-03-31 08:23:12 ЛС | профиль | цитата
Всем доброго дня.
Сегодня наткнулся на такую проблему:
в Win8 программа по определению IP работает отлично
Add(MainForm,2953706,294,217)
{
Left=100
Top=50
Width=431
Height=246
Caption="Определение ip"
link(onCreate,7665417:doBrowse,[])
}
Add(Host,4707664,406,294)
{
link(onIPByHost,9464753:doValue,[])
link(HostName,1185816:Var2,[])
}
Add(NetworkLocator,7665417,343,231)
{
link(onDomain,7138514:doValue,[(383,237)(383,202)])
link(onComputer,7088728:doSplit,[])
}
Add(Memo,4293143,434,350)
{
Width=415
Height=207
Align=5
}
Add(FormatStr,11185536,392,350)
{
DataCount=4
Mask="(%4) %1 // %2 // %3"
link(onFString,4293143:doAdd,[])
link(Str1,7138514:Value,[])
link(Str2,1185816:Var1,[(405,285)])
link(Str3,9464753:Value,[(412,342)(454,342)])
}
Add(Memory,7138514,392,196)
{
}
Add(Memory,9464753,448,301)
{
link(onData,6712362:doNext,[(494,307)(494,336)(343,336)(343,356)])
}
Add(MultiStrData,7088728,413,238)
{
Char="\"
link(onPart2,4707664:doIPByHost,[(453,251)(453,279)(394,279)(394,307)])
}
Add(GetDataEx,1185816,413,280)
{
link(Data,7088728:RemaindStr,[])
}
Add(CounterEx,6712362,350,350)
{
link(onNext,11185536:doString,[])
}
запустил в Win10 программа сначала висит, потом открывается пустой.
После пошагового разбора выявил, что компонент NetworkLocator не выдаёт данных именно в Win10.
Хотелось бы понять это глюк кубика или мой.
Заранее спасибо.

Редактировалось 1 раз(а), последний 2022-03-31 08:25:52
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 687
Рейтинг: 142
#2: 2022-04-02 07:09:41 ЛС | профиль | цитата
Dad2016 писал(а):
компонент NetworkLocator не выдаёт данных именно в Win10.
Хотелось бы понять это глюк кубика или мой.

У меня тоже не работает этот компонент в «десятке».
Если тебе нужно просканировать свою локальную сеть на наличие других устройств, то это можно сделать и другими способами.
Пара примеров.
1.
Add(MainForm,2219782,280,147)
{
Width=720
link(onCreate,10354083:doStart,[])
}
Add(Memo,9803902,784,161)
{
Width=704
Height=261
Align=5
Font=[Lucida Console,8,0,0,204]
ScrollBars=3
}
Add(DoData,5427336,231,147)
{
Data=String(Сканирование завершено)
link(onEventData,2219782:doCaption,[])
}
Add(For,6199459,455,161)
{
Start=1
End=254
link(onEvent,5461832:doStrCatDlm,[])
link(onStop,5427336:doData,[(494,174)(494,139)(221,139)(221,153)])
}
Add(StrCatDelim,5461832,518,161)
{
Delimiter="."
link(onStrCatDlm,5831013:doPing,[])
link(Str1,6879138:RemaindStr,[(524,152)(510,152)(510,201)(405,201)])
}
Add(Ping,5831013,567,161)
{
Name=""
link(onFind,14914418:doValue,[])
}
Add(Thread,10354083,329,161)
{
FastStop=0
link(onExec,6879138:doSplit,[])
}
Add(MultiStrData,6879138,399,161)
{
Char="."
Count=1
Direct=1
link(Str,4819620:LoacalIP,[])
link(onPart1,6199459:doFor,[])
}
Add(Host,1833116,672,161)
{
link(onHostByIP,15885937:doString,[])
}
Add(Host,4819620,392,84)
{
}
Add(Memory,14914418,623,161)
{
link(onData,1833116:doHostByIP,[])
}
Add(FormatStr,15885937,728,161)
{
Mask="%1 - %2"
link(onFString,9803902:doAdd,[])
link(Str1,14914418:Value,[(734,152)(720,152)(720,201)(629,201)])
}


2.
Add(MainForm,2953706,210,238)
{
Width=720
link(onCreate,12519624:doSplit,[])
}
Add(WinExec,14787036,371,238)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleTerminate)
link(onConsoleResult,9803902:doAdd,[])
link(onConsoleTerminate,5427336:doData,[(410,265)(410,230)(151,230)(151,244)])
}
Add(FormatStr,5492697,322,252)
{
DataCount=1
Mask="1..254 | ForEach-Object {Test-Connection -ComputerName "%1.$_" -Count 1 -ErrorAction SilentlyContinue}"
link(onFString,14787036:doConsoleExec,[])
}
Add(Memo,9803902,434,252)
{
Width=704
Height=261
Align=5
Font=[Lucida Console,8,0,0,204]
ScrollBars=3
}
Add(DoData,5427336,161,238)
{
Data=String(Сканирование завершено)
link(onEventData,2953706:doCaption,[])
}
Add(Host,4819620,259,175)
{
}
Add(MultiStrPart,12519624,266,252)
{
Char="."
Count=1
Direct=1
link(onSplit,5492697:doString,[])
link(Str,4819620:LoacalIP,[])
}


Редактировалось 2 раз(а), последний 2022-04-03 05:28:51
карма: 15

0
Ответов: 322
Рейтинг: 8
#3: 2022-04-07 13:26:34 ЛС | профиль | цитата
Gunta писал(а):
другими способами

Спасибо за примеры
У меня (на win8) выдаёт сразу все компы по сети:
1.jpg

твоя программа не видит второй комп в сети:
2.jpg
карма: 0

0
Ответов: 687
Рейтинг: 142
#4: 2022-04-07 16:46:56 ЛС | профиль | цитата
Dad2016 писал(а):
твоя программа не видит второй комп в сети

Ты не дождался окончания сканирования сети (3-10 мин)
В программе сканируется весь диапазон адресов 192.168.0.1-254
Просто запусти программу и подожди несколько минут.

Добавил ProgressBar
Add(MainForm,2219782,406,126)
{
Width=720
link(onCreate,10354083:doStart,[])
}
Add(Memo,9803902,980,140)
{
Width=704
Height=241
Align=5
Font=[Lucida Console,8,0,0,204]
ScrollBars=3
}
Add(DoData,5427336,357,126)
{
Data=String(Сканирование завершено)
link(onEventData,2219782:doCaption,[])
}
Add(For,6199459,581,140)
{
Start=1
End=254
link(onEvent,1134256:doEvent1,[])
link(onStop,5427336:doData,[(620,153)(620,118)(347,118)(347,132)])
}
Add(StrCatDelim,5461832,714,140)
{
Delimiter="."
link(onStrCatDlm,5831013:doPing,[])
link(Str1,6879138:RemaindStr,[(720,131)(636,131)(636,180)(531,180)])
}
Add(Ping,5831013,763,140)
{
Name=""
link(onFind,14914418:doValue,[])
}
Add(Thread,10354083,455,140)
{
FastStop=0
link(onExec,6879138:doSplit,[])
}
Add(MultiStrData,6879138,525,140)
{
Char="."
Count=1
Direct=1
link(Str,4819620:LoacalIP,[])
link(onPart1,6199459:doFor,[])
}
Add(Host,1833116,868,140)
{
link(onHostByIP,15885937:doString,[])
}
Add(Host,4819620,518,63)
{
}
Add(Memory,14914418,819,140)
{
link(onData,1833116:doHostByIP,[])
}
Add(FormatStr,15885937,924,140)
{
Mask="%1 - %2"
link(onFString,9803902:doAdd,[])
link(Str1,14914418:Value,[(930,131)(916,131)(916,180)(825,180)])
}
Add(ProgressBar,6522339,714,196)
{
Top=241
Width=704
Align=4
Max=254
ProgressColor=32768
}
Add(Hub,1134256,644,140)
{
link(onEvent1,5461832:doStrCatDlm,[])
link(onEvent2,6522339:doPosition,[(697,153)(697,202)])
}


Редактировалось 2 раз(а), последний 2022-04-08 08:00:46
карма: 15

0
Ответов: 322
Рейтинг: 8
#5: 2022-04-11 06:48:53 ЛС | профиль | цитата
Gunta писал(а):
не дождался

Понятно.
А почему так долго проверяет?
карма: 0

0
Ответов: 687
Рейтинг: 142
#6: 2022-04-11 13:43:00 ЛС | профиль | цитата
Dad2016 писал(а):
А почему так долго проверяет?

Долго, потому что в компоненте Ping стоит время ожидания ответа от каждого IP - 1 секунда.
Dad2016 писал(а):
компонент NetworkLocator не выдаёт данных именно в Win10.

Для того чтобы работал компонент NetworkLocato в windows10 нужно включить поддержку общего доступа к файлам SMB 1.0/CIFS и перегрузить компьютер.
Панель управления> Программы> Программы и компоненты> Включение и отключение компонентов Windows
NetworkLocator in windows10.PNG
И дополнительно проверь всё ли у тебя включено - https://mywebpc.ru/windows/sistemnaya-oshibka-6118-cmd/

Схема для теста.

Add(MainForm,2953706,154,252)
{
link(onCreate,11090522:doBrowse,[])
}
Add(NetworkLocator,11090522,217,266)
{
link(onDomain,10295118:doWork2,[])
link(onComputer,10295118:doWork3,[(277,279)])
}
Add(Memo,8441898,301,266)
{
Left=550
Top=160
Align=5
ScrollBars=3
}
Add(HubEx,10295118,273,266)
{
link(onEvent,8441898:doAdd,[])
}

карма: 15

0
Ответов: 322
Рейтинг: 8
#7: 2022-04-11 14:22:51 ЛС | профиль | цитата
Gunta писал(а):
нужно включить поддержку

то-есть в предыдущих версиях Windows оно всегда включено?
почему меня это интересует - потихоньку делаю программу управления удалённым рабочим столом (то что есть в инете - урезано или платно). В моей программе есть определение ip и так далее (поэтому чтобы поставить прогу на чужом компе нужно будет массу манипуляций выполнить для её работы. Хотелось бы это обойти). И да в платных программах как то это работает без настроек, на любых версиях Windows.
За схемки отдельное спасибо!
карма: 0

0
Ответов: 687
Рейтинг: 142
#8: 2022-04-12 09:34:28 ЛС | профиль | цитата
Dad2016 писал(а):
то-есть в предыдущих версиях Windows оно всегда включено?

Вот здесь подробно - https://docs.microsoft.com/ru-ru/windows-server/storage/file-server/troubleshoot/smbv1-not-installed-by-default-in-windows
Поскольку служба обозревателя компьютеров использует SMBv1, служба удаляется, если клиент SMBv1 или сервер удаляются. это означает, что сеть обозревателя больше не может отображать Windows компьютеры с помощью устаревшего метода просмотра датаграмм NetBIOS.
Dad2016 писал(а):
делаю программу управления удалённым рабочим столом (то что есть в инете - урезано или платно)

Если на обоих машинах стоит windows Pro то проще пользоваться удаленным рабочим столом (RDP).
На своей работе я часто пользуюсь:
AnyDesk - https://anydesk.com/ru
UltraVNC - https://uvnc.com/
Меня вполне устраивает и функциональность и бесплатность.
Dad2016 писал(а):
В моей программе есть определение ip и так далее

IP можно определять множеством других способов..
Например так.
Add(MainForm,6214559,252,112)
{
link(onCreate,12241966:doEvent1,[])
}
Add(WinExec,10703619,350,112)
{
FileName="powershell"
Param="-command (Invoke-RestMethod -Uri http://ipinfo.io).ip"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,2627018:doString,[])
}
Add(Memo,13015240,490,126)
{
Left=550
Top=160
Align=5
ScrollBars=3
}
Add(FormatStr,2627018,413,126)
{
DataCount=1
Mask="Внешний IP - %1"
link(onFString,16736427:doWork2,[])
}
Add(WinExec,10192599,350,168)
{
FileName="powershell"
Param="-command foreach($ip in (ipconfig) -like '*IPv4*') { ($ip -split ' : ')[-1]}\r\n"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,9946949:doString,[])
}
Add(Hub,12241966,308,126)
{
link(onEvent1,10703619:doConsoleExec,[])
link(onEvent2,10192599:doConsoleExec,[(340,139)(340,188)])
}
Add(FormatStr,9946949,413,182)
{
DataCount=1
Mask="Локальный IP - %1"
link(onFString,16736427:doWork3,[(466,188)])
}
Add(HubEx,16736427,462,126)
{
link(onEvent,13015240:doAdd,[])
}


Редактировалось 2 раз(а), последний 2022-04-12 13:47:49
карма: 15

0
Ответов: 322
Рейтинг: 8
#9: 2022-04-12 16:05:23 ЛС | профиль | цитата
Gunta писал(а):
Например так.

За этот вариант отдельное спасибо.
карма: 0

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)