2010-11-22 2 views
0

Есть ли способ автозаполнения экрана входа в Windows, используя .net?Автоматическое заполнение окна входа в настольный компьютер Windows .net

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

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

+2

Звучит коварно .. – jlafay

+0

Дополнительные пояснения пожалуйста. Итак, у нас есть 1 приложение или два? Когда пользователи должны вводить свои учетные данные и когда вы будете делать для них? – Aliostad

+0

Вам нужно будет попасть в обработчики окон и все эти материалы C++. –

ответ

-1

Есть некоторые API, которые вы можете вызвать, может tp захватить объект окна и сделать последующие вызовы, чтобы захватить дескриптор текстовых полей внутри окна. после того, как у вас есть дескриптор, вы можете вызвать другой 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 
Смежные вопросы