读取注册表的值,之后打印到壁纸上.

kindo 2009-01-22 12:31:23
问题如下.
用C#读取注册表,比如读取WINDOWS的版本,然后想把版本的值打印到壁纸上,好比是右上角.
问题是怎么实现这个.
谢谢大家了.
...全文
169 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyi8808 2009-01-22
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 kindo 的回复:]
画面一旦被什么窗口经过后,会变得惨不忍睹.
[/Quote]

是有这个问题,不知有什么好方法来解决它。
kindo 2009-01-22
  • 打赏
  • 举报
回复
To zgke
说的太深奥了,我没有那么专业.
zgke 2009-01-22
  • 打赏
  • 举报
回复
如果不行 你用控件的方式把 使用
[DllImport("user32.dll", EntryPoint = "SetParent")]
public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);


但你控件透明的另外处理.,.
kindo 2009-01-22
  • 打赏
  • 举报
回复
To wuyi8808
很感谢.但是有个问题
画面一旦被什么窗口经过后,会变得惨不忍睹.
wuyi8808 2009-01-22
  • 打赏
  • 举报
回复
可以考虑这样:
它会一直执行,要停止它,在任务管理器中把进程杀了。

using System;
using System.Drawing;
using System.Threading;
using System.Runtime.InteropServices;

class Program
{
static void Main()
{
for (;;)
{
DrawTextDeskTop.SetDeskTop(DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"), new Font("宋体",16), Brushes.Yellow);
Thread.Sleep(1000);
}
}
}

class DrawTextDeskTop
{
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
public static extern IntPtr GetDesktopWindow();

[DllImport("user32.dll", EntryPoint = "GetWindowDC")]
public static extern IntPtr GetWindowDC(IntPtr hwnd);

[DllImport("user32.dll", EntryPoint = "ReleaseDC")]
public static extern int ReleaseDC(IntPtr hwnd,IntPtr hdc);

public static void SetDeskTop(string p_Text, Font p_Font, Brush p_Brushes)
{
IntPtr _DeskTopIntPtr = GetDesktopWindow();
IntPtr _DC = GetWindowDC(_DeskTopIntPtr);
Graphics.FromHdc(_DC).DrawString(p_Text, p_Font, p_Brushes, 60, 200);
ReleaseDC(_DeskTopIntPtr, _DC);
}
}
kindo 2009-01-22
  • 打赏
  • 举报
回复
呵呵抱歉,我只是举个例子获取版本号,
其实是获取其他的文档名称等等.

关于Time 控件,我自己先试试看.

谢谢大家.
zgke 2009-01-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyi8808 的回复:]
如果只是想在桌面上显示 Windows 版本号,不必这么麻烦,按下面去做就行了(google一下得到的):

  通过修改注册表,可以在桌面右下角显示出你的Windows版本号。

  首先运行注册表编辑器:开始->运行->输入: regedit, 然后打开已有的或新建下列操作子键, 并根据下表编辑其相应键值项(如果不存在请新建此项)

  在注册表中找到:

  操作子键 HKEY_CURRENT_USER\Control Panel\Desktop

  键值项(数…
[/Quote]

学习了~~着方法好 直接改注册表~~
wuyi8808 2009-01-22
  • 打赏
  • 举报
回复
如果只是想在桌面上显示 Windows 版本号,不必这么麻烦,按下面去做就行了(google一下得到的):

  通过修改注册表,可以在桌面右下角显示出你的Windows版本号。

  首先运行注册表编辑器:开始->运行->输入: regedit, 然后打开已有的或新建下列操作子键, 并根据下表编辑其相应键值项(如果不存在请新建此项)

  在注册表中找到:

  操作子键 HKEY_CURRENT_USER\Control Panel\Desktop

  键值项(数据类型) :PaintDesktopVersion(DWord值)

  键值:0(不显示Windows的版本号); 1(显示Windows的版本号)

  (备注)把这项改成1,注销或重起系统以后,就可以在桌面右下角显示你的Windows版本号了。

zgke 2009-01-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyi8808 的回复:]
那就用Windows“控制面板”中的“任务计划”让它每60秒执行一次。
[/Quote]
或则做个TIMER控件 让他刷去好了
kindo 2009-01-22
  • 打赏
  • 举报
回复
To wuyi8808

还得牵涉到任务计划,有点劳心劳力.
打算在C#里一次搞定.
wuyi8808 2009-01-22
  • 打赏
  • 举报
回复
那就用Windows“控制面板”中的“任务计划”让它每60秒执行一次。
kindo 2009-01-22
  • 打赏
  • 举报
回复
zgke大侠,怎么做时间刷,可不可以用后台线程之类
设一个循环让它一直显示呢
zgke 2009-01-22
  • 打赏
  • 举报
回复
你用HOOK做获取消息 或则 你做个时间一直刷
kindo 2009-01-22
  • 打赏
  • 举报
回复
有个问题想求请教.
只能现实一下,鼠标点击其他地方后就消失了,
请问可以一直显示吗
zgke 2009-01-22
  • 打赏
  • 举报
回复
Win32API 把这个删除了 就好了
kindo 2009-01-22
  • 打赏
  • 举报
回复
To zgke
非常感谢.注册表的值已经取完了,可是最后的Win32API总无法通过.
虽然前面已经调用了 "user32.dll"

Win32API还需要什么Using 或者dll吗
zgke 2009-01-22
  • 打赏
  • 举报
回复
DrawTextDeskTop.SetDeskTop("Value", this.Font, Brushes.Yellow);


public class DrawTextDeskTop
{
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
public static extern IntPtr GetDesktopWindow();

[DllImport("user32.dll", EntryPoint = "GetWindowDC")]
public static extern IntPtr GetWindowDC(IntPtr hwnd);

[DllImport("user32.dll", EntryPoint = "ReleaseDC")]
public static extern int ReleaseDC(IntPtr hwnd,IntPtr hdc);

public static void SetDeskTop(string p_Text, Font p_Font, Brush p_Brushes)
{
IntPtr _DeskTopIntPtr = GetDesktopWindow();
IntPtr _DC = GetWindowDC(_DeskTopIntPtr);

Graphics _Graphics = Graphics.FromHdc(_DC);
int _X =Screen.PrimaryScreen.Bounds.Width;
SizeF _Size = _Graphics.MeasureString(p_Text, p_Font);
_X -= (int)_Size.Width;

_Graphics.DrawString(p_Text, p_Font, p_Brushes, _X, 0);
Win32API.ReleaseDC(_DeskTopIntPtr, _DC);
}
}

取注册表`~~你找下把

111,130

社区成员

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

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

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