Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1235
Благодарности: 518

Профиль | Отправить PM | Цитировать


Цитата koresaram:
там разные. есть винХП есть вин8 есть вин10 »
Возможно, на XP отсутствует, но это поправимо...
Цитата koresaram:
что такое пауершелл я хз »
Ну, например, это:
script.ps1
Код: Выделить весь код
add-type -assembly system.windows.forms
$process = 'notepad'
$start = {c:\windows\notepad.exe}

do {
if (!($p = ps $process -ea 0)){
	&$start
	$p = ps $process
}
$btn = [windows.forms.messageboxbuttons]::yesno
$t1 = [Windows.Forms.MessageBoxIcon]::Question
$t2 = [Windows.Forms.MessageBoxDefaultButton]::Button1
$top = [Windows.Forms.MessageBoxOptions]::ServiceNotification # .topmost = $true

wait-process $p.id
$res = [windows.forms.messagebox]::show($process, "Запускаем файл?",$btn,$t1,$t2,$top)
} while ($res -ne 'No')
запустить можно так:
run.bat
Код: Выделить весь код
@echo off
start "" powershell -ex bypass -w hidden -f .\script.ps1
т.к. messagebox - плохо настраиваемая форма (вывести на передний план я не смог, знаний, наверное, маловато), но можно свою форму наваять, примерно так:
script.ps1
Код: Выделить весь код
add-type -assembly system.windows.forms
$process = 'notepad'
$start = {c:\windows\notepad.exe}

do {
if (!($p = ps $process -ea 0)){
	&$start
	$p = ps $process
}
$form = new-object windows.forms.form
$form.autosize = $true
$form.autosizemode = [windows.forms.autosizemode]::growandshrink
$form.formborderstyle = [windows.forms.formborderstyle]::fixedtoolwindow
$form.controlbox = $false
$form.sizegripstyle = [windows.forms.sizegripstyle]::hide
$form.text = 'Запустить' + ' ' + $process + '?'
$form.showintaskbar = $false
$form.topmost = $true
$form.startposition = 'CenterScreen'


$btnyes = new-object windows.forms.button
$btnyes.text = 'Да'
$btnyes.location = new-object system.drawing.point(3,10)
$btnyes.dialogresult = [windows.forms.dialogresult]::ok
$form.controls.add($btnyes)

$btnno = new-object windows.forms.button
$btnno.text = 'Нет'
$btnno.location = new-object system.drawing.point(110,10)
$btnno.dialogresult = [windows.forms.dialogresult]::no
$form.controls.add($btnno)

wait-process $p.id
$res = $form.showdialog()
} while ($res -ne 'No')

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 28-08-2018 в 21:56. Причина: поправил код

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:23, 28-08-2018 | #22