需做一小程序:
功能1,运行后自动隐藏!!
功能2,可定时从一个目录拷贝指定文件到另一个目录。
我刚刚接触delphi,那位哥哥姐姐帮帮俺,问题解决直接给分。
一直在线!!!

解决方案 »

  1.   

    在DPR文件里面加上一行:
      Application.CreateForm(TForm1, Form1);
      Application.ShowMainForm := False;
      Application.Run;然后在主表单上放一个Timer。,OnTimer代码如下:
    Copy('c:\xx\xxx\xxx.xx','d:\xxx\xxx\',False);
    就可以了,运行时不界面,定时拷贝文件
    Timer.Interval 属性是时间间隔,单位豪秒
      

  2.   

    copy这个命令怎么用呀,要引用一个什么东西呀,我找帮助怎么没有呀??
      

  3.   

    CopyFile('c:\xx\xxx\xxx.xx','d:\xxx\xxx\',False);
    要不然就变成拷贝字串了。
      

  4.   

    找各系统托盘控件,在正常情况下隐藏form,,我可以发个例子给你
      

  5.   

    假如你不仅想让应用程序隐藏窗体,同时不想让应用程序在任务栏上显示,可以使用如下命令:     ShowWindow (Application.handle, SW_HIDE);如果要显示则ShowWindow( Application.Handle, SW_TRUE );
      

  6.   

    对TMainForm加右下角小图标,在工程的
      Application.CreateForm(TMainForm, MainForm);
    后调用。procedure TMainForm.AddIcon;
    begin
      with FIconData do
      begin
        cbSize := SizeOf(FIconData);
        Wnd := Self.Handle;
        uID := $8889;
        uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
        hIcon := Forms.Application.Icon.Handle;
        uCallbackMessage := WM_MIDASICON;
        StrCopy(szTip, PChar(Caption));
      end;
    end;
      

  7.   

    至于把图标加到系统托盘,有两种办法,1.用VCL控件,VCL如著名的RxLib 2.75就提供可视化的系统图盘图标控件2.用API编程// 需要增加使用单元
    uses
      Tlhelp32;// 自定义鼠标点击图标时系统发出的消息
    const
      WM_MIDASICON    = WM_USER + 1;// 在窗体类定义中增加消息处理及添加图标函数
    type  
      xxx = class(xxx)
        // 系统是否为 NT 3.51 的话不支持系统托盘,要NT 4以上
        NT351: Boolean;
        // 这是任务栏结束任务的消息,可以保证它意外关闭后发一个消息给程序知道
        FTaskMessage: DWord;
        // 如果没装IE 4以上版本,上面的特性不支持,只好靠定时器来检查它是否重启
        UpdateTimer: TTimer;
        // 保存当前任务栏句柄信息?
        FProgmanOpen: Boolean;
        // 系统托盘属性参数
        FIconData: TNotifyIconData; 
        // 添加图标
        procedure AddIcon;
        // 处理图标上的鼠标点击消息
        procedure WMMIDASIcon(var Message: TMessage); message WM_MIDASICON;
        // 要在程序默认消息处理中加入系统托盘的消息处理
        procedure WndProc(var Message: TMessage); override;
        // 定时器触发
        procedure UpdateTimerTimer(Sender: TObject);
      end;procedure TSocketForm.AddIcon;
    begin
      if not NT351 then
      begin
        with FIconData do
        begin
          cbSize := SizeOf(FIconData);
          Wnd := Self.Handle; // 程序句柄
          uID := $DEDB; // 标识符,不重复
          uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
          hIcon := Forms.Application.Icon.Handle; // 显示的图标句柄
          uCallbackMessage := WM_MIDASICON; // 点击时发出的消息
          StrCopy(szTip, PChar(Caption)); // 提示,鼠标移上去出现
        end;
        Shell_NotifyIcon(NIM_Add, @FIconData); // 添加图标
      end;
    end;procedure TSocketForm.WndProc(var Message: TMessage);
    begin
      // 如果是任务栏消失然后又出现了(出错了)
      if Message.Msg = FTaskMessage then
      begin
        // 重新添加图标
        AddIcon;
        Refresh;
      end;
      // 继承默认消息处理方法
      inherited WndProc(Message);
    end;procedure TSocketForm.WMMIDASIcon(var Message: TMessage);
    var
      pt: TPoint;
    begin
      case Message.LParam of
        WM_RBUTTONUP: // 鼠标右键
        begin
          if not Visible then
          begin
            SetForegroundWindow(Handle); // 把窗体提到前台
            GetCursorPos(pt); // 鼠标坐标
            PopupMenu.Popup(pt.x, pt.y); // 弹出菜单,自己加到窗体里
          end else
            SetForegroundWindow(Handle);
        end;
        WM_LBUTTONDBLCLK: // 鼠标左键
          if Visible then
            SetForegroundWindow(Handle) else
            miPropertiesClick(nil); // 直接出发某个事件,可以自己随便定义
      end;
    end;procedure TSocketForm.UpdateTimerTimer(Sender: TObject);
    var
      Found: Boolean;
    begin
      Found := FindWindow('Progman', nil) <> 0; // 获得任务栏句柄
      if Found <> FProgmanOpen then // 如果与原来的不相同,说明任务栏重启了
      begin
        FProgmanOpen := Found; // 刷新原有的
        if Found then AddIcon; // 并添加图标
        Refresh;
      end;
    end;// 程序初始化
    procedure TSocketForm.Create;  function IE4Installed: Boolean;
      var
        RegKey: HKEY;
      begin
        Result := False;
        if RegOpenKey(HKEY_LOCAL_MACHINE, KEY_IE, RegKey) = ERROR_SUCCESS then
        try
          Result := RegQueryValueEx(RegKey, 'Version', nil, nil, nil, nil) = ERROR_SUCCESS;
        finally
          RegCloseKey(RegKey);
        end;
      end;begin
      // 检测操作系统版本
      NT351 := (Win32MajorVersion <= 3) and (Win32Platform = VER_PLATFORM_WIN32_NT);
      // 添加托盘图标
      AddIcon;
      // 如果安装了IE 4,向任务栏挂号……这主要是为了任务栏关闭后,图标丢失的问题,免得程序无法再激活,死在内存中
      if IE4Installed then
        FTaskMessage := RegisterWindowMessage('TaskbarCreated') 
      else
        // 否则用定时器
        UpdateTimer.Enabled := True;
    end;写得好辛苦,自己看的都觉得混乱
      

  8.   

    附加,移除图标procedure RemoveIcon;
    Vvar
      IconData : TNotifyIconData;
    Bbegin
      with IconData do Begin
        cbSize := SizeOf(IconData);
        Wnd := Self.Handle; // 程序句柄
        uID := $DEDB; // 标识符,不重复
        uFlags := 0;
      end;
      Shell_NotifyIcon(nim_Delete,@IconData); // 移去图标
    end;个人意见,如果不是想为了学WinAPI的话,还是用VCL快,把控件往窗体上一拖,设定一下搞定。RxLib的控件叫RxTrayIcon,在RxTools中,至于RxLib,这么有名的东西就不用解释了吧
      

  9.   

    例子?Delphi不是自带了一个嘛?在\Delphi6\Source\VclScktSrvr.dpr