Рейтинг@Mail.ru
aave

aave

Print Friendly, PDF & Email

Создатели программы RAdmin принципиально не хотят добавлять в свою программу возможность сохранения пароля подключения, и его постоянно приходится вводить вручную. Одним из простых вариантов решения задачи автоматического ввода пароля может стать создание скрипта, который будет запускать исполняемый файл RAdmin, а затем посылать окну подключения имя пользователя и пароль.

  1. Добавить в системную переменную PATH директорию запуска radmin.exe.
  2. Создать скрипт VBS с таким содержимым:
set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run "Radmin.exe /connect:[hostname]:4899 /16bpp /updates:30"
WScript.Sleep 1000
WshShell.AppActivate "Система безопасности Radmin: [hostname]"
WScript.Sleep 500
WshShell.SendKeys "[username]{TAB}"
WScript.Sleep 100
WshShell.SendKeys "[pass]{ENTER}"

Здесь [hostname] – имя или IP-адрес компьютера в сети, [username], [pass] – имя пользователя и пароль для подключения к серверу RAdmin.

Кстати, если вам нужно подключиться в режиме только просмотра, без управления, то нужно в параметрах запуска RAdmin.exe добавить ключ /noinput.

Print Friendly, PDF & Email
Подробнее ...
Print Friendly, PDF & Email

Это может понадобиться, например, при реализации функциональности DragAndDrop. Напишем метод, возвращающий объект или NULL, если объекта нет:

''' <summary>'
''' Возвращает элемент списка ListBox, находящийся под указателем мыши.'
''' </summary>'
''' <param name="lb">Список.'
''' <param name="p">Позиция курсора. Обычно e.GetPosition(lb), где е type of DragEventArgs.'
Private Function getDataFromListBox(ByVal lb As ListBox, ByVal p As Point) As Object
  Dim element As UIElement = TryCast(lb.InputHitTest(p), UIElement)
  If element IsNot Nothing Then
    Dim data As Object = DependencyProperty.UnsetValue
      Do While data Is DependencyProperty.UnsetValue
        data = lb.ItemContainerGenerator.ItemFromContainer(element)
        If data Is DependencyProperty.UnsetValue Then
          element = CType(VisualTreeHelper.GetParent(element), UIElement)
         End If
       Loop
       If data IsNot DependencyProperty.UnsetValue Then
         Return data
       End If
     End If
   Return Nothing
End Function
Print Friendly, PDF & Email
Подробнее ...
Print Friendly, PDF & Email

Для поиска родителя любого UIElement на странице, напишем такой метод:

''' <summary>'
''' Возвращает визуального родителя заданного типа.'
''' </summary>'
''' <param name="child">Элемент, для которого нужно найти визуального родителя.'
''' <typeparam name="T">Тип искомого родителя.'
Public Shared Function FindVisualParent(Of T As DependencyObject)(ByVal child As DependencyObject) As T
    Dim parentObject As DependencyObject = VisualTreeHelper.GetParent(child)
    If (parentObject Is Nothing) Then
        Return CType(Nothing, T)
    End If
    Dim parent As T = TryCast(parentObject, T)
    If (Not parent Is Nothing) Then
        Return parent
    End If
    Return FindVisualParent(Of T)(parentObject)
End Function
Print Friendly, PDF & Email
Подробнее ...
Print Friendly, PDF & Email

Добавим в поле ввода TextBox обработчик нажатий клавиатуры:

<TextBox PreviewTextInput="checkIfInputDigits" />

А вот код самого обработчика (VB.NET):

Private Sub checkIfInputDigits(sender As Object, e As TextCompositionEventArgs)
    Dim re As New Regex("^[0-9]+") 'объявим регулярное выражение, которое соответствует непрерывной последовательности чисел от 0 до 9
    e.Handled = Not re.IsMatch(e.Text) 'запрещаем ввод символов.
End Sub
Print Friendly, PDF & Email
Подробнее ...
Подписаться на этот канал RSS