如何编一个程序常驻内存,不可有任何窗体,用热键调出程序使时钟后退两分钟。(200分)

  • 主题发起人 主题发起人 caesar
  • 开始时间 开始时间
C

caesar

Unregistered / Unconfirmed
GUEST, unregistred user!
我打方块老打不过女友,我想做出一个作敝程序,
(女友用任务栏时钟为我计时,看谁打的分多)
这样可以多打会时间。
 
简单呀,建立一个工程,打开PROJECT MANAGER 删除所有的窗体和模块。然后带开工程直接在工程中对WINDOW消息编制WM_HotKey ,然后用API调用改变系统消息就行了呀
 
哈哈! 这倒有趣!
其实你只要在运行时把主窗体隐藏就行了。
FormCreate时调用
RegisterHotKey(Handle, 100, MOD_CONTROL, VK_F11);注册系统热键Ctrl+F11
用 procedure Received(var Msg: TWMHOTKEY)
message WM_HOTKEY;

procedure THotKeyHost.Received(var Msg: TWMHOTKEY);
begin
if Msg.HotKey = 100 {假设你自定义了ID为100的热键Ctrl+F11}then
//在这里调慢你的系统时间
end;
end;
 
现在就开始骗了[:D]
 
简单呀,自己编吧[8D]
 
哈哈,有意思!
但小心你女友上网看到你这个问题哦!
 
在主form的oncreate事件中加入代码
application.showmain:=false
//隐藏主窗口
然后再用xianjun的方法(我没试过但应该没问题)
 
我的观点是用jasper朋友的无form方法,最好是控制台程序,
但我不会注册系统hotkey 修改时间向前调整我已从大富翁中
其他例子中学会了,有谁做个现成的东东,我把分全给他
 
这都懒得做? 也就十来分钟的问题!
下面就是了, ALT+F12退出程序, ALT+F11把系统时间调后一分钟。
program SetTime;

uses
Windows,
Messages,
SysUtils;

procedure TurnSysTime;
function SetLocalTime(Value: TDateTime): Boolean;
var
SysTimeVar: TSystemTime;
begin
DateTimeToSystemTime(Value, SysTimeVar);
Result := Windows.SetLocalTime(SysTimeVar);
end;
begin
SetLocalTime(Now - 1/(24 * 60));
end;

var
Msg: TMsg;
begin
if RegisterHotKey(0, 1, MOD_ALT, VK_F12) and RegisterHotKey(0, 11, MOD_ALT, VK_F11) then
while (GetMessage(Msg, 0, 0, 0)) do
begin
if (Msg.Message = WM_HOTKEY) then
begin
case Msg.WPARAM of
1:
Exit;
11:
TurnSysTime;
end;
end;
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.

 
接受答案了.
 
后退
顶部