我正在尝试将SendMessage用于记事本,这样我就可以插入书面文本而不会将记事本作为活动窗口.
我在过去使用过这样的事情SendText,但这需要给予Notepad专注.
现在,首先我要检索Windows句柄:
Process[] processes = Process.GetProcessesByName("notepad");
Console.WriteLine(processes[0].MainWindowHandle.ToString());
Run Code Online (Sandbox Code Playgroud)
我已经确认它是记事本的正确句柄,内部显示相同Windows Task Manager.
[DllImport("User32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(int hWnd, int Msg, int wParam, int lParam);
Run Code Online (Sandbox Code Playgroud)
从这里开始,我无法让SendMessage在我的所有实验中工作.我走错了方向吗?
我使用以下内容显示"打开文件"对话框:
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.FileName = Properties.Settings.Default.Last_competition_file;
fdlg.Filter = "FS database files (*.fsdb)|*.fsdb|All files (*.*)|*.*";
fdlg.FilterIndex = 0;
if (fdlg.ShowDialog(this) == DialogResult.Cancel) return false;
Run Code Online (Sandbox Code Playgroud)
(Properties.Settings.Default.Last_competition_file包含最后一个文件的完整路径)
问题:对于文件名"c:\ data \nationals_2014.fsdb",文件名字段仅显示"ionals_2014.fsdb".
单击"文件名"字段并将光标向左移动时,文件名和路径的其余部分将重新显示.但我正在寻找一种方法,使整个文件名从一开始就可见.
请注意,这不是长度问题.我也尝试分别设置路径和文件名(通过OpenFileDialog.InitialDirectory),但即便如此,只显示(现在更短)文件名的尾端.
有什么想法如何让Open File对话框从一开始就显示完整的预先填充的文件名?
我有一个简单的问题.如何从我的C#代码以编程方式访问aero snap.就像,如果我单击"Snap Left"按钮,我希望我的程序窗口向左侧拍摄,就像它手动放在那里的药物一样.我看起来都是如此,但所有的问题似乎都是关于aero snap不使用表单,并防止它捕捉表单.不是以编程方式捕捉表单.我很高兴使用interloping.谢谢
在Vsto-excel项目中,我在特定模块中有一个宏。通过C# 中的代码,我想启动显示给定宏的VBA 编辑器。我知道互操作概念,但我坚持启动 vba 编辑器并显示特定的宏。