Что нового

Запуск разных консолей *.msc по кнопке

kyi

Новичок
Сообщения
43
Репутация
0
Добрый день!
Пытаюсь запустить консоль "Локальных групповых политик при нажатии на кнопку" вот так
Код:
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiButton.au3>

Local $Form_AdminLink, $Button_Close

$Form_AdminLink = GUICreate("AdminLink",650,500,-1,-1,-1,-1)
$Button_Close = GUICtrlCreateButton("Закрыть",540,460,100,30,-1,-1)
Local $Button_TEST = GUICtrlCreateButton("test",20,60,162,30,-1,-1)
GUISetState(@SW_SHOW,$Form_AdminLink)


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		
; Проверяем нажат ли крестик на окне, если нажат, то выходим
		Case $GUI_EVENT_CLOSE
			Exit

; Проверяем нажата ли кнопка ЗАКРЫТЬ, если нажата, то выходим
		Case $Button_Close
			Exit

; Проверяем нажатие тестовой кнопки
		Case $Button_TEST
			Run (@WindowsDir & "\System32\secpol.msc")

	EndSwitch
WEnd

Но оно не запускается :scratch:
Подозреваю что дело в разрядности ОС (у меня х64), но даже при компиляции в 64 битный исполняемый файл все равно не запускается.
Подскажите, как понять (отследить) в чем проблема?
Как запустить это несчастную консоль?
В будущем хочу через кнопки запускать разные консоли.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Код:
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>

Local $iBtnClose, $iBtnTest, $iBtnTest2, $iBtnTest3
GUICreate("AdminLink", 650, 500)
$iBtnClose = GUICtrlCreateButton("Закрыть", 540, 460, 100, 30)
$iBtnTest = GUICtrlCreateButton("Тест", 20, 60, 160, 30)
$iBtnTest2 = GUICtrlCreateButton("Тест 2", 20, 100, 160, 30)
$iBtnTest3 = GUICtrlCreateButton("Тест 3", 20, 140, 160, 30)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE, $iBtnClose
			Exit
		Case $iBtnTest
			ShellExecute("secpol.msc")
		Case $iBtnTest2
			ShellExecute(@WindowsDir & "\System32\secpol.msc")
		Case $iBtnTest3
			ShellExecute(@SystemDir & "\secpol.msc")
	EndSwitch
WEnd
 
A

Alofa

Гость
Код:
#include <WinAPIProc.au3>
#include <GUIConstantsEx.au3>

$Form_AdminLink = GUICreate('AdminLink')
$Button_Close = GUICtrlCreateButton('Закрыть', 540, 460, 100, 30)
$Button_TEST_1 = GUICtrlCreateButton('ShellExecute()', 20, 60, 162, 30)
$Button_TEST_2 = GUICtrlCreateButton('Run()', 20, 100, 162, 30)
$Button_TEST_3 = GUICtrlCreateButton('Run(@ComSpec)', 20, 140, 162, 30)
$Button_TEST_4 = GUICtrlCreateButton('Run() [Запуск x86 разрядной версии]', 20, 180, 262, 30)
GUISetState()

; Если эта программа x86 в x64 битной ОС
If _WinAPI_IsWow64Process() Then GUICtrlSetState($Button_TEST_4, $GUI_DISABLE)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $Button_TEST_1
			ShellExecute(@SystemDir & '\MMC.EXE', 'SECPOL.MSC')
		Case $Button_TEST_2
			If Not IsAdmin() Then MsgBox(262144 + 16, Default, 'Для запуска напрямую через "Run()" не хватит Прав!')
			Run(@SystemDir & '\MMC.EXE SECPOL.MSC')
		Case $Button_TEST_3
			Run(@ComSpec & ' /c ' & @SystemDir & '\MMC.EXE SECPOL.MSC', '', @SW_HIDE)
		Case $Button_TEST_4
			Run(@SystemDir & '\MMC.EXE /32 SECPOL.MSC')
		Case $GUI_EVENT_CLOSE, $Button_Close
			ExitLoop
	EndSwitch
WEnd
 
Автор
K

kyi

Новичок
Сообщения
43
Репутация
0
Ух как много всего. Спасибо, сегодня вечером дома попробую разобраться детально.
Tempo
При нажатии на любую из кнопок получается вот это
msc.png
Alofa
Спасибо большое, очень много полезного узнал, особенно про проверку админских прав
 
Верх