(关于注册系统热键的问题)几乎同样的代码,效果却不一样

koflfy 2009-06-16 09:51:55
网上找了一段代码,测试正常,但加在我自己的程序里就无效,郁闷死我了。。。。。麻烦大家看看。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace 测试热键
{
public partial class Form1 : Form
{
[DllImport("user32")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
//注册热键的api
[DllImport("user32")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);

public enum KeyModifiers
{
None = 0,
Alt = 1,
Control = 2,
Shift = 4,
Windows = 8
}

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Clipboard.Clear();//先清空剪贴板防止剪贴板里面先复制了其他内容


//注册热键(窗体句柄,热键ID,辅助键,实键)
RegisterHotKey(Handle, 100, 2, Keys.F10);// 热键:Control +F10
}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//注消热键(句柄,热键ID)
UnregisterHotKey(Handle, 100);
}

protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312;//按快捷键
switch (m.Msg)
{
case WM_HOTKEY:
ProcessHotkey(m);//调用主处理程序
break;
}
base.WndProc(ref m);


}

void ProcessHotkey(Message m)
{
//这里是处理快捷键的地方,为空就好了
IntPtr id = m.WParam; //IntPtr用于表示指针或句柄的平台特定类型
string sid = id.ToString();
switch (sid)
{
case "100": DecreseVolumnb();
break;
}

}

void DecreseVolumnb()
{
MessageBox.Show("test");
}
}
}




这段代码正常,按CTRL+F10可以弹出一个test的对话框。
...全文
164 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gomoku 2009-06-16
  • 打赏
  • 举报
回复

private void Form1_Load(object sender, EventArgs e)
{

Clipboard.Clear();//先清空剪贴板防止剪贴板里面先复制了其他内容


//注册热键(窗体句柄,热键ID,辅助键,实键)
RegisterHotKey(Handle, 100, 2, Keys.F10);// 热键:Control +F10
MessageBox.Show("handle = " + this.Handle.ToInt32() ); //<---


if (this.Visible == true)
{
this.Hide();
this.ShowInTaskbar = false; //<---
MessageBox.Show("handle = " + this.Handle.ToInt32() ); //<---
}
else
{
this.Visible = true;
this.ShowInTaskbar = true; //<---
MessageBox.Show("handle = " + this.Handle.ToInt32() ); //<---
this.WindowState = FormWindowState.Normal;
this.BringToFront();
}

}


建议你测试一下如上代码,看this.Handle是否发生了改变。

.Net的控件的Handle并不是一成不变的,当改变窗口风格的时候(试试this.ShowInTaskbar),.Net会重新创建一个窗口。
你用旧的Handle订阅Windows消息,你窗口Handle改变了,当然就收不到通知了。

ztenv 2009-06-16
  • 打赏
  • 举报
回复
RegisterHotKey()函数返回bool值
koflfy 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lianshaohua 的回复:]
1、判断一下有没有注册成功
2、换个热键
3、换个热键的ID(你那个100换成其它的数字)
[/Quote]

第2跟第3我都测试过了,但还是不管用,第1个请问如何判断注册成功没有啊?
ztenv 2009-06-16
  • 打赏
  • 举报
回复
1、判断一下有没有注册成功
2、换个热键
3、换个热键的ID(你那个100换成其它的数字)
koflfy 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Linux7985 的回复:]
看看是不是冲突了,换个没用的热键注册一下
[/Quote]

肯定不是冲突问题,第一个程序运行就没事。。而且我换过几个热键。。
烈火蜓蜻 2009-06-16
  • 打赏
  • 举报
回复
看看是不是冲突了,换个没用的热键注册一下
koflfy 2009-06-16
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;

namespace test
{
public partial class Form1 : Form
{
public static string address = System.Environment.CurrentDirectory;
private bool windowCreate=true;

[DllImport("user32")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
//注册热键的api
[DllImport("user32")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);

public enum KeyModifiers
{
None = 0,
Alt = 1,
Control = 2,
Shift = 4,
Windows = 8
}



public Form1()
{

InitializeComponent();
//RegisterHotKey(Handle, 100, 2, Keys.F10); // 热键:Control +F10
}


private void Form1_Load(object sender, EventArgs e)
{

Clipboard.Clear();//先清空剪贴板防止剪贴板里面先复制了其他内容


//注册热键(窗体句柄,热键ID,辅助键,实键)
RegisterHotKey(Handle, 100, 2, Keys.F10);// 热键:Control +F10

if (this.Visible == true)
{
this.Hide();
this.ShowInTaskbar = false;
}
else
{
this.Visible = true;
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
//this.Show();
this.BringToFront();
}

}



protected override void OnActivated(EventArgs e)
{
if (windowCreate)
{
base.Visible = false;
windowCreate = false;
}

base.OnActivated(e);
}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//注消热键(句柄,热键ID)
UnregisterHotKey(Handle, 100);

}

protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312;//按快捷键
switch (m.Msg)
{
case WM_HOTKEY:
ProcessHotkey(m);//调用主处理程序
break;
}
base.WndProc(ref m);


}

void ProcessHotkey(Message m)
{
//这里是处理快捷键的地方,为空就好了
IntPtr id = m.WParam; //IntPtr用于表示指针或句柄的平台特定类型
  string sid = id.ToString();
switch (sid)
{
case "100": DecreseVolumnb();
break;
}

}

void DecreseVolumnb()
{
//notifyIcon1.Visible = false;
MessageBox.Show("test");
}

}
}

