using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1; private System.ComponentModel.Container components = null; [STAThread]
static void Main() {
Application.Run(new Form1());
} public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows 窗体设计器生成的代码
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(32, 24);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(32, 64);
this.textBox1.Name = "textBox1";
this.textBox1.TabIndex = 1;
this.textBox1.Text = "textBox1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false); }
#endregion private void button1_Click(object sender, System.EventArgs e) {
MessageBox.Show("This is button1 click!");
}
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1; private System.ComponentModel.Container components = null; [STAThread]
static void Main() {
Application.Run(new Form1());
} public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows 窗体设计器生成的代码
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(32, 24);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(32, 64);
this.textBox1.Name = "textBox1";
this.textBox1.TabIndex = 1;
this.textBox1.Text = "textBox1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false); }
#endregion private void button1_Click(object sender, System.EventArgs e) {
MessageBox.Show("This is button1 click!");
}
}
解决方案 »
- NPOI EXCEL 指定列只读不允许修改
- winform中放了一个TextBox,怎样慢慢滚动翻屏?先感谢前辈了!
- APIsUser32类什么干什么用的?
- 在C#中怎样实现如下界面,各位大侠帮个忙啦
- C#操作intermec PX4i打印机
- C学习
- 如果我在互联网上有一个SQL Server服务器(固定IP),我的程序能远程从任意地方访问他吗??怎么访问!
- 怎样用DataAdapter把DataSet中的数据更新到数据库?
- 我的C#.net启动不起Web项目呢?
- 关闭fileupload进程问题!
- 类型或命名空间名称“SqlConnection 在类或命名空间,System中不存在(是否缺少程序集引用?)
- 一个Dockpanel的问题 很急
using System.Text;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices; public class TestForm1 : System.Windows.Forms.Form {
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2; private System.ComponentModel.Container components = null; [STAThread]
static void Main() {
Application.Run(new TestForm1());
} public TestForm1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows 窗体设计器生成的代码
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(32, 24);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(32, 64);
this.button2.Name = "button2";
this.button2.TabIndex = 0;
this.button2.Text = "button2";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// TestForm1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.button1);
this.Controls.Add(this.button2);
this.Name = "TestForm1";
this.Text = "TestForm1";
this.ResumeLayout(false); }
#endregion private void button1_Click(object sender, System.EventArgs e) {
IntPtr hwnd_win ;
IntPtr hwnd_button ; hwnd_win = FindWindow("WindowsForms10.Window.8.app3","Form1");
hwnd_button = FindWindowEx(hwnd_win ,new IntPtr(0) ,"WindowsForms10.BUTTON.app3","button1"); const int BM_CLICK = 0x00F5;
Message msg = Message.Create(hwnd_button ,BM_CLICK ,new IntPtr(0),new IntPtr(0));
PostMessage(msg.HWnd ,msg.Msg ,msg.WParam ,msg.LParam);
}
private void button2_Click(object sender, System.EventArgs e) {
const int WM_CHAR = 0x0102;
IntPtr hwnd_win ;
IntPtr hwnd_textbox ; hwnd_win = FindWindow("WindowsForms10.Window.8.app3","Form1");
hwnd_textbox = FindWindowEx(hwnd_win ,new IntPtr(0) ,"WindowsForms10.EDIT.app3","textBox1");
string strtext = "测试aaa";
UnicodeEncoding encode = new UnicodeEncoding();
char[] chars = encode.GetChars(encode.GetBytes(strtext));
Message msg ;
foreach (char c in chars ) {
msg = Message.Create(hwnd_textbox ,WM_CHAR ,new IntPtr(c),new IntPtr(0));
PostMessage(msg.HWnd ,msg.Msg ,msg.WParam ,msg.LParam);
}
} [DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter,string lpszClass,string lpszWindow); [DllImport("user32.dll",CharSet=CharSet.Unicode)]
public static extern IntPtr PostMessage(IntPtr hwnd,int wMsg,IntPtr wParam,IntPtr lParam);
}
static extern bool PostMessage(IntPtr hwnd,int msg, uint wParam, uint lParam);uint MAKELONG(ushort x, ushort y)
{
return ((((uint)x)<< 16) | y); //low order WORD 是指标的x位置; high order WORD是y位置.
}
void SomeCall()
{
API.PostMessage(new IntPtr(b), 0x0204, (uint)0, MAKELONG(12,342));
}
不过我要的是单击鼠标,你这个没有设计到坐标问题
用了你的方法后,右键弹出的菜单还是在左上角。没有改变 。下面我把源码在发一次
IntPtr hWnd=API.GetWindow(API.GetDesktopWindow(),(long)API.WindowFlag.GW_CHILD);
int b= API.FindWindowEx(a, 0, "Edit", null);
long hWndProgram = API.FindWindow("Progman",null);
long hWndDefView = API.FindWindowEx((int)hWndProgram, 0, "SHELLDLL_DefView", null);
API.PostMessage(new IntPtr(hWndDefView), 0x0204, 0x0001, MAKELONG(400,200));
API.PostMessage(new IntPtr(hWndDefView), 0x0205, 0x0001, MAKELONG(400, 200));uint MAKELONG(ushort x, ushort y)
{
return ((((uint)x) < < 16) | y);
} 以上代码能在桌面弹出右键菜单
但是还是在左上角。不是在MAKELONG方法里的坐标弹出的右键菜单。请指点。有没有成功的? 在次感谢大家帮帮忙
{
return wHigh * 0x10000 + wLow ;
};
API.PostMessage(new IntPtr(hWndDefView), 0x0205, 0x0000, 400+200*0x10000);