Lấy ID và pass của phần mềm TeamViewer

public class EnumerateOpenedWindows
{
    const int MAXTITLE = 255;

    private static List<string> lstTitles;

    private delegate bool EnumDelegate(IntPtr hWnd, int lParam);

    [DllImport("user32.dll", EntryPoint = "EnumDesktopWindows",
    ExactSpelling = false, CharSet = CharSet.Auto, SetLastError = true)]
    private static extern bool EnumDesktopWindows(IntPtr hDesktop,
    EnumDelegate lpEnumCallbackFunction, IntPtr lParam);

    [DllImport("user32.dll", EntryPoint = "GetWindowText",
    ExactSpelling = false, CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int _GetWindowText(IntPtr hWnd,
    StringBuilder lpWindowText, int nMaxCount);

    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool IsWindowVisible(IntPtr hWnd);

    private static bool EnumWindowsProc(IntPtr hWnd, int lParam)
    {
        string strTitle = GetWindowText(hWnd);
        if (strTitle != "" & IsWindowVisible(hWnd)) //
        {
            lstTitles.Add(strTitle);
        }
        return true;
    }

    /// <summary>
    /// Return the window title of handle
    /// </summary>
    /// <param name="hWnd"></param>
    /// <returns></returns>
    public static string GetWindowText(IntPtr hWnd)
    {
        StringBuilder strbTitle = new StringBuilder(MAXTITLE);
        int nLength = _GetWindowText(hWnd, strbTitle, strbTitle.Capacity + 1);
        strbTitle.Length = nLength;
        return strbTitle.ToString();
    }

    /// <summary>
    /// Return titles of all visible windows on desktop
    /// </summary>
    /// <returns>List of titles in type of string</returns>
    private static string[] GetDesktopWindowsTitles()
    {
        lstTitles = new List<string>();
        EnumDelegate delEnumfunc = new EnumDelegate(EnumWindowsProc);
        bool bSuccessful = EnumDesktopWindows(IntPtr.Zero, delEnumfunc, IntPtr.Zero); //for current desktop

        if (bSuccessful)
        {
            return lstTitles.ToArray();
        }
        else
        {
            // Get the last Win32 error code
            int nErrorCode = Marshal.GetLastWin32Error();
            string strErrMsg = String.Format("EnumDesktopWindows failed with code {0}.", nErrorCode);
            throw new Exception(strErrMsg);
        }
    }

    static void Main()
    {
        string[] strWindowsTitles = GetDesktopWindowsTitles();
        foreach (string strTitle in strWindowsTitles)
        {
            Console.WriteLine(strTitle);
        }
        Console.ReadLine();
    }
}