这段代码调试通过,但按下CTRL+F10却没有弹出test的对话框窗口,由于这里我用到
notifyIcon,一运行程序的时候会最小化到托盘图标,请问是不是这个原因才使程序没有响应啊。。。
koflfy 2009-06-16
  • 打赏
  • 举报
回复
谢谢!!!!终于搞定了。。。谢谢楼上的哥们。。。
gomoku 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 koflfy 的回复:]
楼上的,我测试了一下,果然this.Handle发生了改变,句柄每次都不一样,那请问一下,我想实现在按下CTRL+F10的时候,notifyIcon1.Visible=true,要如何才能达到目的呢,请指点一下思路?难道要用findwindow?
[/Quote]

先设定this.ShowInTaskbar再注册不就可以了?
koflfy 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lianshaohua 的回复:]
RegisterHotKey()函数返回bool值
[/Quote]

谢谢,我测试过,已经注册成功了。
koflfy 2009-06-16
  • 打赏
  • 举报
回复
楼上的,我测试了一下,果然this.Handle发生了改变,句柄每次都不一样,那请问一下,我想实现在按下CTRL+F10的时候,notifyIcon1.Visible=true,要如何才能达到目的呢,请指点一下思路?难道要用findwindow?
C#如何在后台捕捉按键 [此问题的推荐答案] API别忘了 using System.Runtime.InteropServices; [DllImport("user32.dll")] public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk); //API public Form1() { InitializeComponent(); RegisterHotKey(this.Handle, 247696411, 0, (UInt32)Keys.F10); //注册热键 } //重写消息循环 protected override void WndProc(ref Message m) { const int WM_HOTKEY = 0x0312; // m.WParam.ToInt32() 要和 注册热键时的第2个参数一样 if (m.Msg == WM_HOTKEY && m.WParam.ToInt32() == 247696411) //判断热键 { //写上你的代码 } base.WndProc(ref m); } 写上代码后 只要 在程序运行时按F10就可以触发热键更改按键可以在 注册时改 RegisterHotKey(this.Handle, 247696411, 0, (UInt32)Keys.***); http://baike.baidu.com/view/1080084.html?tp=0_10 这里有RegisterHotKey 的介绍 RegisterHotKey 函数功能:该函数定义一个系统范围的热键。 函数原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk); 参数: hWnd:接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。 id:定义热键的标识符。调用线程中的其他热键不能使用同样的标识符。应用功能程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态链接库(DLL)必须定义一个0xC000-0xFFFF范围的值伯GlobalAddAtom函数返回该范围)。为了避免与其他动态链接库定义的热键冲突,一个DLL必须使用GlobalAddAtom函数获得热键的标识符。 fsModifoers:定义为了产生WM_HOTKEY消息而必须与由nVirtKey参数定义的键一起按下的键。该参数可以是如下值的组合: MOD_ALT:按下的可以是任一Alt键。MOD_CONTROL:按下的可以是任一Ctrl键。 MOD_SHIFT:按下的可以是任一Shift键。 MOD_WIN:按下的可以是任一Windows按键。这些键可以用Microsoft Windows日志记录下来。 vk:定义热键的虚拟键码。 返回值:若函数调用成功,返回一个非O值。若函数调用失败,则返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。 本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=93775 RegisterHotKey   函数功能:该函数定义一个系统范围的热键。   函数原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk);   参数:   hWnd:接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。   id:定义热键的标识符。调用线程中的其他热键不能使用同样的标识符。应用功能程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态链接库(DLL)必须定义一个0xC000-0xFFFF范围的值伯GlobalAddAtom函数返回该范围)。为了避免与其他动态链接库定义的热键冲突,一个DLL必须使用GlobalAddAtom函数获得热键的标识符。   fsModifoers:定义为了产生WM_HOTKEY消息而必须与由nVirtKey参数定义的键一起按下的键。该参数可以是如下值的组合:   MOD_ALT:按下的可以是任一Alt键。MOD_CONTROL:按下的可以是任一Ctrl键。   MOD_SHIFT:按下的可以是任一Shift键。   MOD_WIN:按下的可以是任一Windows按键。这些键可以用Microsoft Windows日志记录下来。   vk:定义热键的虚拟键码。   返回值:若函数调用成功,返回一个非O值。若函数调用失败,则返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。   备注:当某键被接下时,系统在所有的热键中寻找匹配者。一旦找到一个匹配的热键系统将把WM_HOTKEY消息传递给登记了该热键的线程的消息队列。该消息被传送到队列头部,因此它将在下一轮消息循环中被移去。该函数不能将热键同其他线程创建的窗口关联起来。   若为一热键定义的击键己被其他热键所定义,则RegisterHotKey函数调用失败。   若hWnd参数标识的窗口已用与id参数定义的相同的标识符登记了一个热键,则参数fsModifiers和vk的新值将替代这些参数先前定义的值。   Windows CE:Windows CE 2.0以上版本对于参数fsModifiers支持一个附加的标志位。叫做MOD_KEYUP。   若设置MOD_KEYUP位,则当发生键被按下或被弹起的事件时,窗口将发送WM_HOTKEY消息。   RegisterHotKey可以被用来在线程之间登记热键。   速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib
变速齿轮0.45 变速齿轮是一个神奇的改变游戏速度的程序。他是世界上第一个,也是目前最好的改变Windows游戏速度的程序。他几乎能改变任何Windows游戏的速度。我还没有发现任何其他程序能改变,而变速齿轮不能改变的游戏。并且在效果上,例如变速后画面的平滑性(这同时会影响游戏的操作性)、能使游戏达到的最快或最慢速度、使用的方便性、运行的稳定性等都是最好的。 除了游戏,变速齿轮事实上也能改变任何时间相关的程序的速度,例如视频播放、Flash、网页等。总之他是一个用途广泛而且相当有趣的程序。 可以从我的主页(http://www.wangrong1002.com/)上下载本程序的最新版本。 新增功能与改进 1、因为不小心丢了源代码,只好又重写了变速齿轮。虽然界面看起来和原来一样,但实际是完全重写的。 2、9x版的变速齿轮中使用了和NT版中相同的技术,因此几乎能和NT版一样稳定。 3、用Ctrl+加速或减速键可以在每次0.1或0.5次方倍之间切换。 4、自动判断操作系统,只安装9x或NT版。 5、最小化时缩小到系统托盘。 6、NT版可以从“速度改变的进程”列表中删除进程。 7、减小了安装程序。 8、支持更多的热键。 支持的操作系统 这一版本的变速齿轮可以在Windows 98、Windows 98SE、Windows ME、Windows 2000、Windows XP、Windows Server 2003下运行。在Windows 98、Windows 98SE、Windows ME下使用9x版的变速齿轮,在Windows 2000、Windows XP、Windows Server 2003下使用NT版的变速齿轮。由于变速齿轮的9x和NT版在使用上有很大不同(实际上他们是两个不同的程序),所以我将分别地介绍他们。目前变速齿轮不能在Windows NT 3.x和Windows NT 4.x下运行。其实要让变速齿轮能在这两个操作系统下运行是很容易的,方法也很多,不过连M$自己都不支持他们了,所以我也偷个懒吧。我也没有在Windows 95下做过测试,同样也是因为M$不再支持他们了。 变速齿轮的使用 9x版变速齿轮的使用很简单,你要做的唯一事情是移动滑杆设定你想要的速度。设定的速度对系统中所有进程(也就是正在运行的程序)都有效。注意,有些游戏不能在运行中改变速度,这时只要先设定好想要的速度再运行游戏就可以了。 NT版的变速齿轮使用比9x版略微复杂。他只对那些你指定的进程变速,对其他进程则没有影响,这样就大大提高了变速齿轮的稳定性。有几种方法可以指定需要变速的进程: 1。在“速度未改变的进程”列表框中是变速齿轮没有对他变速的进程。在这个列表框中选择一个进程,点加入按钮,可以把他加入到“速度改变的进程”列表中。 2。点浏览按钮(标题是三个点的那个按钮),将打开文件对话框。用他选择一个可执行文件(*.exe)。所选择的文件名将自动填入下拉列表框,并且自动运行。 3。在下拉列表框中填入带完全路径的可执行文件名,按运行按钮运行他。下拉列表框中保存着以前运行过的可执行文件名。你也可以方便地从中选择一个。 4。被变速齿轮变速的进程启动的进程也将自动被变速。由于几乎所有的进程都是由NT的外壳进程(就是在变速齿轮中显示为“Program Manager”的那个进程。桌面和资源管理器也都属于这个进程)启动的,所以如果把“Program Manager”加入到“速度改变的进程”列表中,将是一个方便的使用变速齿轮的方法。 如果进程列表没有正确反映当前的进程状态,可以点刷新按钮刷新列表。对于一些不能在运行中改变速度,或者在运行中改变速度会发生异常的游戏,请先设定好想要的速度,然后用除了第一种方法之外的方法启动游戏。 变速齿轮可以使用热键方便地改变速度。在不能切换到变速齿轮的使用界面,例如游戏正在运行时,热键甚至是唯一改变速度的方法。 点热键按钮可以弹出设置热键对话框。固定速度热键用于把变速齿轮设定到一个固定的速度,加快减慢热键用于加快或者减慢速度。如果核选“加快减慢热键使用精细调节”核选框,每次加快减慢2的0.1次方倍,否则每次加快减慢2的0.5次方倍。另外,使用Ctrl+加快减慢热键也可以在每次2的0.1次方倍和2的0.5次方倍之间切换。“启用热键”核选框用于设置所有热键是否有效。 注意如果用鼠标拖动滑杆将只停在整数倍位置,但是使用左右键可以进行更精细的调节。也可以使用Page Up、Page Down、Home、End键移动滑杆。 常见问题解答 *变速齿轮真的能让我的电脑运行加快256倍吗? 当然不能,否则Intel和AMD岂不是得改行卖软件。事实上他不会改变电脑的运行速度。 *使用变速齿轮会烧坏CPU、显卡和硬盘吗? 不会。如果在用变速齿轮时CPU、显卡或硬盘坏了,即使不用变速齿轮它们一样会坏。 *我在用Windows媒体播放器(Windows Media Player)看电影时想用变速齿轮快进和慢放,但我发现他只是使画面变得跳动,实际速度并没有变化。 在电脑中有声卡时媒体播放器会根据播放声音的速度播放视频。因此需要停用所有声卡。9x下是进入控制面板\系统\设备管理器,右键点击声卡设备,点属性,选在此硬件配置文件中禁用。NT下是进入控制面版\系统\硬件\设备管理器,右键点击声卡设备,点停用。 *加速器真的很好,特别是玩《石器时代》的时候,但是,突然有一天,我发现我的连接上的时间也跟着一起加速,连接时间过的飞快,我可是一个穷玩家啊,禁受不起打击的,希望给我答案!!!是不是加速的时候,电话费和网费也一起加速啊? 放心吧!使用变速齿轮是不会影响到电话费和网费的记费的,你看到的只是使用变速齿轮后的假象,电信局有自己的计费时钟。 *变速齿轮只能改变Windows95及以上版本游戏的速度吗? 是的,他不能改变DOS和Windows3.1游戏的速度。 *我怎么改变不了电脑移植版真侍魂的游戏速度? 由于计时方法的不同,一些游戏不能在运行中改变速度,或者在运行中改变速度会发生异常。只要先设定好速度再运行游戏就可以了。 *我在NeoRage模拟器中把速度降低8倍后为什么按键速度快了就做不出相应的动作,声音也完全变成了噪音? NeoRage并不是连续检测键盘,假设他每秒检测30次,降低8倍后每秒仅检测4次,在这4次检测之间的键盘状态是被忽略的。所以把动作放慢一点吧。变成噪音是由于模拟器的特殊性。据我的测试,在其他游戏中声音都是正常的。 *我把速度降低16倍后为什么看到很多游戏画面是一帧一帧变化的? 二维游戏画面每秒最多30帧,降低16倍后每秒仅有两帧,所以你能清楚地看到画面一帧一帧地变化。三维游戏的帧速率也经常会有上限
变速齿轮0.45 变速齿轮是一个神奇的改变游戏速度的程序。他是世界上第一个,也是目前最好的改变Windows游戏速度的程序。他几乎能改变任何Windows游戏的速度。我还没有发现任何其他程序能改变,而变速齿轮不能改变的游戏。并且在效果上,例如变速后画面的平滑性(这同时会影响游戏的操作性)、能使游戏达到的最快或最慢速度、使用的方便性、运行的稳定性等都是最好的。 除了游戏,变速齿轮事实上也能改变任何时间相关的程序的速度,例如视频播放、Flash、网页等。总之他是一个用途广泛而且相当有趣的程序。 可以从我的主页(http://www.wangrong1002.com/)上下载本程序的最新版本。 新增功能与改进 1、因为不小心丢了源代码,只好又重写了变速齿轮。虽然界面看起来和原来一样,但实际是完全重写的。 2、9x版的变速齿轮中使用了和NT版中相同的技术,因此几乎能和NT版一样稳定。 3、用Ctrl+加速或减速键可以在每次0.1或0.5次方倍之间切换。 4、自动判断操作系统,只安装9x或NT版。 5、最小化时缩小到系统托盘。 6、NT版可以从“速度改变的进程”列表中删除进程。 7、减小了安装程序。 8、支持更多的热键。 支持的操作系统 这一版本的变速齿轮可以在Windows 98、Windows 98SE、Windows ME、Windows 2000、Windows XP、Windows Server 2003下运行。在Windows 98、Windows 98SE、Windows ME下使用9x版的变速齿轮,在Windows 2000、Windows XP、Windows Server 2003下使用NT版的变速齿轮。由于变速齿轮的9x和NT版在使用上有很大不同(实际上他们是两个不同的程序),所以我将分别地介绍他们。目前变速齿轮不能在Windows NT 3.x和Windows NT 4.x下运行。其实要让变速齿轮能在这两个操作系统下运行是很容易的,方法也很多,不过连M$自己都不支持他们了,所以我也偷个懒吧。我也没有在Windows 95下做过测试,同样也是因为M$不再支持他们了。 变速齿轮的使用 9x版变速齿轮的使用很简单,你要做的唯一事情是移动滑杆设定你想要的速度。设定的速度对系统中所有进程(也就是正在运行的程序)都有效。注意,有些游戏不能在运行中改变速度,这时只要先设定好想要的速度再运行游戏就可以了。 NT版的变速齿轮使用比9x版略微复杂。他只对那些你指定的进程变速,对其他进程则没有影响,这样就大大提高了变速齿轮的稳定性。有几种方法可以指定需要变速的进程: 1。在“速度未改变的进程”列表框中是变速齿轮没有对他变速的进程。在这个列表框中选择一个进程,点加入按钮,可以把他加入到“速度改变的进程”列表中。 2。点浏览按钮(标题是三个点的那个按钮),将打开文件对话框。用他选择一个可执行文件(*.exe)。所选择的文件名将自动填入下拉列表框,并且自动运行。 3。在下拉列表框中填入带完全路径的可执行文件名,按运行按钮运行他。下拉列表框中保存着以前运行过的可执行文件名。你也可以方便地从中选择一个。 4。被变速齿轮变速的进程启动的进程也将自动被变速。由于几乎所有的进程都是由NT的外壳进程(就是在变速齿轮中显示为“Program Manager”的那个进程。桌面和资源管理器也都属于这个进程)启动的,所以如果把“Program Manager”加入到“速度改变的进程”列表中,将是一个方便的使用变速齿轮的方法。 如果进程列表没有正确反映当前的进程状态,可以点刷新按钮刷新列表。对于一些不能在运行中改变速度,或者在运行中改变速度会发生异常的游戏,请先设定好想要的速度,然后用除了第一种方法之外的方法启动游戏。 变速齿轮可以使用热键方便地改变速度。在不能切换到变速齿轮的使用界面,例如游戏正在运行时,热键甚至是唯一改变速度的方法。 点热键按钮可以弹出设置热键对话框。固定速度热键用于把变速齿轮设定到一个固定的速度,加快减慢热键用于加快或者减慢速度。如果核选“加快减慢热键使用精细调节”核选框,每次加快减慢2的0.1次方倍,否则每次加快减慢2的0.5次方倍。另外,使用Ctrl+加快减慢热键也可以在每次2的0.1次方倍和2的0.5次方倍之间切换。“启用热键”核选框用于设置所有热键是否有效。 注意如果用鼠标拖动滑杆将只停在整数倍位置,但是使用左右键可以进行更精细的调节。也可以使用Page Up、Page Down、Home、End键移动滑杆。 常见问题解答 *变速齿轮真的能让我的电脑运行加快256倍吗? 当然不能,否则Intel和AMD岂不是得改行卖软件。事实上他不会改变电脑的运行速度。 *使用变速齿轮会烧坏CPU、显卡和硬盘吗? 不会。如果在用变速齿轮时CPU、显卡或硬盘坏了,即使不用变速齿轮它们一样会坏。 *我在用Windows媒体播放器(Windows Media Player)看电影时想用变速齿轮快进和慢放,但我发现他只是使画面变得跳动,实际速度并没有变化。 在电脑中有声卡时媒体播放器会根据播放声音的速度播放视频。因此需要停用所有声卡。9x下是进入控制面板\系统\设备管理器,右键点击声卡设备,点属性,选在此硬件配置文件中禁用。NT下是进入控制面版\系统\硬件\设备管理器,右键点击声卡设备,点停用。 *加速器真的很好,特别是玩《石器时代》的时候,但是,突然有一天,我发现我的连接上的时间也跟着一起加速,连接时间过的飞快,我可是一个穷玩家啊,禁受不起打击的,希望给我答案!!!是不是加速的时候,电话费和网费也一起加速啊? 放心吧!使用变速齿轮是不会影响到电话费和网费的记费的,你看到的只是使用变速齿轮后的假象,电信局有自己的计费时钟。 *变速齿轮只能改变Windows95及以上版本游戏的速度吗? 是的,他不能改变DOS和Windows3.1游戏的速度。 *我怎么改变不了电脑移植版真侍魂的游戏速度? 由于计时方法的不同,一些游戏不能在运行中改变速度,或者在运行中改变速度会发生异常。只要先设定好速度再运行游戏就可以了。 *我在NeoRage模拟器中把速度降低8倍后为什么按键速度快了就做不出相应的动作,声音也完全变成了噪音? NeoRage并不是连续检测键盘,假设他每秒检测30次,降低8倍后每秒仅检测4次,在这4次检测之间的键盘状态是被忽略的。所以把动作放慢一点吧。变成噪音是由于模拟器的特殊性。据我的测试,在其他游戏中声音都是正常的。 *我把速度降低16倍后为什么看到很多游戏画面是一帧一帧变化的? 二维游戏画面每秒最多30帧,降低16倍后每秒仅有两帧,所以你能清楚地看到画面一帧一帧地变化。三维游戏的帧速率也经常会有上限。
变速齿轮是一个神奇的改变游戏速度的程序。他是世界上第一个,也是目前最好的改变Windows游戏速度的程序。他几乎能改变任何Windows游戏的速度。我还没有发现任何其他程序能改变,而变速齿轮不能改变的游戏。并且在效果上,例如变速后画面的平滑性(这同时会影响游戏的操作性)、能使游戏达到的最快或最慢速度、使用的方便性、运行的稳定性等都是最好的。 除了游戏,变速齿轮事实上也能改变任何时间相关的程序的速度,例如视频播放、Flash、网页等。总之他是一个用途广泛而且相当有趣的程序。 可以从我的主页(http://www.wangrong1002.com/)上下载本程序的最新版本。 新增功能与改进 1、因为不小心丢了源代码,只好又重写了变速齿轮。虽然界面看起来和原来一样,但实际是完全重写的。 2、9x版的变速齿轮中使用了和NT版中相同的技术,因此几乎能和NT版一样稳定。 3、用Ctrl+加速或减速键可以在每次0.1或0.5次方倍之间切换。 4、自动判断操作系统,只安装9x或NT版。 5、最小化时缩小到系统托盘。 6、NT版可以从“速度改变的进程”列表中删除进程。 7、减小了安装程序。 8、支持更多的热键。 支持的操作系统 这一版本的变速齿轮可以在Windows 98、Windows 98SE、Windows ME、Windows 2000、Windows XP、Windows Server 2003下运行。在Windows 98、Windows 98SE、Windows ME下使用9x版的变速齿轮,在Windows 2000、Windows XP、Windows Server 2003下使用NT版的变速齿轮。由于变速齿轮的9x和NT版在使用上有很大不同(实际上他们是两个不同的程序),所以我将分别地介绍他们。目前变速齿轮不能在Windows NT 3.x和Windows NT 4.x下运行。其实要让变速齿轮能在这两个操作系统下运行是很容易的,方法也很多,不过连M$自己都不支持他们了,所以我也偷个懒吧。我也没有在Windows 95下做过测试,同样也是因为M$不再支持他们了。 变速齿轮的使用 9x版变速齿轮的使用很简单,你要做的唯一事情是移动滑杆设定你想要的速度。设定的速度对系统中所有进程(也就是正在运行的程序)都有效。注意,有些游戏不能在运行中改变速度,这时只要先设定好想要的速度再运行游戏就可以了。 NT版的变速齿轮使用比9x版略微复杂。他只对那些你指定的进程变速,对其他进程则没有影响,这样就大大提高了变速齿轮的稳定性。有几种方法可以指定需要变速的进程: 1。在“速度未改变的进程”列表框中是变速齿轮没有对他变速的进程。在这个列表框中选择一个进程,点加入按钮,可以把他加入到“速度改变的进程”列表中。 2。点浏览按钮(标题是三个点的那个按钮),将打开文件对话框。用他选择一个可执行文件(*.exe)。所选择的文件名将自动填入下拉列表框,并且自动运行。 3。在下拉列表框中填入带完全路径的可执行文件名,按运行按钮运行他。下拉列表框中保存着以前运行过的可执行文件名。你也可以方便地从中选择一个。 4。被变速齿轮变速的进程启动的进程也将自动被变速。由于几乎所有的进程都是由NT的外壳进程(就是在变速齿轮中显示为“Program Manager”的那个进程。桌面和资源管理器也都属于这个进程)启动的,所以如果把“Program Manager”加入到“速度改变的进程”列表中,将是一个方便的使用变速齿轮的方法。 如果进程列表没有正确反映当前的进程状态,可以点刷新按钮刷新列表。对于一些不能在运行中改变速度,或者在运行中改变速度会发生异常的游戏,请先设定好想要的速度,然后用除了第一种方法之外的方法启动游戏。 变速齿轮可以使用热键方便地改变速度。在不能切换到变速齿轮的使用界面,例如游戏正在运行时,热键甚至是唯一改变速度的方法。 点热键按钮可以弹出设置热键对话框。固定速度热键用于把变速齿轮设定到一个固定的速度,加快减慢热键用于加快或者减慢速度。如果核选“加快减慢热键使用精细调节”核选框,每次加快减慢2的0.1次方倍,否则每次加快减慢2的0.5次方倍。另外,使用Ctrl+加快减慢热键也可以在每次2的0.1次方倍和2的0.5次方倍之间切换。“启用热键”核选框用于设置所有热键是否有效。 注意如果用鼠标拖动滑杆将只停在整数倍位置,但是使用左右键可以进行更精细的调节。也可以使用Page Up、Page Down、Home、End键移动滑杆。 常见问题解答 *变速齿轮真的能让我的电脑运行加快256倍吗? 当然不能,否则Intel和AMD岂不是得改行卖软件。事实上他不会改变电脑的运行速度。 *使用变速齿轮会烧坏CPU、显卡和硬盘吗? 不会。如果在用变速齿轮时CPU、显卡或硬盘坏了,即使不用变速齿轮它们一样会坏。 *我在用Windows媒体播放器(Windows Media Player)看电影时想用变速齿轮快进和慢放,但我发现他只是使画面变得跳动,实际速度并没有变化。 在电脑中有声卡时媒体播放器会根据播放声音的速度播放视频。因此需要停用所有声卡。9x下是进入控制面板\系统\设备管理器,右键点击声卡设备,点属性,选在此硬件配置文件中禁用。NT下是进入控制面版\系统\硬件\设备管理器,右键点击声卡设备,点停用。 *加速器真的很好,特别是玩《石器时代》的时候,但是,突然有一天,我发现我的连接上的时间也跟着一起加速,连接时间过的飞快,我可是一个穷玩家啊,禁受不起打击的,希望给我答案!!!是不是加速的时候,电话费和网费也一起加速啊? 放心吧!使用变速齿轮是不会影响到电话费和网费的记费的,你看到的只是使用变速齿轮后的假象,电信局有自己的计费时钟。 *变速齿轮只能改变Windows95及以上版本游戏的速度吗? 是的,他不能改变DOS和Windows3.1游戏的速度。 *我怎么改变不了电脑移植版真侍魂的游戏速度? 由于计时方法的不同,一些游戏不能在运行中改变速度,或者在运行中改变速度会发生异常。只要先设定好速度再运行游戏就可以了。 *我在NeoRage模拟器中把速度降低8倍后为什么按键速度快了就做不出相应的动作,声音也完全变成了噪音? NeoRage并不是连续检测键盘,假设他每秒检测30次,降低8倍后每秒仅检测4次,在这4次检测之间的键盘状态是被忽略的。所以把动作放慢一点吧。变成噪音是由于模拟器的特殊性。据我的测试,在其他游戏中声音都是正常的。 *我把速度降低16倍后为什么看到很多游戏画面是一帧一帧变化的? 二维游戏画面每秒最多30帧,降低16倍后每秒仅有两帧,所以你能清楚地看到画面一帧一帧地变化。三维游戏的帧速率也经常会有上限。
1,listview.ZIP 演示使用listview控制, 作出资源管理器中目录树中的效果 (7KB)2,dirview.ZIP 装入整个 c 盘目录到 treeview (4KB)3,progress.ZIP 演示使用win95的进度条(3KB)4,progbar.ZIP 进度条演示(4KB)5,slider.ZIP 使用滑动控制(6KB)6,statusbar.ZIP 控制状态条的例子(10KB) 7,tabstrip.ZIP tabstrip控制的例子 (10KB)8,treeview.ZIP 存储/恢复treeview的例子(10KB) 9,treelist.ZIP 使用treeview和listview显示数据库的数据 (7KB)10,combohg.ZIP 改变combobox的下拉高度(2KB) 11,dragtree.ZIP 拖拉树节点的例子(7KB) 12,lvstyles.ZIP 演示listview控制的例子(27KB) 13,make_toolbar_flat.ZIP 实现浮动工具条的例子(1KB) 14,code_coolbar.ZIP ie4风格的工具条(26KB)15,djmeter.ZIP 实现进度条的例子(10KB) 16,dupes.ZIP 一个combobox的例子(3KB) 17,formdsgn.ZIP 演示改变控件的大小和移动控件的例子(9KB)18,tvcheckboxes.ZIP treeview和checkbox的例子(9KB)19,tveventcancel.ZIP 使用treeview的简单例子(12KB) 20,tvnode-hitem.ZIP 在treeview的节点处使用图形(6KB)21,timedmsg.ZIP 对windows的标准对话框还可以加上时间限制的例子(9KB)22,browsedlg.ZIP 通过对一系列的 api 及 shell32.dll 的调用来实现 windows 各种标准浏览选择对话框。此源代码为 vb4 设计。对后来版本同样适用(8KB) 23,listtips.ZIP listbox中使每一item有不同的tip(2KB) 24,newctl.ZIP 动态创建控件的例子,解决了vb5中不能"无中生有"的毛病(2KB)25,colourdg.ZIP 调用windows的颜色对话框, 不需用到"comdlg32.ocx"(3KB) 26,clipbutton.ZIP 在我们使用 vb 的 code 编辑器时,其粘贴、复制、剪切按钮能随着当前的选择情况而进行适当的调整,本程序演示了类似的功能, 作者:jin(kenj@163.net)(3KB) 27,clipview.ZIP 使用 windows 剪贴板(16KB) 28,richedit.ZIP 利用richtext实现的编辑器(3KB) 29,srchlist.ZIP 在 list 控件里进行增量查询(4KB)30,savetree.ZIP 以文件方式保存和恢复treeview(7KB)31,kenjLV1.zip ListView的API效果演示(10KB)32,txtsrch.zip 在Text中实现快速增量查询(4KB)33,TracBar.zip 滚动条模块,与 VB 的滚动条比较,该模块支持动态生成, 支持触发消息(7KB)34,treedrag.zip TreeView 中节点拖动、增加、删除等功能演示(8KB)35,wordwrap.zip 在 TextBox 中自动换行(2KB)36,combosrc.zip 在 COMBO 中的增量查询(2KB)37,progman.zip 制作安装程序必备,此模块包含的SUB及Function能帮你做出专业的安装程序(2KB)38,messageboxdemo.zip 用API调出MessageBox框!(6KB)39,associate.zip 建立关联程序的例子。本程序演示把 .bar 文件与 NotePad建立关联(3KB)40,tbar97.zip 制作的一个类似Office97的工具栏,除了不能移动外,其他都极为相似!(24KB)41,combomagic.zip 在 COMBO 中的增量查询(3KB)42,cursortest.zip 鼠标控制演示。提供了一个鼠标控制的类,包括移动、限制隐藏等功能(4KB)43,cpu.zip 监视 CPU 使用情况的例子(4KB)44,cdfind.zip 找出系统光驱的盘符(3KB)45,up.zip 数字大写转换程序(4KB)46,ktext.zip VB编程中突破64K的文本显示限制(2KB)47,menudemo.zip 使用API改变菜单,使之具有几列,如同Windows的开始菜单一样(4KB)48,clipcur.zip 限制鼠标的移动区域(2KB)49,findlist.zip 在ListBox快速搜寻字符串(5KB)50,getword.zip 读取鼠标所在位置的单词(5KB)51,filemanager.zip 文件管理器(8KB)52,mousedemo.zip 一些鼠标例子演示(3KB)53,calendar.zip 一个小小的日历程序(4KB)54,hotkey.zip VB编程中热键应用一例(3KB)55,noalt+f4.zip 去掉窗体关闭按钮 (2KB)56,cpuinf.zip 取得CPU的报告(16KB)57,viewpw.zip 密码查看器,可查看"***"的字符(7KB)58,regdemo.zip 向注册表建立关联文件(3KB)59,cipher.zip 加密/解密字符串的例子(3KB)60,browsefolders5.zip 浏览一个子目录(3KB)61,easymail.zip 文件加密/解密的例子(5KB)62,encstrings.zip 加密/解密字符串的例子(2KB)63,keybinf.zip 键盘信息报告例子(2KB)64,reginq.zip 读取注册表的例子,利用了API可读注册表中所有的项目(4KB)65,wpchanger.zip Windows墙纸更改事例 (3KB)66,vbtozip.zip 用VB压缩文件(最简单的方法)(2KB)67,anicursor.zip 演示如何使用动画光标 VB源码(7KB)68,cfdemo.zip 不用CommonDialog控件,使用API调用字体对话框 VB源码(281KB)69,cmdlgd.zip 替换 Windows 公共对话框的 DLL 和演示程序的源代码,具有HOOK 功能(86KB)70,colordlg.zip 不用CommonDialog控件,使用API调用颜色对话框 VB源码(4KB)71,commondialogs.zip Windows 公共对话框的源代码,包含文件、打印机、颜色、字体、游览对话框(7KB)72,cpuinfo.zip 得到CPU的详细信息 VB源码(16KB)73,fileprops.zip 演示如何调用 Windows 资源管理器中的文件属性对话框(7KB)74,progbar121.zip 进程杆控件的源代码。具有水平、垂直,渐变,显示文本和百分比,播放声音的功能,不会让您失望。(12KB)75,subcls328.zip 一个子类的源代码,包含菜单、MDI窗体背景等8个演示程序(46KB)76,taskbar.zip 把应用程序的图标放在任务栏的右侧,是一个控件源代码(6KB)77,vbthread.zip 用VB实现多线程 VB源码(15KB)78,ini_vb6.zip 用WindowsAPI访问INI文件(8KB)79,syshotkey.zip 创建一个系统级的热键,无论你的程序是否获得焦点热键不生效 (4KB)80,win98mi.zip Win98多显示器支持演示(31KB)81,message.zip 拦截Windows消息(8KB)82,viewdoc.zip 用系统默认程序查看并打印文档 (7KB)83,srcset.zip 改变屏幕到16位彩色的演示 (2KB)84,moduleini.zip 访问、修改INI的函数(1KB)85,listapp.zip 枚举系统正在运行的程序(包括隐含的) (5KB)86,hidebtn.zip 隐藏Win9X中任务栏上的“开始”按钮(2KB)87,win95grp.zip 获得Windows9X下开始|程序中所有的程序组(16KB)88,clipview.zip 如何查看剪贴板中的带格式文本 (42KB)89,sysinfo.zip 获得系统的信息:硬盘、显示器、内存... (3KB)90,zm.zip 取得计算机中所有Modem的名称(2KB)91,custmnu2.zip 又一个菜单的例子(5KB)92,collSRC.zip 程序收集1.0版 (214KB)93,countdown.zip 一个倒计时的程序(10KB)94,00951404.zip 利用热键操作实现一键通(55KB)95,system_v.zip 系统监视器,可以实时监视正在运行的程序,并关闭他(29KB)

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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