怎么在HOOK文件中建立Form之类的控件或者表单???

bahic 2003-12-12 12:35:49
我在HOOK.DLL中加入了一个Form1的表单。我的截获的消息是当按CTRL+L键时
Form1弹出来。再按一下CTRL+L键后Form1这个界面就消失!!
但不知道怎么才能做到这一点。

我的部份程如下:

LRESULT WINAPI Hook(int nCode,WPARAM wParam,LPARAM lParam)
{
if(wParam==0xA)
{
if(!Form_Init)
{
Form_Init=true;
{
Application->Initialize();
Application->CreateForm(__classid(Tgame), &game);
Application->Run();
}
}
if(run) //如果界面已经弹出来了就将它消失
{
game->Hide();
run=false;
}
else
{
game->Show(); //如果界面已经弹出来了就将它显示
run=true;
}
}

return(CallNextHookEx(g_hHook,nCode,wParam,lParam));
}

但我运行主程序时,程序在启动时要先弹出我的DLL中的界面,然后我将它关闭后才出现主程序的界面,当我按回车键时DLL中的界面是要弹出来,但再按一下时显示了一下界面就连主程序都退出去了。

如果有高手曾经写按一个键就弹出界面,再按一下界面就消失,就指教!!!
最后将源码给我看看。

最好给我一个小小的例程。

谢谢了
...全文
281 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
myy 2003-12-17
  • 打赏
  • 举报
回复
RegisterHotKey(Handle,2000,0,VK_F12);
^----楼主,俺对你实在是佩服!




BCB的help,希望你能好好看看,俺求你了......






The RegisterHotKey function defines a hot key for the current thread.

BOOL RegisterHotKey(

HWND hWnd, // window to receive hot-key notification
int id, // identifier of hot key
UINT fsModifiers, // key-modifier flags
UINT vk // virtual-key code
);


Parameters

hWnd

Identifies the window that will receive WM_HOTKEY messages generated by the hot key. If this parameter is NULL, WM_HOTKEY messages are posted to the message queue of the calling thread and must be processed in the message loop.

id

Specifies the identifier of the hot key. No other hot key in the calling thread should have the same identifier. An application must specify a value in the range 0x0000 through 0xBFFF. A shared dynamic-link library (DLL) must specify a value in the range 0xC000 through 0xFFFF (the range returned by the GlobalAddAtom function). To avoid conflicts with hot-key identifiers defined by other shared DLLs, a DLL should use the GlobalAddAtom function to obtain the hot-key identifier.

fsModifiers

Specifies keys that must be pressed in combination with the key specified by the nVirtKey parameter in order to generate the WM_HOTKEY message. The fsModifiers
parameter can be a combination of the following values:

Value Meaning
MOD_ALT Either ALT key must be held down.
MOD_CONTROL Either CTRL key must be held down.
MOD_SHIFT Either SHIFT key must be held down.


vk

Specifies the virtual-key code of the hot key.



Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.

Remarks

When a key is pressed, the system looks for a match against all thread hot keys. Upon finding a match, the system posts the WM_HOTKEY message to the message queue of the thread that registered the hot key. This message is posted to the beginning of the queue so it is removed by the next iteration of the message loop.
This function cannot associate a hot key with a window created by another thread.
RegisterHotKey fails if the keystrokes specified for the hot key have already been registered by another hot key.

If the window identified by the hWnd parameter already registered a hot key with the same identifier as that specified by the id parameter, the new values for the fsModifiers and vk parameters replace the previously specified values for these parameters.

See Also

GlobalAddAtom, UnregisterHotKey, WM_HOTKEY
bahic 2003-12-17
  • 打赏
  • 举报
回复
我的问题已经解决了,程序也写完了,谢谢大家了。呵呵!!!!
ccrun.com 2003-12-17
  • 打赏
  • 举报
回复
为何偏偏选中F12了呢。F12好象是系统的一个热键,还不如用F11呢。
bahic 2003-12-17
  • 打赏
  • 举报
回复
兄弟呀,我就是这么写的!如下:
RegisterHotKey(Handle,2000,0,VK_F12);
可是不能注册成功。我试了的,不行。我愚笨,再请教!
bahic 2003-12-16
  • 打赏
  • 举报
回复
我看了的。我写的程序是当我键下F12这一个单键时就弹出程序。但那个程序好象必须要两个组合键才行的!

