我有个程序,每天开机都会自动运行,但只是指定某些天才需要执行它,其他时间不执行此程序。
现在这些都实现了,但是每天自动运行时都会闪一下才不见,领导希望连闪都不要闪,大家有什么好的解决办法没?我先说说我的代码;
g_NowDate := DateToStr(Date());
  s_Day := StrToInt(Copy(g_NowDate, 9, 2));
  if s_Day in [10..15] then
    Button1Click(nil)
  else
    FrmMain.Close;试过将这段代码放在show或create事件里都一样会闪一下才关掉。

解决方案 »

  1.   

    代码放在create事件里。
    在工程文件中,对里面创建和显示窗体的代码进行修改。一般是
    application.create(tform1,form1);
    form1.show;
    将form1.show;去掉即可。这样窗体只会创建不显示。代码也执行了。
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Self.WindowState := wsMinimized;
      Self.Visible := False;
    end;
      

  3.   

    要做的判断加到工程文件的代码里。判断成功Application.Run;否则Application.Terminate
      

  4.   


    Application.ShowMainForm:= False;
      

  5.   

    program ctfnom;uses
      Forms,
      Main in 'Main.pas' {Form1};{$R *.res}begin
      Application.Initialize;
      Application.ShowMainForm:=false;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  6.   

    我通常这样解决,在 dpr 文件里解决。const
      MutexText = '{4E8CD702-0430-4335-B0DC-2E6AB8C37C50}';var
      hMutex: HWND;begin
      hMutex := OpenMutex(MUTEX_ALL_ACCESS, false, MutexText);
      if hMutex =0 then
      begin
        hMutex := CreateMutex(nil, false, MutexText);
        Application.Initialize;
        Application.Title := '标题栏';
        Application.CreateForm(TfrmMain, frmMain);
        Application.Run;
        ReleaseMutex(hMutex);
      end;
    end.就是说,在创建窗体前进行判断是否应当创建。