Рабочий пример
Zireael пишет:
Через createpipeprocess запустить powershell и сделать что нужно.
Сомневаюсь я .. Что то никак.. Видать защита не дает таких возможностей..
Получилось только реально запускать и манипулировать клавиатурой или вставлять через буфер обмена.
Такой скрипт powershell - ра создает файл, делает в него запись и сохраняет на диск:
CODE:$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$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()
Печатать клавиатурой
CODE:start("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe");
while (window (-1, "ConsoleWindowClass", -1)==0)sleep(50);
win w=window (-1, "ConsoleWindowClass", -1);
pause(1000);
string A="$Excel = New-Object -ComObject Excel.Application;$Excel.Visible = $true;$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()^n";
key(A, 1, 1, w);
Ввод через буфер обмена (Для вин 7) В других версиях может меню отличаться. Настроить на свое.
CODE:start("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe");
while (window (-1, "ConsoleWindowClass", -1)==0)sleep(50);
win w=window (-1, "ConsoleWindowClass", -1);
sendlanguage("00000409", w);//Русс раскладка
string A="$Excel = New-Object -ComObject Excel.Application;$Excel.Visible = $true;$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()";
writeclipboard(A);//В буфер обмена
pause(1000);
//alt + Space для вызова меню
//Затем 5 раз вниз по меню, 1 раз враво, 2 раза вниз и ентер.
//Опять ентер
keydown(MENU, 1, 0, w); key(SPACE, 1, 0, w); keyup(MENU, 1, 0, w);
sleep(500);
loop(5){key(DOWN, 1, 0, w); sleep(300);}
key(DOWN, 1, 0, w);
sleep(500);
key(RIGHT, 1, 0, w);
sleep(500);
loop(2){key(DOWN, 1, 0, w); sleep(300);}
key(RETURN, 1, 0, w);
sleep(500);
key(RETURN, 1, 0, w);