Вверх ↑
Этот топик читают: Гость
Ответов: 8994
Рейтинг: 825
#151: 2026-03-24 23:49:27 ЛС | профиль | цитата
Gunta, а не может быть так, что монитор имея 1920 пикселей, но настроен ручками на 1280 из-за привычки пользователя или (как у меня) по зрению

Редактировалось 1 раз(а), последний 2026-03-24 23:50:16
карма: 19

0
Ответов: 1093
Рейтинг: 223
#152: 2026-03-25 07:58:30 ЛС | профиль | цитата
Леонид писал(а):
а не может быть так, что монитор имея 1920 пикселей, но настроен ручками на 1280 из-за привычки пользователя или (как у меня) по зрению

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

И да, при ста процентах я тоже ни черта не вижу, слишком мелко.
карма: 20

0
Ответов: 1093
Рейтинг: 223
#153: 2026-05-05 19:24:48 ЛС | профиль | цитата
Продолжаем деградировать.
Минимализм наше всё.

Календарь
Add(MainForm,2953706,112,70)
{
Width=920
Height=640
link(onCreate,1335740:doString,[])
}
Add(FormatStr,1335740,161,84)
{
Mask="Dim yearVal, fso, file, row, m, d, i, weekLine, hasData\r\nDim targetMonth, currentDay(3), monthDays(3), firstDays(3)\r\n\r\nyearVal = Year(Date)\r\n\r\nsys.onEvent Space(35) & "КАЛЕНДАРЬ НА " & yearVal & " ГОД"\r\nsys.onEvent String(96, "=")\r\n\r\nFor row = 0 To 2\r\n Dim headers: headers = " "\r\n For m = 1 To 4\r\n targetMonth = row * 4 + m\r\n headers = headers & Left(MonthName(targetMonth) & Space(25), 25)\r\n Next\r\n sys.onEvent headers\r\n\r\n Dim daysHeader: daysHeader = " "\r\n For m = 1 To 4\r\n daysHeader = daysHeader & "Пн Вт Ср Чт Пт Сб Вс "\r\n Next\r\n sys.onEvent daysHeader\r\n\r\n For m = 0 To 3\r\n targetMonth = row * 4 + m + 1\r\n monthDays(m) = Day(DateSerial(yearVal, targetMonth + 1, 0))\r\n firstDays(m) = Weekday(DateSerial(yearVal, targetMonth, 1), vbMonday)\r\n currentDay(m) = 1 - (firstDays(m) - 1)\r\n Next\r\n\r\n For i = 1 To 6\r\n weekLine = ""\r\n hasData = False\r\n \r\n For m = 0 To 3\r\n Dim dayPart: dayPart = " "\r\n For d = 1 To 7\r\n If currentDay(m) >= 1 And currentDay(m) <= monthDays(m) Then\r\n dayPart = dayPart & Right(" " & currentDay(m), 2) & " "\r\n hasData = True\r\n Else\r\n dayPart = dayPart & " "\r\n End If\r\n currentDay(m) = currentDay(m) + 1\r\n Next\r\n weekLine = weekLine & dayPart & " "\r\n Next\r\n\r\n If hasData Then sys.onEvent weekLine\r\n Next\r\n sys.onEvent vbCrLf\r\nNext\r\n"
link(onFString,11225278:##SetScript,[])
}
Add(VBJScript,11225278,210,84)
{
WorkPoints=#11:##SetScript|0:|
EventPoints=#7:onEvent|7:onError|0:|
Script=#0:|0:|
UseName=0
link(onEvent,2980579:doCopy,[])
}
Add(Memo,3807029,315,84)
{
Width=1141
Height=604
Align=5
Font=[Consolas,12,0,0,204]
Antialiased=1
ScrollBars=3
}
Add(Copy,2980579,259,84)
{
Count=96
StartPosRTL=1
link(onCopy,3807029:doAdd,[])
}


--- Добавлено в 2026-05-05 19:27:52
Список файлов в папке
Add(MainForm,2953706,42,126)
{
link(onCreate,2749553:doDeferredEvent,[])
}
Add(Dir,3900206,147,84)
{
}
Add(StringTable,10632120,231,140)
{
Left=560
Top=125
Align=5
Columns=#15:FilePathAndName|12:ParentFolder|4:Name|11:DateCreated|16:DateLastAccessed|16:DateLastModified|4:Size|4:Type|6:Suffix|0:|0:|
}
Add(VBJScript,4625900,147,140)
{
WorkPoints=#6:doWork|
EventPoints=#8:onStrOut|
DataPoints=#4:Path|
Script=#22:Sub doWork(Data,Index)|0:|42: Dim objFSO, objFolder, objFiles, objFile|2: |57: Set objFSO = CreateObject("Scripting.FileSystemObject")|44: Set objFolder = objFSO.GetFolder(sys.Path)|42: Set objSubFolders = objFolder.SubFolders|32: Set objFiles = objFolder.Files|0:|30: For Each objFile In objFiles|35: strOut = objFile.Path & ";" &_ |34: objFile.ParentFolder & ";" &_ |26: objFile.Name & ";" &_ |33: objFile.DateCreated & ";" &_ |38: objFile.DateLastAccessed & ";" &_ |38: objFile.DateLastModified & ";" &_ |26: objFile.Size & ";" &_ |26: objFile.Type & ";" &_ |41: objFSO.getextensionname(objFile.Path)|23: sys.onStrOut strOut|0:|6: Next|2: |22: Set objFSO = Nothing|24: Set objFiles = Nothing|25: Set objFolder = Nothing|0:|7:End Sub|
UseName=0
link(onStrOut,12748649:doEvent1,[])
link(Path,3900206:CurrentDir,[])
}
Add(Application,14905817,231,189)
{
}
Add(Hub,12748649,196,140)
{
link(onEvent1,10632120:doAdd,[])
link(onEvent2,14905817:doProcessMessages,[(221,153)(221,195)])
}
Add(DeferredEvent,2749553,91,140)
{
link(onDeferredEvent,4625900:doWork,[])
}


--- Добавлено в 2026-05-05 19:34:08

Список доступных Wi-Fi сетей и их уровни сигналов (для ноутбуков с wifi картой)
Add(MainForm,2953706,70,140)
{
Width=1177
Height=277
link(onCreate,9791131:doExec,[])
}
Add(WinExec,4338443,217,147)
{
FileName="netsh"
Param="wlan show networks mode=bssid"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,9874410:doWork2,[])
link(onConsoleError,9874410:doWork3,[(263,174)])
}
Add(HubEx,9874410,259,161)
{
link(onEvent,14072012:doCharset,[])
}
Add(Charset,14072012,273,161)
{
link(onCharset,12077553:doSearch,[])
}
Add(WinExec,9791131,119,154)
{
FileName="explorer.exe"
Param="ms-availablenetworks:"
Mode=0
RunEvent=1
link(onFinished,5144219:doDeferredEvent,[])
}
Add(DeferredEvent,5144219,168,161)
{
Delay=2000
link(onDeferredEvent,4338443:doConsoleExec,[])
}
Add(BlockFind,12077553,322,161)
{
StartBlock="SSID "
EndBlock="\r\n\r\n"
link(onSearch,13097786:doMTString,[])
link(onEndSearch,9998054:doColAction,[(368,174)(368,195)])
}
Add(MT_String,13097786,378,147)
{
Delimeter="\r\n"
link(onResult,11737467:doRowAction,[])
}
Add(MTStrTbl,9782397,490,147)
{
Width=1161
Height=238
Align=5
Name="tabl"
Columns=#4:SSID|8:Тип сети|20:Проверка подлинности|10:Шифрование|7:BSSID 1|6:Сигнал|9:Тип радио|5:Канал|25:Базовая скорость (мбит/с)|24:Другие скорости (мбит/с)|0:|
ColorItems=0
Redaction=0
Grid=0
link(CodePageSet,5474069:GetData,[])
}
Add(MST_RowAction,11737467,427,147)
{
MSTControl="tabl"
}
Add(EventFromData,5474069,490,98)
{
link(onEvent,3314252:doSplit,[])
}
Add(StrPart,3314252,539,98)
{
Char=":"
link(onSplit,1384034:doTrim,[])
}
Add(Trim,1384034,588,98)
{
Mode=7
link(onTrim,5474069:doData,[(627,104)(627,90)(480,90)(480,104)])
}
Add(MST_ColAction,9998054,378,189)
{
Action=9
AutoWidthByHeader=0
Index=-2
MSTControl="tabl"
}


