createmutex?如何理解createmutex
你是否想了解更多关于createmutex和如何理解createmutex的知识?在本文中,小编将为您详细介绍这两个话题,帮助您更好地理解。
对SelectObject函数的不解
1).类似的情情况很多,比如CreateFile()返回的是HANDLE, CreateMutex()也返回HANDLE,而两者根本不是同类的东西,没什么奇怪的,其实就是一个ID,是真是假是什么,WINDOWS一定有账可查,不会弄错;
2) SelectObject(...)用新的把当前用的换出来.这很有用.比如
A函数用宋体输出,在某个时刻需要调用B函数,而B函数用黑体输出, B用HFONT ha=SelectObject()把黑体字库选进来,退出时将ha在选回去,这样不破坏A函数的环境.
3) DC? DC有好多,屏幕DC,打印机DC,两者的DC不兼容,分辨率,色深,同一个显示器,可以以不同的分辨率来使用切换,也不兼容....
ctfmon.exe是什么
程序ctfmon.exe是有关输入法的一个可执行程序,系统默认情况下是随电脑开机而自动启动的。如果你设置了ctfmon.exe不随机自动启动,进入系统后你的电脑任务栏中的输入法图标(即语言栏)就不见了。
要设置ctfmon.exe随机自动启动,可以单击“开始”——>“运行”——>输入“msconfig”(引号不要输入),回车——>打开“系统配置使用程序”窗口——>选择“启动”页,找到ctfmon项并在其前面打上钩,按“应用”、“确定”,重启机器即可生效。
如果在“启动”页,找不到ctfmon项,说明注册表中已将该项删除,可以单击“开始”——>“运行”——>输入“regedit”(引号不要输入),回车——>打开“注册表编辑器”,定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,在窗口的右侧新建名字为ctfmon.exe的字符串值(REG_SZ),并将其值设置为“C:\WINDOWS\system32\ctfmon.exe”,然后关闭注册表编辑器,再执行前一步的操作即可。
如何理解createmutex
第一种方法,在程序没有执行 CreateMutex和OpenMutex这两个api之前 Hook,一般都是主线程开始的代码,如果用一个程序检查该程序运行然后hook,根本就来不及Hook,因为Hook了的时候,该程序早就把这 2个函数执行了,除非要hook windows系统的程序装载器,当装载器把程序的代码映射到内存后,挂起该进程,然后hook
第二种方法,修改该程序的exe文件,把里面的导入表中这2个api的dll文件名修改成你自己写的dll文件名,然后在自己写个dll,改程序调用你写的dll中的api,随便想返回给他什么值自己看着办。
第三种方法,也是最好的方法,下载一个反汇编工具,找到使用这2个api的地方,肯定有个判断语句,判断是否多开,正常的是有多开,就结束程序,现在修改那个判断的汇编指令即可。
ctfmon.exe运行后没反应
程序ctfmon.exe是有关输入法的一个可执行程序,系统默认情况下是随电脑开机而自动启动的。如果你设置了ctfmon.exe不随机自动启动,进入系统后你的电脑任务栏中的输入法图标(即语言栏)就不见了。
要设置ctfmon.exe随机自动启动,可以单击“开始”——>“运行”——>输入“msconfig”(引号不要输入),回车——>打开“系统配置使用程序”窗口——>选择“启动”页,找到ctfmon项并在其前面打上钩,按“应用”、“确定”,重启机器即可生效。
如果在“启动”页,找不到ctfmon项,说明注册表中已将该项删除,可以单击“开始”——>“运行”——>输入“regedit”(引号不要输入),回车——>打开“注册表编辑器”,定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,在窗口的右侧新建名字为ctfmon.exe的字符串值(REG_SZ),并将其值设置为“C:\WINDOWS\system32\ctfmon.exe”,然后关闭注册表编辑器,再执行前一步的操作即可。
(注明:ctfmon.exe并非一定是病毒,ctfmon.exe也可能是Microsoft Office产品套装的一部分。它可以选择用户文字输入程序,和微软Office XP语言条。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。)
ctfmon- ctfmon.exe-进程信息
进程文件: ctfmon or ctfmon.exe
进程名称: Alternative User Input Services
描述:控制Alternative User Input Text Processor(TIP)和Microsoft Office语言条。Ctfmon.exe提供语音识别、手写识别、键盘、翻译和其它用户输入技术的支持。
常见错误: N/A
是否为系统进程:否
如果你的win2000系统装了officeXP或以上版本,它会在你和系统里留下一个可误的ctfmon.exe,这真的是一个恶魔,曾经困扰了无数的网友。今天我决意执起正义之剑,斩妖除魔,还网友一个纯洁的中英文输入空间!
在对它行刑之前,我先来宣读一下他的罪状:
1.无论你打开什么窗口,总会弹出一个输入法工具体,并且默认是中文输入,非常讨厌。
2.它替换了原来的区域和输入法设置,并以一个文字服务的设置取而代之,而且不能设置默认的输入法。
3.结束掉原来的输入法工具进程internat.exe,并令他不能在开机时起动。
4.将自己放在开机时启动的程序列表中,除非修改注册表,否则无法去除。
5.像病毒一样有重生能力,当你把ctfmon.exe删了以后,他又会随着Office的启动而重新生成。
6.当你结束了ctfmon.exe后,经常会出现输入法切换快捷键乱掉的情况。
好,经最高程序员审判庭批准,现对ctfmon.exe执行死行,立即执行!
第一步:右击任务栏空白处,点“任务管理器”。
第二步:找到ctfmon.exe,并终止它。
第三步:在系统目录下的system32目录下找到ctfmon.exe,删除掉。
第四步:写一个最简单的api程序(代码见附录),编译后放到ctfmon.exe所在目录,并更名为ctfmon.exe。
第五步:点击“开始”菜单,点击“运行”,输入internat.exe后点击确定。
第六步:重起计算机。
执行完毕!
附:
1.程序代码如下:
#include<windows.h>
int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPTSTR, int)
{
HANDLE m_hMutex= CreateMutex( NULL, TRUE,"ctfmon.exe");
if( GetLastError()!= ERROR_ALREADY_EXISTS)
while( 1) Sleep( INFINITE);
return 0;
}
2.如果执行后发现word的输入法无法正确使用,解决办法如下:
第一步:打开word(废话)
第二步:点击“工具”菜单中的“选项”子菜单。点击“编辑”选项卡。
第三步:清除“输入法控制处于活动状态”的复选。点击“确定”
第四步:点击“工具”菜单中“语言”子菜单中的“设置语言”项。
第五步:在列表中选择“英语美国”,点击确定。
第六步:关闭Word,重起计算机。
解决
感谢您的阅读!希望本文对解决您关于createmutex的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。