Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зациклить команду до её получения 
:(
    Опции темы
unga
Дата 4.6.2019, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.6.2019

Репутация: нет
Всего: нет



Всем привет!

Подскажите начинаещиму, нужно зациклить команду до ее выполнения.
Команду нужно зациклить на 5 раз, но если команда выполнится с первого раза тогда идем по коду дальше.



Это сообщение отредактировал(а) unga - 4.6.2019, 22:24
PM MAIL   Вверх
Akina
Дата 4.6.2019, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20426
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 32
Всего: 449



ЯННП. Попробуйте объяснить другими словами, и более подробно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
unga
Дата 4.6.2019, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.6.2019

Репутация: нет
Всего: нет



Код нужен на VB6

Sub Main()

программа запрашивает права администратора

CreateObject("Shell.Application").ShellExecute App.Path & "\" & App.EXEName & ".ехе", "1", "", "runas", 1

если отказ запрашивает еще раз и так до 3-5 раза
после чего идет установка программы
но если с первого раза дать права администратора 
программа сразу начинает установку не запрашивая их по новой 
PM MAIL   Вверх
Akina
Дата 5.6.2019, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20426
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 32
Всего: 449



Цитата(unga @  4.6.2019,  23:24 Найти цитируемый пост)
если отказ запрашивает еще раз и так до 3-5 раза

И что, после 3-5 запросов соглашается работать и так, без прав администратора?
И что такое в данном случае "отказ"?
Непонятно.

Цитата(unga @  4.6.2019,  23:24 Найти цитируемый пост)
если с первого раза дать права администратора 
программа сразу начинает установку не запрашивая их по новой  

Имеется в виду запуск от имени администратора, или включение текущей учётной записи в группу Администраторы (или иной способ присвоения администраторских привилегий)?

Код на VB6 должен быть таким: программа ПРОВЕРЯЕТ наличие прав администратора. Если они имеются - программа выполняется. Если нет - она запускает свою копию, но с администраторскими привилегиями, а сама завершает работу. Копия при этом получает дополнительный входной параметр, который означает, что это не начальный запуск, и если проверка покажет, что опять нет необходимых прав, она должна сообщить о неустранимой проблеме получения прав администратора и завершить работу.

Проверку можно выполнить, например, используя функцию IsUserAnAdmin из Shell32.

Альтернативно можно создать для программы манифест с установленным requestedExecutionLevel=requireAdministrator. Тогда при запуске запрос повышения уровня привилегий будет выполнен операционной системой.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
unga
Дата 5.6.2019, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.6.2019

Репутация: нет
Всего: нет



Цитата
И что, после 3-5 запросов соглашается работать и так, без прав администратора?

Да, если не удалось после 3-х запросов администратора программа начинает установку без админа прав

Цитата
И что такое в данном случае "отказ"?

отказ - если не дали на разрешения админ прав

Цитата
Имеется в виду запуск от имени администратора, или включение текущей учётной записи в группу Администраторы (или иной способ присвоения администраторских привилегий)?

Просто запуск от имени администратора
PM MAIL   Вверх
unga
Дата 5.6.2019, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.6.2019

Репутация: нет
Всего: нет



Подскажите как повторить 3-5 раз запрос администратора


Код

Private Declare Function IsUserAnAdmin Lib "shell32" () As Long

Sub Main()

On Error Resume Next

If IsUserAnAdmin() = 0 Then

CreateObject("Shell.Application").ShellExecute App.Path & "\" & App.EXEName & ".exe", "1", "", "runas", 1
   
   Else
   
     MsgBox "Admin"
     
   End If


End Sub


PM MAIL   Вверх
Akina
Дата 6.6.2019, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20426
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 32
Всего: 449



Цитата(unga @  5.6.2019,  23:30 Найти цитируемый пост)
как повторить 3-5 раз

Код

Dim count As Integer = 0
Dim flag As Boolean = False

Do
    count = count + 1
    ' action, set flag = True if success
    DoEvents ' recommended
Loop Until flag OR (count = 5)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
unga
Дата 6.6.2019, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.6.2019

Репутация: нет
Всего: нет



Спасибо Akina но у Вас код на VB.NET

подскажите в коде ошибка запрос повторяется 5 раз даже если дать админ права
нужно сделать если админ права есть программа с первого раза покажет "Админ" если нет повторит попытку 5 раз

Код

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function IsUserAnAdmin Lib "shell32" () As Long
Sub Main()

If IsUserAnAdmin() = 0 Then
    For i = 1 To 5
        Call bb
        If IsUserAnAdmin <> 0 Then Exit For
    Next i
Else
    MsgBox "Admin"
End If

End Sub

Sub bb()

ShellExecute 0, "runas", App.Path & "\" & App.EXEName & ".exe", Command, vbNullString, 1

End Sub




Это сообщение отредактировал(а) Akina - 7.6.2019, 07:26
PM MAIL   Вверх
Akina
Дата 7.6.2019, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20426
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 32
Всего: 449



Цитата(unga @  6.6.2019,  15:09 Найти цитируемый пост)
у Вас код на VB.NET

 smile Во блин... а мужики-то не знают...

Добавлено через 7 минут и 47 секунд
Цитата(unga @  6.6.2019,  15:09 Найти цитируемый пост)
в коде ошибка запрос повторяется 5 раз даже если дать админ права

Да с логикой у Вас... вот кто Вам сказал, что если дочернему процессу дать админа, то и родитель станет админом?

Я же вроде вменяемо написал - если не админ, приложение должно перезапускать СЕБЯ от имени АДМИНА.

И с параметрами у ShellExecute напахали... посмотрите описание функции, что ли - нет такой операции как "runas".


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Google
  Дата 18.11.2019, 22:51 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0780 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.