vmware6.2能否像6.5一样可以最小化到托盘区?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vmware6.2能否像6.5一样可以最小化到托盘区?相关的知识,希望对你有一定的参考价值。
很多人装了vmware6.2精简版和6.5精简版。
但本人经过测试,6.5版本会在系统里面添加三个vmware的服务,感觉不太爽,服务启动得越多,系统启动就相应的越慢。
6.5不像6.2那样,不会向系统里面添加服务。
但6.5有一个优点就是可以最小化到系统托盘区(时间显示那里),而6.2却不行。
不知道有没有哪位大大有方法可以将6.2也可以最小化到系统托盘区那里?
我知道那些服务可以禁用,但我不想它在系统里面添加服务。
关于各项服务,我建议你不要动(当然,可以设置其是否随系统自动启动),因为虚拟机在运行的时候是需要这些服务的。
你也可以删去这些系统服务(最简单的方法使用360安全卫士的高级服务),那样的话,以后你运行虚拟机的时候就得手动运行那些程序了。
因为没用过6。2,回答不够专业,抱歉,希望能给你帮助。Good luck! 参考技术B 那些服务是可以禁用的。去msconfig修改吧
C#全局热键在第一次最小化到托盘时不起作用,但在显示并再次最小化后它起作用
【中文标题】C#全局热键在第一次最小化到托盘时不起作用,但在显示并再次最小化后它起作用【英文标题】:C# Global hotkeys won't work in first minimize to tray but after showing and minimize again it works 【发布时间】:2014-04-13 08:48:54 【问题描述】:对不起,如果我错过了像傻瓜一样的东西,但我必须发送这个项目并且我有一个问题
我在创建的句柄上注册了全局热键(编辑!!)
protected override void OnHandleCreated(EventArgs e)
base.OnHandleCreated(e);
RegisterHotKey(this.Handle, 1, 0x0000,0x70);
RegisterHotKey(this.Handle, 2, 0x0000,0x71);
RegisterHotKey(this.Handle, 3, 0x0000,0x72);
RegisterHotKey(this.Handle, 4, 0x0000,0x73);
RegisterHotKey(this.Handle, 5, 0x0000,0x74);
RegisterHotKey(this.Handle, 6, 0x0000,0x75);
RegisterHotKey(this.Handle, 7, 0x0000,0x76);
RegisterHotKey(this.Handle, 8, 0x0000,0x77);
RegisterHotKey(this.Handle, 9, 0x0000,0x78);
RegisterHotKey(this.Handle, 10, 0x0000,0x79);
RegisterHotKey(this.Handle, 11, 0x0000,0x7A);
RegisterHotKey(this.Handle, 12, 0x0000,0x7B);
RegisterHotKey(this.Handle, 13, 0x0002,0x45);
我的 button1 确实隐藏了表单并使托盘图标可见
void Button1Click(object sender, EventArgs e)
trayicon.Visible=true;
ShowInTaskbar=false;
this.Hide();
trayicon.ShowBalloonTip(2000,"Corrector is now minimized","Right click at check symbol to Exit or show and change hotkey",ToolTipIcon.Info);
我还有双击托盘图标后显示表单的功能
private void trayicon_DoubleClick(object Sender, EventArgs e)
this.Show();
Visible=true;
ShowInTaskbar=true;
现在的问题,我设置了全局热键 13 退出程序。
1.我打开程序,按Ctrl+E(热键)>>>退出程序
2.我打开程序按下按钮1然后Ctrl+E>>>它没有退出程序
3.我打开程序,按下按钮1并双击图标,窗体显示然后Ctrl+E>>>>退出程序
4.我打开程序,按下按钮 1 并双击图标,表格显示然后再次按下按钮 1 表格消失然后 Ctrl+E>>> 退出程序。
这就是为什么我很困惑,2 和 4 应该有相同的结果,但是在 4 上它确实有效,而在 2 上它不起作用
谁来帮帮我
谢谢
呸
编辑:!!
我的 Wndproc
protected override void WndProc(ref Message m)
if (m.Msg == 0x0312)
int id = m.WParam.ToInt32();
if(id==14)
Application.Exit();
if(id==13)
Application.Exit();
if(check2==0)
this.TopMost=true;
MessageBox.Show("กรุณาเลือกปุ่มที่จะใช้เเก้ก่อน,Select hotkey first","ข้อผิดพลาด",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.TopMost=false;
if(id==check2)
translate();//You can replace this statement with your desired response to the Hotkey.
base.WndProc(ref m);
【问题讨论】:
可能是this ? @Sinatr 我不这么认为,如果因为那件事,为什么我的第二次尝试有效而第一次无效 不知道,也许其他的东西得到了关注?试试看吧。 【参考方案1】:很确定您的问题与ShowInTaskbar
属性的不断切换有关。据我所知,这样做会破坏并重新创建您的窗口,这意味着您注册热键的句柄现在指向错误的东西。
正如您现在的代码所示,热键仅在您的表单首次创建时被分配,因为调用 Hide()
不会处理窗口(为了记录,Visible
调用是多余的;Show() /Hide() 相当于将Visible
切换为真/假)。
据我所知,有两种方法可以解决这个问题。在ShowInTaskbar
属性上切换后分配您的热键,或者覆盖表单的OnHandleCreated
方法并在那里进行分配。
我不知道为什么您的第 3 步和第 4 步会以它们的方式工作;我认为他们都不应该退出程序。这是否可靠地发生?也许更聪明的人可以冒险猜测它为什么起作用。手柄是否有可能被回收?
【讨论】:
我宁愿创建一个单独的窗口来注册这些热键。 当然可以这样做;不过,对他来说最简单的解决方法是重写 OnHandleCreated 方法并为每个 ShowInTaskbar 切换重新分配,IMO。 mediafire.com/?7xrcc0d0iby9rk1 rar 包含我的程序按第一个按钮然后你在我的问题表单中 你有没有尝试过我的任何建议?不要个人认为,但我不会执行你的流氓可执行文件。您的问题已被理解;如果您有更多要分享的代码或行为问题,请用它更新您的问题。 @glace 我已经覆盖了我的 onhandlecreated 方法要更新帖子【参考方案2】:我进一步调查了这个问题(遇到了同样的问题),发现窗口句柄在您将应用程序发送到托盘后立即被破坏,然后当我被发送到时立即重新创建窗口句柄托盘:
OnHandleDestroyed(EventArgs e)
调用
OnHandleCreated(EventArgs e)
之后立即调用
只需在 OnHandleCreated 回调中重新注册您的热键,然后每当您将应用发送到托盘时,您的热键就会起作用。
PS:当您只是最小化到任务栏时,您的热键将始终有效。
问候
【讨论】:
以上是关于vmware6.2能否像6.5一样可以最小化到托盘区?的主要内容,如果未能解决你的问题,请参考以下文章