Автоматическое заполнение экрана входа в приложение для рабочего стола Windows в .net - PullRequest
0 голосов
/ 22 ноября 2010

Есть ли способ автозаполнения экрана входа в приложение Windows с помощью .net?

По сути, я хочу, чтобы мой пользователь просто ввел свои учетные данные в мое приложение, где я затем запустил эту другую программу и поместил их учетные данные в окно входа для них.

Спасибо за помощь.

1 Ответ

0 голосов
/ 22 ноября 2010

есть некоторые API, которые вы можете вызвать, могут захватить объект окна и сделать последующие вызовы, чтобы захватить дескриптор текстовых полей в окне.когда у вас есть дескриптор, вы можете вызвать другой API для установки текста на нем.вот некоторые из API, о которых я говорю:

<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)>
Private Shared Function GetForegroundWindow() As IntPtr
End Function

<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)>
Private Shared Function ShowWindow(ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As IntPtr
End Function

<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)>
Private Shared Function DestroyWindow(ByVal hWnd As IntPtr) As Boolean
End Function

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr

<DllImport("user32", CharSet:=CharSet.Auto, SetLastError:=True, ExactSpelling:=True)>
Private Shared Function GetWindow(ByVal hwnd As IntPtr, ByVal uCmd As Integer) As IntPtr
End Function

Private Declare Function SetFocus Lib "user32.dll" (ByVal hwnd As IntPtr) As IntPtr
'Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hWnd As IntPtr, ByVal lpString As String) As Boolean
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function SendMessage(ByVal hWnd As HandleRef, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As String) As IntPtr
End Function


Public Sub SetTitle(ByVal Title As String)
    Dim h As New HandleRef(Me, Handle)
    SendMessage(h, WM_SETTEXT, 0, Title)
End Sub

Public Function GetTitle() As String
    Dim str As String = String.Empty
    Dim h As New HandleRef(Me, Handle)
    SendMessage(h, WM_GETTEXT, 300, str)
    Return str
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...