Автор Тема: Запуск разных консолей *.msc по кнопке  (Прочитано 765 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый день!
Пытаюсь запустить консоль "Локальных групповых политик при нажатии на кнопку" вот так
Код: AutoIt [Выделить]
#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

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

Русское сообщество AutoIt

Запуск разных консолей *.msc по кнопке
« Отправлен: Апрель 15, 2018, 20:48:31 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 401
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск разных консолей *.msc по кнопке
« Ответ #1, Отправлен: Апрель 15, 2018, 22:35:10 »
Код: AutoIt [Выделить]
#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


Помечен как лучший ответ пользователем kyi Отправлен Апрель 16, 2018, 21:13:07

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1431
  • Репутация: 212
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Запуск разных консолей *.msc по кнопке
« Ответ #2, Отправлен: Апрель 16, 2018, 00:45:20 »
Код: AutoIt [Выделить]
#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

« Последнее редактирование: Апрель 16, 2018, 00:52:14 от Alofa »

Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск разных консолей *.msc по кнопке
« Ответ #3, Отправлен: Апрель 16, 2018, 11:24:37 »
Ух как много всего. Спасибо, сегодня вечером дома попробую разобраться детально.
Tempo
При нажатии на любую из кнопок получается вот это
(нажмите для показа/скрытия)
Alofa
Спасибо большое, очень много полезного узнал, особенно про проверку админских прав
« Последнее редактирование: Апрель 16, 2018, 21:12:27 от kyi »

Русское сообщество AutoIt

Re: Запуск разных консолей *.msc по кнопке
« Ответ #3 Отправлен: Апрель 16, 2018, 11:24:37 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
12 Ответов
10789 Просмотров
Последний ответ Август 03, 2018, 19:36:42
от Vladimir02
5 Ответов
3664 Просмотров
Последний ответ Февраль 09, 2010, 18:08:38
от snoitaleR
11 Ответов
6986 Просмотров
Последний ответ Июль 27, 2012, 13:08:55
от AZJIO
5 Ответов
3073 Просмотров
Последний ответ Апрель 04, 2013, 18:58:36
от InnI
4 Ответов
6861 Просмотров
Последний ответ Сентябрь 21, 2015, 08:37:26
от ulan44
5 Ответов
1238 Просмотров
Последний ответ Сентябрь 22, 2015, 09:17:12
от x316x
11 Ответов
1048 Просмотров
Последний ответ Июль 06, 2017, 15:59:25
от ra4o
2 Ответов
450 Просмотров
Последний ответ Декабрь 16, 2017, 14:37:23
от sosisochnikru
4 Ответов
598 Просмотров
Последний ответ Февраль 21, 2018, 22:57:15
от Alofa
1 Ответов
115 Просмотров
Последний ответ Август 16, 2018, 13:46:23
от hedji