c # - Auto udfyld en Windows desktop application login skærm i .net

Indlæg af Hanne Mølgaard Plasc

Problem



Er der en måde at autofilere en Windows Application login skærm ved hjælp af. Net?


Basicaly Jeg vil simpelthen lade min bruger sætte deres legitimationsoplysninger i min ansøgning, hvor jeg derefter starter dette andet program og sætter deres legitimationsoplysninger i login-vinduet for dem.


Tak for hjælpen.

Bedste reference


der er nogle API'er, du kan ringe, kan du tage fat i vinduesobjektet og foretage efterfølgende opkald for at få fat i håndtaget i tekstbokse i vinduet. Når du har håndtaget, kan du ringe til en anden API for at indstille teksten på den. her er nogle af API'erne jeg snakker om:


<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