Shell2Shell(Оболочка для оболочки) запуск SD и не только...

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

Аватара пользователя
Alexander
энтузиаст
Сообщения: 898
Зарегистрирован: 18.12.2005 18:10:00
Откуда: оттуда
Контактная информация:

Сообщение Alexander »

Дополнил двоичными функциями и выложил: https://github.com/galaxysite/uuencodedecode .
https://codeberg.org/Alexander2024/uuencodedecode
Последний раз редактировалось Alexander 18.02.2025 11:12:21, всего редактировалось 1 раз.
Alex2013
долгожитель
Сообщения: 3282
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Интересно, спасибо !
Зы
Проект Shell2Shell пока пока что "заморожен" ( хотя готовой утилитой пользуюсь постоянно )
Честно говоря "громадё планов" сейчас слишком разветвилось и не очень понятно, что там делать в первую очередь .
( понятно что нужно доработать систему поддержки плагинов но что делать дальше пока "темный лес" )
Alex2013
долгожитель
Сообщения: 3282
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

В общем нашел временное решение проблемы запуска оболочки Shell2Shell в Windows 11
(Грок и ДипСек предложили исправить код захвата консоли но там повылезала муть в отладке так что пока отложил правильное решение в долгий ящик ) НО пока неплохо помогает простой запуск от имени администратора ( правда обязательно из программы УЖЕ запущенной от имени администратор почему то прямой "запуск от имени администратора " не помогает) но ярлыке это решается обычным добавлением CMD /C перед именем запускаемого файла .

Или через использование примерно такого батника ...( S2S_Run_To_Win_11.bat ) что пожалуй надежнее будет.

Код: Выделить всё

@echo off
:: Проверка на права администратора
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Запуск с правами администратора...
      powershell -Command "Start-Process '.\Shell2Shell_fix_5_3.exe' -Verb RunAs"
    exit
)
echo права администратора уже доступны!  
Shell2Shell_fix_5_3.exe
(Проверено в нативной и обновляемой Windows 11 pro работает )
Alex2013
долгожитель
Сообщения: 3282
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Решил застарелую "проблему" с доступом к исходному html-коду загруженной страницы в "модной" библиотеке WebView4Delphi .

Код: Выделить всё

procedure TMainForm.WVBrowser1NavigationCompleted(Sender: TObject;
  const aWebView: ICoreWebView2;
  const aArgs: ICoreWebView2NavigationCompletedEventArgs);

begin
    // Запрашиваем HTML через JavaScript
    WVBrowser1.ExecuteScript('document.documentElement.outerHTML',999);
end ;


function UnescapeJsonString(const JsonStr: string): string;
var
  i: Integer;
begin
  Result := '';
  i := 1;
  while i <= Length(JsonStr) do
  begin
    if (JsonStr[i] = '\') and (i + 1 <= Length(JsonStr)) then
    begin
      case JsonStr[i + 1] of
        'n': Result := Result + #10;   // \n -> перевод строки
        'r': Result := Result + #13;   // \r -> возврат каретки
        't': Result := Result + #9;    // \t -> табуляция
        '\': Result := Result + '\';   // \\ -> обратный слеш
        '"': Result := Result + '"';   // \" -> кавычка
        'u': // Unicode escape типа \u003C
        begin
          if i + 5 <= Length(JsonStr) then
          begin
            Result := Result + Char(StrToInt('$' + Copy(JsonStr, i + 2, 4)));
            i := i + 5;
          end;
        end;
      else
        Result := Result + JsonStr[i]; // оставляем как есть
      end;
      Inc(i, 2);
    end
    else
    begin
      Result := Result + JsonStr[i];
      Inc(i);
    end;
  end;
end;
procedure TMainForm.WVBrowser1ExecuteScriptCompleted(Sender: TObject;
  aErrorCode: HRESULT; const aResultObjectAsJson: wvstring;
  aExecutionID: integer);
begin

if (aErrorCode >= 0) And (aExecutionID=999) then
  begin
   HTMLText:= UnescapeJsonString(aResultObjectAsJson);
   StatusBar1.SimpleText:='HTML получен. Длина: ' + IntToStr(Length(HTMLText));
  end ;

end;

UnescapeJsonString - приблуда временная но вроде работает;
P.S.
Вроде не сложно но юзать JS для доступа к данным в памяти ....
Как там? "Дохтор а не слишком ли я много чая пью? " ;)
Ответить