那个程序我也试过了。能行的。但就是要按组合键才。不知道只按一个键怎么设置???谢谢
myy 2003-12-16
  • 打赏
  • 举报
回复
http://www.ccrun.com/doc/go.asp?id=502
bahic 2003-12-16
  • 打赏
  • 举报
回复
兄弟,我不懂,教一教我。谢谢
怎么用hotkey?

如果能写一个小的hotkey程序,然后发给我就更好了。我的信箱bahic@21cn.com

bahic 2003-12-15
  • 打赏
  • 举报
回复
不过我的程序要在里面修改其它程序的内存,所以要用HOOK.DLL。
OperDone 2003-12-15
  • 打赏
  • 举报
回复
用hotkey、、
myy 2003-12-14
  • 打赏
  • 举报
回复
程序在后台就能在我按热键时能弹出来 ---> 用HotKey就行了!
bahic 2003-12-14
  • 打赏
  • 举报
回复
因为我的程序要在后台就能在我按热键时能弹出来,所以用了HOOK.DLL
现在我已经解决了程序运行时就弹出DLL中界面的问题,还不能解决按一下就弹出来,再按一下就消失的问题。
如果有高手曾经写按一个键就弹出界面,再按一下界面就消失,就指教!!!
最后将源码给我看看。
COKING 2003-12-13
  • 打赏
  • 举报
回复
别人用的肯定不是HOOK而是HotKey呀!

因为Hook.dll会被衍射进该进程的.
constantine 2003-12-13
  • 打赏
  • 举报
回复
内容概要:本文系统研究了开关频率大于谐振频率(fs>fr)工况下,移相混合控制LLC谐振变换器在低压增益区域的工作特性,深入分析其在变频与移相结合控制模式下的调制机理、工作模态划分及损耗分布规律。通过Simulink平台构建高保真仿真模型,对变换器在不同负载和输入条件下的电压增益、转换效率、关键器件电压电流应力等性能指标进行了全面仿真验证,重点探讨了其在低增益区间的软开关实现能力与效率优化潜力,旨在提升LLC变换器在宽范围输入输出应用的动态响应与能源转换效率。; 适合人群:从事电力电子变换器设计、高频电源开发及相关领域的高校研究生、科研院所研究人员及企业研发工程师,要求具备扎实的电路理论基础、电力电子技术知识以及一定的Simulink仿真能力。; 使用场景及目标:①深入理解LLC谐振变换器在fs>fr条件下采用移相混合控制的内在工作机理与模态转换过程;②掌握利用Simulink搭建复杂谐振变换器精确仿真模型的方法与技巧;③分析并优化低压增益区的增益特性与损耗构成,为设计高效率、高功率密度的软开关电源提供理论依据和数据支持; 阅读建议:建议读者结合文所述仿真模型,亲自复现仿真过程,重点观察不同控制参数(如移相比、开关频率)对电压增益曲线和关键波形的影响,并对比传统变频控制策略,深入探究混合控制在拓宽调压范围、提升轻载效率方面的优势,从而深化对现代高效谐振电源设计的理解。
内容概要:本文提出了一种基于粒子群优化算法(PSO)的配电网光伏储能双层优化配置模型,以IEEE33节点系统为标准算例,实现光伏发电单元与储能系统的协同选址与定容优化。该模型采用双层架构设计,上层以投资成本、运行经济性及网络损耗最小为目标优化设备配置方案,下层通过潮流计算评估系统在不同负荷场景下的运行性能,综合考虑电压稳定性、供电可靠性及可再生能源消纳能力,最终通过Matlab编程实现完整求解流程,为高渗透率分布式电源接入背景下的配电网规划提供了有效的技术支撑。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、高校科研人员及从事新能源并网、智能配电网规划与优化的工程技术人员。; 使用场景及目标:①研究含高比例光伏接入的配电网规划与运行协同优化问题;②掌握双层优化建模方法与粒子群算法在复杂电力系统问题的应用技巧;③为实际工程分布式光伏与储能系统的科学选址与容量配置提供理论依据与仿真验证平台。; 阅读建议:建议读者结合Matlab代码深入理解双层迭代求解机制,重点关注算法收敛性分析、参数敏感性测试,并可通过更换初始种群、调整权重因子或引入其他标准测试系统(如IEEE69节点)进行对比实验,进一步验证所提模型的普适性与鲁棒性。

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