示例#1
0
        private ushort GeneratePassword(SecureString randpass)
        {
            int    rv;
            ushort len;

            try
            {
                len = Convert.ToUInt16(txtnoChars.Text);
            }
            catch
            {
                MessageBox.Show("Invalid password length");
                return(0);
            }

            if (len < 1 | len > 255)
            {
                MessageBox.Show("Length must be between 1 and 255 characters");
                return(0);
            }

            // Get a handle to our window so we can pass it to the native function
            var wnd  = GetWindow(this);
            var wih  = new WindowInteropHelper(wnd);
            var hptr = wih.Handle;

            if (chChars.IsChecked == true)
            {
                rv = _mgr.generate_and_view_password(len, PasswordFlag.All, ref randpass, hptr);
            }
            else
            {
                rv = _mgr.generate_and_view_password(len, PasswordFlag.UpperCase | PasswordFlag.LowerCase | PasswordFlag.Numerals, ref randpass, hptr);
            }

            if (rv == PasswordManagerStatus.UserCancelled)
            {
                return(0);
            }

            if (rv != PasswordManagerStatus.OK)
            {
                MessageBox.Show("Error generating password: " + rv.ToString());
                return(0);
            }

            return(len);
        }