Дополнил двоичными функциями и выложил: https://github.com/galaxysite/uuencodedecode .
https://codeberg.org/Alexander2024/uuencodedecode
Shell2Shell(Оболочка для оболочки) запуск SD и не только...
Модератор: Модераторы
Интересно, спасибо !
Зы
Проект Shell2Shell пока пока что "заморожен" ( хотя готовой утилитой пользуюсь постоянно )
Честно говоря "громадё планов" сейчас слишком разветвилось и не очень понятно, что там делать в первую очередь .
( понятно что нужно доработать систему поддержки плагинов но что делать дальше пока "темный лес" )
Зы
Проект Shell2Shell пока пока что "заморожен" ( хотя готовой утилитой пользуюсь постоянно )
Честно говоря "громадё планов" сейчас слишком разветвилось и не очень понятно, что там делать в первую очередь .
( понятно что нужно доработать систему поддержки плагинов но что делать дальше пока "темный лес" )
В общем нашел временное решение проблемы запуска оболочки Shell2Shell в Windows 11
(Грок и ДипСек предложили исправить код захвата консоли но там повылезала муть в отладке так что пока отложил правильное решение в долгий ящик ) НО пока неплохо помогает простой запуск от имени администратора ( правда обязательно из программы УЖЕ запущенной от имени администратор почему то прямой "запуск от имени администратора " не помогает) но ярлыке это решается обычным добавлением CMD /C перед именем запускаемого файла .
Или через использование примерно такого батника ...( S2S_Run_To_Win_11.bat ) что пожалуй надежнее будет.
(Проверено в нативной и обновляемой Windows 11 pro работает )
(Грок и ДипСек предложили исправить код захвата консоли но там повылезала муть в отладке так что пока отложил правильное решение в долгий ящик ) НО пока неплохо помогает простой запуск от имени администратора ( правда обязательно из программы УЖЕ запущенной от имени администратор почему то прямой "запуск от имени администратора " не помогает) но ярлыке это решается обычным добавлением 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
Решил застарелую "проблему" с доступом к исходному html-коду загруженной страницы в "модной" библиотеке WebView4Delphi .
UnescapeJsonString - приблуда временная но вроде работает;
P.S.
Вроде не сложно но юзать JS для доступа к данным в памяти ....
Как там? "Дохтор а не слишком ли я много чая пью? "
Код: Выделить всё
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;
P.S.
Вроде не сложно но юзать JS для доступа к данным в памяти ....
Как там? "Дохтор а не слишком ли я много чая пью? "
