Войти

Показать полную графическую версию : как вытащить картинку из буфера обмена батником


Страниц : [1] 2

angel_lyucifer
16-11-2013, 00:27
Привет всем!
как вытащить картинку из буфера обмена с помощью bat файла, командой типа:
clip > echo > foto.jpg
Без использования отдельных утилит...
Помогите пожалуйста.

Iska
16-11-2013, 00:30
1. «Вытащить» куда? Сохранить в файл с неким предопределённым путём?
2. Какая ОС? Windows 7?

angel_lyucifer
16-11-2013, 17:58
Цитата Iska: «Вытащить» куда? »
Сохранить на винт.
Цитата Iska: Сохранить в файл с неким предопределённым путём? »
Путь сохранение на рабочем столе.
У меня ОС, Windows 7...

Iska
16-11-2013, 18:41
PowerShell:
Add-Type -AssemblyName System.Windows.Forms

if ([System.Windows.Forms.Clipboard]::ContainsImage()) {
([System.Windows.Forms.Clipboard]::GetImage()).Save((Join-Path -Path ([Environment]::GetFolderPath("Desktop")) -ChildPath "Clipboard.png"), [System.Drawing.Imaging.ImageFormat]::Png)
} else {
Write-Host "Clipboard not contains an image"
}

Отдельное спасибо коллеге Kazun за исправление ошибки.

angel_lyucifer
17-11-2013, 02:17
В каком расширении сохранить скрипт?

Iska
17-11-2013, 09:11
В каком расширении сохранить скрипт? »
«.ps1». И разрешите исполнение локальных скриптов PowerShell (Using the Set-ExecutionPolicy Cmdlet (http://technet.microsoft.com/en-us/library/ee176961.aspx)), если ранее не сделали этого.

angel_lyucifer
17-11-2013, 21:32
Извините но данный скрипт не работает.
При нажатии на кнопку (PrtScn) на клавиатуре, и картинка попадает в буфер обмена потом я запускаю мой батник он должен сохранять из буфера готовую картинку...

Вот содержимое мое батника:
start %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "script.ps1"
Или
start powershell.exe "script.ps1"
Но оба примера, не работают.

Iska
18-11-2013, 00:29
Зачем Вам ещё и пакетный файл? Сделайте просто ярлык на файл «Путь\script.ps1» и пользуйте.

angel_lyucifer
18-11-2013, 04:37
Зачем Вам ещё и пакетный файл? »
Я просто пишу небольшую программу.

Kazun
18-11-2013, 12:20
Чтоб пример Iska заработал, требуется не забыть добавить первой строчкой:
Add-Type -AssemblyName System.Windows.Forms

Iska
18-11-2013, 14:07
Kazun, под IDE (PowerShell ISE) работает потому, что там данная конкретная сборка загружается автоматически? Под нужды самого IDE?

Kazun
18-11-2013, 14:22
Именно так,в PowerShell ISE данная сборка загружается по умолчанию.

Iska
18-11-2013, 14:38
Kazun, спасибо, ясно. Моя ошибка понятна. Внёс дополнение в пост со скриптом.

angel_lyucifer
18-11-2013, 19:08
Чтоб пример Iska заработал, требуется не забыть добавить первой строчкой: »


А куда добавить, в скрипт ps1 или батник?

Iska
18-11-2013, 23:38
angel_lyucifer, в скрипт. Вы так и не сказали, зачем Вам нужен ещё и пакетный файл.

angel_lyucifer
19-11-2013, 21:57
Вы так и не сказали, зачем Вам нужен ещё и пакетный файл. »
Ох, я же вам уже написал (Я пишу собственную небольшую программу, которая будет делать сама скриншоты и будет состоять из 3х скриптов).
1) Скрипт для Управления и Интерфейса.
2) Скрипт для Эмуляции клавиш.
3) Скрипт для Извлечения из буфера обмена и сохранения на Жёсткий диск.
И всё это будет контролировать пакетный файл.

kiripanda
19-11-2013, 23:10
"кнопка создания графического файла с содержимым буфера обмен" http://forum.wincmd.ru/viewtopic.php?p=47179

Iska
20-11-2013, 00:27
И всё это будет контролировать пакетный файл. »
Вам не нужен пакетный файл. Вам более чем достаточно одного скрипта PowerShell. И для интерфейса, и для эмуляции, и для сохранения. А можно ничего не писать, а просто взять PicPic и пользоваться.

angel_lyucifer
20-11-2013, 17:37
Вам не нужен пакетный файл. Вам более чем достаточно одного скрипта PowerShell. И для интерфейса, и для эмуляции, и для сохранения. А можно ничего не писать, а просто взять PicPic и пользоваться. »
Проблема в том что я совсем не разбираюсь в PowerShell...

Даже в скрипте:

Add-Type -AssemblyName System.Windows.Forms
if ([System.Windows.Forms.Clipboard]::ContainsImage()) {
([System.Windows.Forms.Clipboard]::GetImage()).Save((Join-Path -Path ([Environment]::GetFolderPath("Desktop")) -ChildPath "Clipboard.png"), [System.Drawing.Imaging.ImageFormat]::Png)
} else {Write-Host "Clipboard not contains an image"}


Какие то проблема, скрипт не хочет работать в моей OC Win7... -(

Iska
20-11-2013, 18:57
Проблема в том что я совсем не разбираюсь в PowerShell... »
Я тоже. Но я учусь.

Какие то проблема, скрипт не хочет работать в моей OC Win7... »
Запустите консоль PowerShell. Выполните в ней указанный скрипт .ps1, указав его либо с полным путём, либо через ссылку на текущий каталог: «.\Имя.ps1». Скопируйте текст проблемы из окна консоли и выложите его. Ибо «не хочет работать» мало о чём говорит.




© OSzone.net 2001-2012