如何用C#做出一个禁用电脑锁屏的小程序?建议你这样试试看:
电脑一般无按键输入一定分钟后锁屏,所以每分钟模拟鼠标或键盘按下一个键就可以了 。
模拟用户操作控制面板中,找到锁屏设置项,关闭 。不同的Windows系统步骤可能不一定,需要查找控制面板相关窗口的句柄 , 模拟鼠标点击来完整调整操作 。
由于Windows安全机制,据我所知好像没有函数能直接禁用电脑锁屏,只有锁屏的,没有阻止锁屏的 。
API声明代码:
一般使用API的SendMessage和keybd_event和mouse_event
public static class 窗体API {
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
public static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, string lParam);
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);
/// summary
/// 向窗口发送消息,执行后马上返回 。
/// /summary
/// param name="hWnd"/param
/// param name="Msg"/param
/// param name="wParam"/param
/// param name="lParam"/param
/// returns/returns
[DllImport("User32.dll", EntryPoint = "PostMessage")]
public static extern int PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(Keys bVk, byte bScan, int dwFlags, int dwExtraInfo);
[DllImport("user32.dll", EntryPoint = "mouse_event", SetLastError = true)]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
[DllImport("User32.dll", EntryPoint = "SetCursor")]
public static extern int SetCursor(int hCursor);
[DllImport("User32.dll", EntryPoint = "SetCursorPos")]
public static extern int SetCursorPos(int x, int y);
[DllImport("user32.dll", EntryPoint = "GetCursorPos")]
public static extern int GetCursorPos(ref MOUSEPOINT lpPoint);
}
模拟按键
public class 模拟 {
public static void 模拟按键(Keys 按键) {
窗体API.keybd_event(按键, 0, 0, 0);
窗体API.keybd_event(按键, 0, 2, 0);
}
public static void 模拟按键(Keys 组合键, Keys 按键) {
窗体API.keybd_event(组合键, 0, 0, 0);
窗体API.keybd_event(按键, 0, 0, 0);
窗体API.keybd_event(按键, 0, 2, 0);
窗体API.keybd_event(组合键, 0, 2, 0);
}
public static void 模拟按键(Keys 组合键1, Keys 组合键2, Keys 按键) {
窗体API.keybd_event(组合键1, 0, 0, 0);
窗体API.keybd_event(组合键2, 0, 0, 0);
窗体API.keybd_event(按键, 0, 0, 0);
窗体API.keybd_event(按键, 0, 2, 0);
窗体API.keybd_event(组合键2, 0, 2, 0);
窗体API.keybd_event(组合键1, 0, 2, 0);
}
public static void 按下(Keys 按键) {
窗体API.keybd_event(按键, 0, 0, 0);
}
public static void 抬起(Keys 按键) {
窗体API.keybd_event(按键, 0, 2, 0);
}
public static void 鼠标位置(int x, int y) {
窗体API.SetCursorPos(x, y);
}
/// summary相对当前位置的移动/summary
public static void 鼠标移动(int x, int y) { 窗体API.mouse_event(0x1, x, y, 0, 0); }
public static void 按下左键(int x, int y) { 窗体API.mouse_event(0x2, x, y, 0, 0); }
public static void 抬起左键(int x, int y) { 窗体API.mouse_event(0x4, x, y, 0, 0); }
【c语言中的锁频函数 c语言中的锁频函数有哪些】public static void 按下右键(int x, int y) { 窗体API.mouse_event(0x8, x, y, 0, 0); }
public static void 抬起右键(int x, int y) { 窗体API.mouse_event(0x10, x, y, 0, 0); }
public static void 按下中键(int x, int y) { 窗体API.mouse_event(0x20, x, y, 0, 0); }
public static void 抬起中键(int x, int y) { 窗体API.mouse_event(0x40, x, y, 0, 0); }
/// summary距离正数表示向上滚动,负值表示向下滚动 。轮击定义为WHEEL_DELTA,即120 。/summary
public static void 鼠标滚动(int x, int y, int 距离) { 窗体API.mouse_event(0x800, x, y, 距离, 0); }
public static void 鼠标移至(int x, int y) { 窗体API.mouse_event(0x8000, x, y, 0, 0); }
}
调用的时候直接 模拟.模拟按键(Keys.Up) 就可以了
C/C程序怎么实现锁屏功能?一个思路:
1) 使用SetWindowsHookEx(),注册keyboard hook和mouse hook;注意,在hook中,一定要调用之前返回的函数
2)一旦hook函数被调用,则重启定时器 。
3)定时器超时,则调用LockWorkStation()锁屏
请问C语言中clock()函数该怎么用?clock()是C/C中c语言中的锁频函数的计时函数,而与其相关的数据类型是clock_t 。
它的具体功能是返回处理器调用某个进程或函数所花费的时间 。函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中clock_t是用来保存时间的数据类型 。
在time.h文件中,我们可以找到对它的定义c语言中的锁频函数:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其实就是long,即长整形 。该函数返回值是硬件滴答数,要换算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC 。比如 , 在VC6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可 。
clock的返回值一直是0的原因:
1、编译器优化 , for循环实际根本没执行,直接跳过去了,所以时间为0 。
2、clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少 , 那么clock算出的时间也很少 。
3、建议使用time gettimeofday函数来计时 。
扩展资料:
C语言中clock()函数的程序例1:(TC下运行通过)
#include stdio.h
#include time.h
int main(void)
{
clock_t start, end;
start = clock();
delay(2000);
end = clock();
printf("The time was: %f\n", (double)(end - start) / CLK_TCK);
return 0;
}
说明:CLK_TCK 定义在TC中的time.h中:#define CLK_TCK18.2 。
在VC6.0中也有关于CLK_TCK的宏定义,不过其值不再是18.2,而是1000 。
实际上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC 。
参考资料来源:百度百科-clock()
c语言中的锁频函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言中的锁频函数有哪些、c语言中的锁频函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 有什么好玩的pc体育游戏,有什么好玩的pc体育游戏推荐
- mysql客户端新建数据库,mysql数据库如何创建数据库
- flutter数据交互,flutter与android交互
- gis提取乡镇,arcgis提取行政区
- vb.net透明组件 vb透明按钮
- 不让oracle数据库记录日志,oracle数据库操作记录
- 包含Ios9html5的词条
- 手机空间虚拟占用,虚拟手机空间的软件叫什么
- java代码优化之路 java 优化