We rise up for the things we believe in over and over again

Надоело при помощи цопипасты загружать файлы из нескольких ссылок. Выделить ссылку, скопировать, вставить в браузер. Дождаться, пока вылезет окно сохранения файла, нажать ОК. А потом все это повторить n раз... На-до-е-ло. Хочу так: есть куча ссылок (прямых), выделить их все, скопировать в буфер, нажать 1 (одну) кнопку и получить все разом.
Заодно отметим переход на Powershell 4 (давно пора было это сделать, ISE стал заметно удобнее).


@музыка: Iron Savior - Starborn

@темы: PowerShell, Scripting

Комментарии
23.04.2015 в 19:25

Тотальная неудачница и убийца жёстких дисков.
Я обычно использую свой Links Collector - набирает ссылки из буфера обмена. Потом беру ссылки разом, вставляю в текстовый файл и делаю "wget -i LIST.TXT".
23.04.2015 в 23:43

We rise up for the things we believe in over and over again
Кстати, тоже вариант. Но с повершеллом это будет немного сложнее и тупее - придется постоянно держать в памяти эту консоль. Потому как иначе каждый раз при необходимости загнать ссылку в отстойник нужно будет ждать, пока консоль запустится, что тоже не айс.
24.04.2015 в 11:02

Тотальная неудачница и убийца жёстких дисков.
Links Collector запускается очень быстро ^^
24.04.2015 в 11:05

We rise up for the things we believe in over and over again
Догадываюсь.
Впрочем, положа руку на сердце, мне не так уж часто попадаются такие паки ссылок, чтобы заново изобретать Download Master. Но попавшийся в этот раз меня доконал :)
24.04.2015 в 13:30

Тотальная неудачница и убийца жёстких дисков.
24.04.2015 в 13:30

Тотальная неудачница и убийца жёстких дисков.
Не пробовала пока, идея просто интересная.
24.04.2015 в 13:32

We rise up for the things we believe in over and over again
Гы, у мну как раз была идея грузить все именно через BITS. Но разбираться с BITS было лень, хотя ракушка с ней работает, вроде как, на ура :)
24.04.2015 в 13:57

Тотальная неудачница и убийца жёстких дисков.
Я тоже ходила вокруг да около, но так и не подступилась. Потом осилила WinInet.
24.04.2015 в 13:58

Тотальная неудачница и убийца жёстких дисков.
А ещё говорят, что в WinHTTPServices есть возможность сделать что-то вроде маленького вэб сервера. Говоришь ему, какой URL отлавливать, и он тебе обращения перенаправляет. Только я не разбиралась подробнее.
24.04.2015 в 14:02

We rise up for the things we believe in over and over again
Не, это пока темный лес. Тут более прозаичная задачка пока повисла - научиться в ракушке работать с состоянием окон - bring to front/back...
24.04.2015 в 15:05

Тотальная неудачница и убийца жёстких дисков.
Это и в WinAPI не очень очевидно. Если речь, конечно, идёт о фокусе. Если просто Z-order, то проще. Можно wrapper написать, который будет делать SetWindowPos().
24.04.2015 в 15:06

Тотальная неудачница и убийца жёстких дисков.
Хотя, если есть доступ как .NET, то там есть на эту тему объекты.
24.04.2015 в 15:07

We rise up for the things we believe in over and over again
Да уже нашлось:

По надобности вызываем:
[Win32.NativeMethods]::ShowWindowAsync($hwnd, 1)
24.04.2015 в 18:02

Тотальная неудачница и убийца жёстких дисков.
Я бы обратила внимание на функцию SetForegroundWindow(), которую я использую уже давно из-за её надёжности. Она, к слову, не меняет размеров (состояния, точнее) окна.
24.04.2015 в 19:34

We rise up for the things we believe in over and over again
Она, к слову, не меняет размеров (состояния, точнее) окна.
ShowWindowAsync() - тоже. По крайней мере видимых изменений никаких.

А вот что меня в программировании всегда подбешивало - так это вот такая лапша:
$sig = '[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);'
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32
Не холивара ради - как вы, программеры, черт побери, вообще запоминаете, как и откуда все это тащить/линковать/объявлять? Ну ладно, со встроенными классами .NET еще как-то можно жить. Но вот такое...
25.04.2015 в 12:30

Тотальная неудачница и убийца жёстких дисков.
ShowWindowAsync() - тоже. По крайней мере видимых изменений никаких.

SW_NORMAL = 1
По идее, если окно развёрнуто на весь экран, то оно "восстановится". Плюс ShowWindowAsync() фокус не передаёт вроде бы.

А вот что меня в программировании всегда подбешивало - так это вот такая лапша:
$sig = '[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);'
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32


Хммм...



^^

Не холивара ради - как вы, программеры, черт побери, вообще запоминаете, как и откуда все это тащить/линковать/объявлять? Ну ладно, со встроенными классами .NET еще как-то можно жить. Но вот такое...

Открывается MSDN... Там есть в описании функции указание, из какого LIB файла импортируется и в каком заголовочном файле определено. Или из какой библиотеки тащить. Имя LIB файла совпадает с именем библиотеки.

Если пишешь на C/C++, то многое уже объявлено. Если на VB, то есть уже сделанные объявления - выбирай и копируй в код. Плсю для много у меня есть TLB файл, чтобы не писать объявления ручками.

А вообще, там разделение библиотек. Графика - в GDI32, окна и UI - User32, всякая система вроде I/O и синхронизации - Kernel32.
25.04.2015 в 12:38

We rise up for the things we believe in over and over again
Плюс ShowWindowAsync() фокус не передаёт вроде бы.

SW_SHOWNORMAL
Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

Public Declare Function ShowWindowAsync Lib "user32" Alias "ShowWindowAsync" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
О, мои глаза...
25.04.2015 в 12:56

Тотальная неудачница и убийца жёстких дисков.
Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

Хммм... Но всё равно, часть про "restores" не есть хорошо.

О, мои глаза...

Хорошее читаемое объявление.
25.04.2015 в 13:00

We rise up for the things we believe in over and over again
"restores" не есть хорошо
А что тебя в restore не устраивает? У меня условие задачи такое: при наступлении пиздеца консольное окно должно появиться в том же месте, где оно было до того, как его свернули с глаз долой. ShowNormal это и обеспечивает.

Хорошее читаемое объявление.
Дело привычки. У меня ее пока еще нет...
25.04.2015 в 13:03

Тотальная неудачница и убийца жёстких дисков.
А что тебя в restore не устраивает? У меня условие задачи такое: при наступлении пиздеца консольное окно должно появиться в том же месте, где оно было до того, как его свернули с глаз долой. ShowNormal это и обеспечивает.

Всё, поняла ^^'

Дело привычки. У меня ее пока еще нет...

Переходи на тёмную сторону, у нас есть СКОРОСТЬ!
25.04.2015 в 13:26

We rise up for the things we believe in over and over again
Переходи на тёмную сторону
Я и так на ней :)
25.04.2015 в 13:39

Тотальная неудачница и убийца жёстких дисков.
Я и так на ней :)

Не, то серые области.