技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3547|回复: 4
收起左侧

[C++初学]让Win8虚拟键盘透明

[复制链接]

1

主题

2

帖子

24

积分

用户组: 初·技术宅

UID
1002
精华
0
威望
2 点
宅币
18 个
贡献
0 次
宅之契约
0 份
在线时间
1 小时
注册时间
2015-7-31
发表于 2015-7-31 15:28:42 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
本帖最后由 Huryo 于 2015-7-31 15:35 编辑

Win8的虚拟键盘是非常难看的。而且不透明,也就是说,鸡肋的键盘挡住了大半屏幕,键盘下的东西完全看不到。。没用过win平板的可能都不知道有这个东西。。。。
IP60DA03EXF53TK}XDB]HLV.jpg
就像这样。所以我花了半天时间研究。写了下面的代码
[C++] 纯文本查看 复制代码
#include <iostream>
#include <windows.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

int main(int argc, char** argv) 
{
	int rtn;
	HWND h_Keyboard=FindWindowA("IPTip_Main_Window","");//得到键盘的窗口句柄
	GetWindowLong(h_Keyboard,rtn);//得到窗口style,用rtn装载。
	rtn=rtn+WS_EX_LAYERED+WS_EX_NOACTIVATE;	//加上新的Style,LAYERED是窗口透明风格,NOACTIVATE是置顶窗口但不激活窗口。
	SetWindowLong(h_Keyboard,-20,rtn);//覆盖以前的Style
	SetLayeredWindowAttributes(h_Keyboard,0,100,2);	//设置透明
	return 0;
}

因为我用的平板嘛。随身带键盘太麻烦,所以离不开虚拟键盘。这样键盘看起来比以前好看多了,而且底部透明,方便看到键盘覆盖的屏幕的内容~
0J5}_FM3(FW8{I{OBC1W.jpg

这是我初学C++第写的二个小程序。大神勿喷。代码怎么写更好。。欢迎吐槽>w<。
回复

使用道具 举报

85

主题

260

帖子

3763

积分

用户组: 管理员

No. 418

UID
418
精华
13
威望
52 点
宅币
1969 个
贡献
1365 次
宅之契约
0 份
在线时间
252 小时
注册时间
2014-8-9
发表于 2015-7-31 16:12:43 | 显示全部楼层
前来支持抢沙发。兔子萌萌哒!
然后+一个while(1)的死循环
生成exe后添加启动项!
In the beginning I was not the best.
And the world was also not the best.
But I still know that I am who I am.
Because I think that it is good.
I have been working hard.
I have been keeping growth with the world.
And it was so.

85

主题

260

帖子

3763

积分

用户组: 管理员

No. 418

UID
418
精华
13
威望
52 点
宅币
1969 个
贡献
1365 次
宅之契约
0 份
在线时间
252 小时
注册时间
2014-8-9
发表于 2015-7-31 16:41:56 | 显示全部楼层
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <string.h>
#include <windows.h>



int main()

{
	
	int rtn;
	
	HWND h_Keyboard=0;
	char szMe[256] = {0};
	HKEY hKey;
	strcpy(szMe, GetModuleFileName(NULL, szMe, 255));
	if (RegOpenKey(HKEY_CURRENT_USER, "Software\\microsoft\\windows\\currentversion\\run", &hKey) == ERROR_SUCCESS)
	{
		if (RegSetValueEx(hKey, "KBD_ADDIN", NULL, REG_SZ, (const BYTE*)&szMe, strlen(szMe)) != ERROR_SUCCESS)
		{
			MessageBox(NULL, "Can Not Create Key", "Error", MB_OK); 
		}
		RegCloseKey(hKey);
	}
	else
		MessageBox(NULL, "Can Not Open Key", "Error", MB_OK); 
	while(1)
	{
		h_Keyboard=FindWindowA("IPTip_Main_Window","");	
		if (h_Keyboard)
		{
			GetWindowLong(h_Keyboard,rtn);
	
			rtn=rtn+WS_EX_LAYERED+WS_EX_NOACTIVATE;	
	
			SetWindowLong(h_Keyboard,-20,rtn);	
			SetLayeredWindowAttributes(h_Keyboard,0,100,2);
		}
	}
	return 0;

}
In the beginning I was not the best.
And the world was also not the best.
But I still know that I am who I am.
Because I think that it is good.
I have been working hard.
I have been keeping growth with the world.
And it was so.

1

主题

2

帖子

24

积分

用户组: 初·技术宅

UID
1002
精华
0
威望
2 点
宅币
18 个
贡献
0 次
宅之契约
0 份
在线时间
1 小时
注册时间
2015-7-31
 楼主| 发表于 2015-7-31 17:00:37 来自手机 | 显示全部楼层
喵喵好残暴!

11

主题

46

帖子

727

积分

用户组: 大·技术宅

UID
3517
精华
0
威望
20 点
宅币
623 个
贡献
18 次
宅之契约
0 份
在线时间
155 小时
注册时间
2018-3-2
发表于 2018-3-3 19:51:54 | 显示全部楼层
透明感觉更难看了

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-7-11 20:10 , Processed in 0.099761 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表