Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (12): В начало « 4 5 6 7 8 9 10 [11] 12 »   

> Описание: Добавлены файловые операции (чтение запись в текстовый файл)
Zireael
Отправлено: 14 Февраля, 2021 - 00:22:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
if (createpipeprocess("powershell.exe -NoLogo")))
{
_sendpipe("Set-ExecutionPolicy Unrestricted -Force");
_sendpipe("$Excel = New-Object -ComObject Excel.Application");
_sendpipe("$Excel.Visible = $True"); // если false окно не будет отображаться
_sendpipe("$WorkBook = $Excel.Workbooks.Add()");
_sendpipe("$LogiclDisk = $WorkBook.Worksheets.Item(1)");
_sendpipe("$LogiclDisk.Name = ^'Local Disk^'");
_sendpipe("$LogiclDisk.Cells.Item(1,1) = ^'Text^'");
_sendpipe("$Excel.DisplayAlerts=$False");
_sendpipe("$WorkBook.SaveAs(^'D:\MyExcel.xlsx^')");
_sendpipe("$WorkBook.Close()");
_sendpipe("$Excel.Quit()");

closepipeprocess();
}


function _sendpipe(string command)
{
string S;
sendpipe(command+"^n");
waitpipe();
getpipe(#S);
}
 
 Top
Kibor
Отправлено: 14 Февраля, 2021 - 00:36:55
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Ни каких специальных настроек в винде не производили?

Зависает в Киборе после отправления первой команды
CODE:
Set-ExecutionPolicy Unrestricted -Force

Кибор от админа запущен.

Скрипт сам по себе в среде выполняется нормально.
(Добавление)
Если убрать скрытие заголовка. то зависает после второй.
Кроме банера powershell ничего не хочет давать, так как ничего наверно не воспринимает и не выполняет..
 
 Top
Zireael
Отправлено: 14 Февраля, 2021 - 00:44:22
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Ни каких специальных настроек в винде не производили?

Win10, powershell добавлен в исключения защитника windows.
 
 Top
Kibor
Отправлено: 14 Февраля, 2021 - 00:54:32
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Добавил в защитник 7 powershell и кибор. Ничего не дало.. Не работает.. Так же зависает. Кроме банера ничего не отдает, если его не отключать..
 
 Top
Kibor
Отправлено: 14 Февраля, 2021 - 10:11:07
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Рабочий пример

Короче так удалось запустить.
Если передавать в виде параметра.
Правда Excel процесс не завешается. Потом разберусь.


 Цитата:
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$WorkBook = $Excel.Workbooks.Add()
$LogiclDisk =$WorkBook.Worksheets.Item(1)
$LogiclDisk.Name = 'Логические диски'
$LogiclDisk.Cells.Item(1,1) = 'Буква диска'
$WorkBook.SaveAs('C:\Bot\1\Report.xlsx')
$Excel.Quit()
echo 1



echo 1
надо что бы waitpipe(); дождалась вывода.




CODE:
string A="$Excel = New-Object -ComObject Excel.Application;$Excel.Visible = $false;$WorkBook = $Excel.Workbooks.Add();$LogiclDisk =$WorkBook.Worksheets.Item(1);$LogiclDisk.Name = ^'Логические диски^';$LogiclDisk.Cells.Item(1,1) = ^'Буква диска^';$WorkBook.SaveAs(^'C:\Bot\1\Report.xlsx^');$Excel.Quit();echo 1;";
if (createpipeprocess("powershell.exe -Command ^""+A+"^""))
{
waitpipe();
closepipeprocess();
}
 
 Top
Zireael
Отправлено: 14 Февраля, 2021 - 10:33:58
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Правда Excel процесс не завешается.

В конец скрипта добавить удаление объектов:
CODE:
[Runtime.Interopservices.Marshal]::ReleaseComObject($Excel) | Out-Null
Remove-Variable WorkBook, LogiclDisk, Excel
[GC]::Collect()

Русские символы надо отправлять в кодировке CP866 иначе будут кракозябры в excel.
Конвертировать можно через CharToOemA.

(Отредактировано автором: 14 Февраля, 2021 - 10:36:01)

 
 Top
Kibor
Отправлено: 14 Февраля, 2021 - 10:44:28
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Zireael пишет:
В конец скрипта добавить удаление объектов:

Хорошо теперь

 Цитата:
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$WorkBook = $Excel.Workbooks.Add()
$LogiclDisk =$WorkBook.Worksheets.Item(1)
$LogiclDisk.Name = 'Логические диски'
$LogiclDisk.Cells.Item(1,1) = 'Буква диска'
$WorkBook.SaveAs('C:\Bot\1\Report.xlsx')
$Excel.Quit()
[Runtime.Interopservices.Marshal]::ReleaseComObject($Excel) | Out-Null;
Remove-Variable WorkBook, LogiclDisk, Excel;
[GC]::Collect();
echo 1


CODE:
string A="$Excel = New-Object -ComObject Excel.Application;$Excel.Visible = $false;$WorkBook = $Excel.Workbooks.Add();$LogiclDisk =$WorkBook.Worksheets.Item(1);$LogiclDisk.Name = ^'Логические диски^';$LogiclDisk.Cells.Item(1,1) = ^'Буква диска^';$WorkBook.SaveAs(^'C:\Bot\1\Report.xlsx^');$Excel.Quit();[Runtime.Interopservices.Marshal]::ReleaseComObject($Excel) | Out-Null;Remove-Variable WorkBook, LogiclDisk, Excel;[GC]::Collect();echo 1;";
if (createpipeprocess("powershell.exe -Command ^""+A+"^""))
{
waitpipe();
closepipeprocess();
}


 Zireael пишет:
Русские символы надо отправлять в кодировке CP866 иначе будут кракозябры в excel.

Таким способом нормально отображаются и сохраняются в файле.
 
 Top
Zireael
Отправлено: 14 Февраля, 2021 - 10:48:23
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Русские символы надо отправлять в кодировке CP866 иначе будут кракозябры в excel.
Таким способом нормально отображаются и сохраняются в файле.

Таким да, если отправлять через sendpipe, то будут кракозябры.
 
 Top
konctantin777
Отправлено: 19 Февраля, 2021 - 18:18:37
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Здравствуйте. Как печатать ТАб ? Пишу в блокнот, чтобы по столбцам в эксель нормально переносилось, надо разделитель "таб" делать
CODE:
if (fopen ("D:\111\111.txt", "a")!=0)
{//если открылся
fwrite(text_KIB);fwrite (";");fwrite(Text[0]);fwrite (";");fwrite(Text[1]);fwrite (";");fwrite(Text[2]);fwrite (";");fwrite(Text[3]);fwrite (";");fwrite(Text[4]);fwrite (";");
fwrite(ENDL);//записываем в файл перевод строки
fwrite("----------------------------------------------");
fwrite(ENDL);//записываем в файл перевод строки
fclose();//закрываем файл
}

(Отредактировано автором: 19 Февраля, 2021 - 18:19:01)

 
 Top
Zireael
Отправлено: 20 Февраля, 2021 - 01:22:11
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Как печатать ТАб ?

CODE:
messagebox("123"+formatic(9)+"qwerty");
messagebox("123^tqwerty");
 
 Top
Страниц (12): В начало « 4 5 6 7 8 9 10 [11] 12 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by