Редактировалось 3 раз(а), последний 2026-05-05 19:36:33
карма: 20

0
Ответов: 1093
Рейтинг: 223
#154: 2026-05-06 17:22:10 ЛС | профиль | цитата
Gunta писал(а):
Список доступных Wi-Fi сетей и их уровни сигналов (для ноутбуков с wifi картой)

или так

Add(MainForm,2953706,70,119)
{
link(onCreate,726974:doDeferredEvent,[])
}
Add(InlineCode,14066311,175,133)
{
WorkPoints=#17:doWlanNetworkList|
EventPoints=#11:omInterface|17:onWlanNetworkList|15:onStartScanning|13:onEndScanning|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|46:uses kol,Windows,Share,Debug,Messages,ActiveX;|0:|5:const|43: WLAN_NOTIFICATION_SOURCE_ACM = $00000008;|42: wlan_notification_acm_scan_complete = 7;|49: wlan_notification_acm_power_setting_change = 6;|0:|4:type|18: PDWORD = ^DWORD;|2: |25: TWlanInterfaceState = (|58: wlan_is_not_ready, wlan_is_connected, wlan_is_ad_hoc, |70: wlan_is_disconnecting, wlan_is_disconnected, wlan_is_associating, |47: wlan_is_discovering, wlan_is_authenticating|4: );|0:|29: TWlanInterfaceInfo = record|25: InterfaceGuid: TGUID;|55: strInterfaceDescription: array[0..255] of WideChar;|33: isState: TWlanInterfaceState;|6: end;|0:|51: PWlanInterfaceInfoList = ^TWlanInterfaceInfoList;|33: TWlanInterfaceInfoList = record|27: dwNumberOfItems: DWORD;|19: dwIndex: DWORD;|53: InterfaceInfo: array[0..0] of TWlanInterfaceInfo;|6: end;|0:|21: TDot11Ssid = record|23: uSSIDLength: ULONG;|37: ucSSID: array[0..31] of AnsiChar;|6: end;|0:|32: TWlanAvailableNetwork = record|46: strProfileName: array[0..255] of WideChar;|26: dot11Ssid: TDot11Ssid;|26: dot11BssType: Integer;|27: uNumberOfBssids: ULONG;|30: bNetworkConnectable: BOOL;|36: wlanNotConnectableReason: DWORD;|29: uNumberOfPhyTypes: ULONG;|42: dot11PhyTypes: array[0..7] of Integer;|24: bMorePhyTypes: BOOL;|29: wlanSignalQuality: ULONG;|27: bSecurityEnabled: BOOL;|39: dot11DefaultAuthAlgorithm: Integer;|41: dot11DefaultCipherAlgorithm: Integer;|19: dwFlags: DWORD;|22: dwReserved: DWORD;|6: end;|0:|57: PWlanAvailableNetworkList = ^TWlanAvailableNetworkList;|36: TWlanAvailableNetworkList = record|27: dwNumberOfItems: DWORD;|19: dwIndex: DWORD;|50: Network: array[0..0] of TWlanAvailableNetwork;|6: end;|0:|49: PWlanNotificationData = ^TWlanNotificationData;|32: TWlanNotificationData = record|30: NotificationSource: DWORD;|28: NotificationCode: DWORD;|25: InterfaceGuid: TGUID;|22: dwDataSize: DWORD;|19: pData: Pointer;|6: end;|0:|96: TWlanNotificationCallback = procedure(data: PWlanNotificationData; context: Pointer); stdcall;|0:|27: TWlanScanContext = record|42: InterfaceList: PWlanInterfaceInfoList;|23: Semaphore: THandle;|6: end;|39: PWlanScanContext = ^TWlanScanContext;|0:|4:type|107: TWlanOpenHandle = function(dwVer: DWORD; pRes: Pointer; var nVer: DWORD; var h: THandle): DWORD; stdcall;|73: TWlanCloseHandle = function(h: THandle; pRes: Pointer): DWORD; stdcall;|109: TWlanEnumInterfaces = function(h: THandle; pRes: Pointer; var ppL: PWlanInterfaceInfoList): DWORD; stdcall;|51: TWlanFreeMemory = procedure(p: Pointer); stdcall;|172: TWlanRegisterNotification = function(h: THandle; dwSrc: DWORD; bIgn: BOOL; cb: TWlanNotificationCallback; pCtx: Pointer; pRes: Pointer; var pPrev: DWORD): DWORD; stdcall;|116: TWlanScan = function(h: THandle; const pGuid: TGUID; pSsid: Pointer; pIe: Pointer; pRes: Pointer): DWORD; stdcall;|157: TWlanGetAvailableNetworkList = function(h: THandle; const pGuid: TGUID; dwFlags: DWORD; pRes: Pointer; var ppL: PWlanAvailableNetworkList): DWORD; stdcall;|0:|0:|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|72:onWlanNetworkList,omInterface,onStartScanning,onEndScanning : THI_Event;|0:|58:Procedure doWlanNetworkList (var _Data:TData; Index:word);|0:|5: end;|0:|14:implementation|0:|63:function CompareMem(P1, P2: Pointer; Length: Integer): Boolean;|3:var|13: i: Integer;|16: B1, B2: PByte;|5:begin|18: Result := False;|17: if P1 = P2 then|7: begin|19: Result := True;|9: Exit;|6: end;|40: if (P1 = nil) or (P2 = nil) then Exit;|2: |11: B1 := P1;|11: B2 := P2;|25: for i := 1 to Length do|7: begin|28: if B1^ <> B2^ then Exit;|12: Inc(B1);|12: Inc(B2);|6: end;|17: Result := True;|4:end;|0:|0:|91:procedure WlanNotificationCallback(data: PWlanNotificationData; context: Pointer); stdcall;|3:var|24: ctx: PWlanScanContext;|13: i: Integer;|16: prev: Longint;|5:begin|74: if (data^.NotificationSource and WLAN_NOTIFICATION_SOURCE_ACM) <> 0 then|7: begin|73: if (data^.NotificationCode = wlan_notification_acm_scan_complete) or |81: (data^.NotificationCode = wlan_notification_acm_power_setting_change) then|9: begin|39: ctx := PWlanScanContext(context);|62: for i := 0 to ctx^.InterfaceList^.dwNumberOfItems - 1 do|116: if CompareMem(@ctx^.InterfaceList^.InterfaceInfo[i].InterfaceGuid, @data^.InterfaceGuid, SizeOf(TGUID)) then|155: PDWORD(@ctx^.InterfaceList^.InterfaceInfo[i].isState)^ := DWORD(ctx^.InterfaceList^.InterfaceInfo[i].isState) or (data^.NotificationCode shl 16);|49: ReleaseSemaphore(ctx^.Semaphore, 1, @prev);|8: end;|6: end;|4:end;|0:|0:|71:Procedure THiAsmClass.doWlanNetworkList (var _Data:TData; Index:word);|0:|3:var|20: hWlanLib: THandle;|88: WlanOpen: TWlanOpenHandle; WlanClose: TWlanCloseHandle; WlanEnum: TWlanEnumInterfaces;|87: WlanFree: TWlanFreeMemory; WlanReg: TWlanRegisterNotification; WlanDoScan: TWlanScan;|44: WlanGetList: TWlanGetAvailableNetworkList;|53: hClient: THandle; dwVer, dwPrev, res, nWait: DWORD;|69: pList: PWlanInterfaceInfoList; pNetList: PWlanAvailableNetworkList;|53: ctx: TWlanScanContext; i, j: Integer; ssid: string;|17: outStr: string;|2: |5:begin|41: hWlanLib := LoadLibrary('wlanapi.dll');|28: if hWlanLib = 0 then Exit;|0:|58: @WlanOpen := GetProcAddress(hWlanLib, 'WlanOpenHandle');|60: @WlanClose := GetProcAddress(hWlanLib, 'WlanCloseHandle');|62: @WlanEnum := GetProcAddress(hWlanLib, 'WlanEnumInterfaces');|58: @WlanFree := GetProcAddress(hWlanLib, 'WlanFreeMemory');|67: @WlanReg := GetProcAddress(hWlanLib, 'WlanRegisterNotification');|54: @WlanDoScan := GetProcAddress(hWlanLib, 'WlanScan');|74: @WlanGetList := GetProcAddress(hWlanLib, 'WlanGetAvailableNetworkList');|0:|71: if Assigned(WlanOpen) and (WlanOpen(1, nil, dwVer, hClient) = 0) then|7: begin|45: if WlanEnum(hClient, nil, pList) = 0 then|9: begin|33: ctx.InterfaceList := pList;|76: ctx.Semaphore := CreateSemaphore(nil, 0, pList^.dwNumberOfItems, nil);|17: nWait := 0;|106: WlanReg(hClient, WLAN_NOTIFICATION_SOURCE_ACM, FALSE, @WlanNotificationCallback, @ctx, nil, dwPrev);|0:|39: _hi_OnEvent(onStartScanning,''); |49: for i := 0 to pList^.dwNumberOfItems - 1 do|11: begin|89: res := WlanDoScan(hClient, pList^.InterfaceInfo[i].InterfaceGuid, nil, nil, nil);|102: PDWORD(@pList^.InterfaceInfo[i].isState)^ := DWORD(pList^.InterfaceInfo[i].isState) and $FFFF;|34: if res = 0 then Inc(nWait)|113: else PDWORD(@pList^.InterfaceInfo[i].isState)^ := DWORD(pList^.InterfaceInfo[i].isState) or (res shl 16);|10: end;|0:|89: while nWait > 0 do begin WaitForSingleObject(ctx.Semaphore, 5000); Dec(nWait); end;|0:|49: for i := 0 to pList^.dwNumberOfItems - 1 do|11: begin|97: if WlanGetList(hClient, pList^.InterfaceInfo[i].InterfaceGuid, 2, nil, pNetList) = 0 then|13: begin|110: _hi_OnEvent(omInterface,WideCharLenToString(@pList^.InterfaceInfo[i].strInterfaceDescription, 256));|56: for j := 0 to pNetList^.dwNumberOfItems - 1 do|15: begin|111: SetString(ssid, pNetList^.Network[j].dot11Ssid.ucSSID, pNetList^.Network[j].dot11Ssid.uSSIDLength);|110: _hi_OnEvent(onWlanNetworkList, ssid + ';' + Int2Str(pNetList^.Network[j].wlanSignalQuality)+ '%');|14: end;|29: WlanFree(pNetList);|12: end;|10: end;|33: CloseHandle(ctx.Semaphore);|22: WlanFree(pList);|8: end;|28: WlanClose(hClient, nil);|6: end;|24: FreeLibrary(hWlanLib);|0:|33: _hi_OnEvent(onEndScanning,''); |4:end;|0:|4:end.|
link(omInterface,2953706:doCaption,[(214,139)(214,111)(60,111)(60,125)])
link(onWlanNetworkList,5563891:doAdd,[])
}
Add(StringTable,5563891,245,140)
{
Left=265
Top=185
Align=5
Columns=#8:ssid=300|11:signal=100 |0:|
}
Add(DeferredEvent,726974,126,133)
{
link(onDeferredEvent,14066311:doWlanNetworkList,[])
}

карма: 20

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