问题描述:
1.有软件A,本来是可以通过输入用户名和密码人工登录的,现在被软件B通过调用句柄的方式,直接从后台调用了.
问题期望解决方法:
1.能否阻止这种非正常的调用.阻止用软件B调用软件A 保证软件A只能通过人工双击的方式来运行?

解决方案 »

  1.   

    可以,子类化文本框窗口,吃掉wm_settext消息。换成自己的处理。
      

  2.   

    能详细一点吗  刚接触这一块不是很了解
    1.也就是,如何吃掉wm_settext消息? 我理解的基本思路应该是阻断调用,能否具体一点?
    2.换成自己的? 是重写吗? 我这边是整个系统,如果我吃掉了wm_settext是否会对我整个系统造成影响?
    还请多多指点.
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                myTextBox1.CheckPass = myTextBox1.Handle.ToInt32() * 2;
                String strText = myTextBox1.Text;
                myTextBox1.CheckPass = 0;
                MessageBox.Show(strText);
            }
        }    public class MyTextBox : TextBox
        {
            private Int32 _CheckPass;        public Int32 CheckPass
            {
                get
                {
                    return _CheckPass;
                }
                set
                {
                    _CheckPass = value;
                }
            }        protected override void WndProc(ref Message m)
            {
                if (m.Msg == 0x000D)
                {
                    if (CheckPass != m.HWnd.ToInt32() * 2)
                    {
                        return;
                    }
                }            base.WndProc(ref m);
            }
        }
    }
    http://topic.csdn.net/u/20120925/01/e9606dce-3f22-4b2a-b2dd-d9b8e3521bc6.html