jjzjj

SendMessage

全部标签

c# - 在 C# 中发送消息

我正在创建一个应用程序,该应用程序使用连接到多个不同DLL的主项目。我需要能够从一个DLL窗口打开另一个窗口,但DLL不能相互引用。有人建议我在第一个DLL中使用sendmessage函数,并在主程序中有一个监听器,将消息定向到适当的DLL以打开它的窗口。但是,我对sendmessage函数一点都不熟悉,并且很难从我在网上找到的信息中拼凑出一些东西。如果有人可以告诉我使用sendmessage函数的正确方法(如果有的话),也许听众如何捕获该消息,这将是惊人的。这是我目前获得的一些代码,我不确定我的方向是否正确。[DllImport("user32.dll")]publicstatice

C# 如何使用 WM_GETTEXT/GetWindowText API/窗口标题

我想获取应用程序的控件/句柄的内容..这是实验代码..Process[]processes=Process.GetProcessesByName("Notepad");foreach(Processpinprocesses){StringBuildersb=newStringBuilder();IntPtrpFoundWindow=p.MainWindowHandle;Lists=GetChildWindows(pFoundWindow);//functionthatreturnsa//listofhandlefromchildcomponentonagivenapplication.

java - 如何从 Java 应用程序中打开和关闭监视器?

如何从Java应用程序中打开和关闭监视器?如果您想知道为什么,这是一个信息亭风格的应用程序,晚上关闭显示器会很棒。是的,您可以在机器的屏幕保护程序设置中执行此操作,但最好以编程方式执行此操作并避免在每台机器上进行配置。 最佳答案 假设您在Windows上部署Java应用程序,您可以使用此WIN32API函数://turnoffmonitorSendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,(LPARAM)2);//turnonmonitorSendMessage(HWN

c++ - PostMessage() 来模拟 C++ 中的输入?

我正在尝试为游戏制作一个简单的机器人程序。我希望即使在游戏失焦或最小化时它也能正常工作。因此,我不能使用SendInput(),因为它模拟全局事件。我发现,要完成这项工作,我必须使用PostMessage()函数。我做了一个模拟记事本输入的测试程序:#includeHWNDhandle=FindWindow(NULL,CStringW("Untitled-Notepad"));HWNDedit=FindWindowEx(handle,NULL,CStringW("Edit"),NULL);PostMessage(edit,WM_CHAR,'a',0);此示例成功地模拟了在记事本中单击“

C++模拟鼠标左键点击最小化程序

我一直在寻找关于我遇到的这个特殊问题的一些信息,我希望能够模拟鼠标左键单击我当前连接的程序。现在,我创建了一个线程来检查数据库中的某些值,当这些值返回时(我正在寻找的值),我希望能够在任何x、y中发送鼠标左键单击程序的坐标(最小化时)。对于Windows7如何做到这一点?谢谢!编辑:这是我调用线程的方式...HWNDchild=GetActiveWindow();if(child==NULL)MessageBox(0,"Couldn'tgetthechildhwnd!","",0);DWORDID;HANDLEthread_check_game=CreateThread(NULL,0,

c++ - 将文本添加到另一个程序文本框 C++

我已经设法将文本发送到我使用C++创建的自定义文本框,以及记事本、calc和其他程序,所有这些都具有1个窗口和1个文本框。但是,我想将文本发送到另一个具有多个文本框并且也在选项卡中的程序。它的结构如下:打开程序从2个选项卡中进行选择:a.统计b.配置(包含文本框)在4个文本框中填写所需的值我试过winspy++但没有成功,这是我一直在使用的简单代码。#includeintmain(){HWNDhNote;HWNDhChild;if(!(hNote=FindWindow("windowname",NULL)))exit(1);if(!(hChild=FindWindowEx(hNote,

c++ - 将(同步)堆栈分配的内存传递给其他线程是否安全?

最近听说栈中的内存不与其他线程共享,堆中的内存与其他线程共享。我通常这样做:HWNDotherThreadHwnd;DWORDcommandId;//initializecommandIdandotherThreadHwndstructMyData{intdata1_;longdata2_;void*chunk_;};intabc(){MyDatamyData;//initializemyDataSendMessage(otherThreadHwnd,commandId,&myData);//readmyData}这样做可以吗? 最佳答案

c++ - 当我使用 win32 SendMessage 发送和转换标准字符串时,我得到了奇怪的字符

我需要将文本附加到win32编辑控件我有执行此操作的功能,但在编辑控件中打印的文本是乱码,为什么?示例代码取自here的Microsoft示例voidsettext(HWNDhDlg,std::strings){//std::wstringws;//ws.assign(s.begin(),s.end());//LPWSTRpwst=&ws[0];////gettemporaryLPCWSTR(prettysafe)//LPCWSTRpcwstr=ws.c_str();//SetDlgItemText(hWndEdit,IDC_EDIT1,pcwstr);HWNDhWndEdit=Get

c++ - Win32 LB_GETTEXT 返回垃圾

我有一个问题,这很可能是一个简单的问题,但对我来说仍然是一个问题。我在Win32/C++中使用列表框,当从我的列表框中获取选定的文本时,返回的字符串只是垃圾。它是结构或类似结构的句柄?下面是我得到的代码和示例。std::stringListbox::GetSelected(){intindex=-1;intcount=0;count=SendMessage(control,LB_GETSELCOUNT,0,0);if(count>0){index=SendMessage(control,LB_GETSEL,0,0);}returnGetString(index);}std::strin

为什么我会发现使用SendMessage时无法找到入口点?

我试图将一些文本发送到记事本窗口。在form1的顶部:constintWM_SETTEXT=0X000C;//includeFindWindowEx[DllImport("user32.dll")]publicstaticexternIntPtrFindWindowEx(IntPtrhwndParent,IntPtrhwndChildAfter,stringlpszClass,stringlpszWindow);//includeSendMessage[DllImport("user32.dll")]publicstaticexternintSendMessages(IntPtrhWnd,in