Announcement

Collapse
No announcement yet.

Fenster verstecken!!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fenster verstecken!!

    Sladjana Topalovic - 02:38pm Mar 31, 2003 MEZ (# 1 von 1)

    Hallo,

    ich habe ein Problem. Ich möchte, wenn das Programm "B" ausgeführt werden soll, darf man es nicht sehen können (in der Leiste oder TaskManager stört es nicht). Aber sonst darf es nicht angezeigt werden. Mit minimize habe ich es auch versucht, das Fenster sieht mann immer ganz kurz.......... vielleicht kann mir jemand helfen

    ich habe ein "Hauptprogramm" - "A". Mit einem Click soll anderes Programm (das z.B. Daten aus einer Tabelle in die andere verschiebt) - "B".

    DAS STEHT IM PROGRAMM "A".

    pgm := 'c:\.....\B.exe '; pgm := pgm + 'noch 2 Parameter';

    StrPCopy(pCommandLine,pgm);

    Result := false; FillChar(StartupInfo,SizeOf(StartupInfo),#0); StartupInfo.cb := sizeof(StartupInfo); StartupInfo.dwflags := STARTF_USESHOWWINDOW or STARTF__USESTDHANDLES; showWindow(owner, SW_HIDE);

    result := createProcess(nil,pcommandLine,nil,nil,true,high_p riority_class,nil,nil,Startupinfo,ProcessInfo);

    if Result then begin WaitForSingleObject(ProcessInfo.hProcess, INFINITE); hAppProcess := ProcessInfo.hProcess; hAppThread := ProcessInfo.hThread;

    end else begin raise Exception.Create('FEHLER !!!!!!!!!!!!'); end;

    if hAppThread <> 0 then CloseHandle(happthread); if hAppProcess <> 0 then CloseHandle(hAppProcess);

    application.ProcessMessages;

    DAS STEHT IM PROGRAMM "B":

    procedure TForm1.FormActivate(Sender: TObject); begin ShowWindow(Form1.Handle,SW_HIDE); button1.Click; end;

    und unter BUTTON1.click steht folgendes: statusbar1.Panels.Items[0].Text := 'CRM - Utility'; if paramcount <> 2 then showmessage('Ungültige Anzahl Parameter') else begin // Prüfen ob Dateien frei sind repeat bereit_zum_verarbeiten := true; if IsFileInUse(_xml.Text) then bereit_zum_verarbeiten := false; IF not bereit_zum_verarbeiten then begin statusbar1.Panels.Items[0].Text := 'Locked ..'; application.ProcessMessages; form1.Show; sleep(100); end; until bereit_zum_verarbeiten;

    statusbar1.Panels.Items[1].Text := 'Lade Definitionsdatei ...'; application.ProcessMessages; _defn.Text := paramstr(1); _xml.Text := paramstr(2); if not fileexists(_defn.text) then showmessage('Definitionsdatei nicht gefunden') else begin statusbar1.Panels.Items[1].Text := 'Schreibe XML-Datei ...'; application.ProcessMessages; assignfile(XMLFile,_xml.Text); rewrite(XMLFile); XMLString := '<?xml version="1.0" standalone="yes"?> <DATAPACKET Version="2.0">'; Writeln(XmlFile,XmlString); memo1.Lines.LoadFromFile(_defn.Text); for ii := 0 to memo1.Lines.Count-1 do begin Writeln(XmlFile,memo1.lines.strings[ii]); end; XMLString := '<ROWDATA />'; Writeln(XmlFile,XmlString); XMLString := '</DATAPACKET>'; Writeln(XmlFile,XmlString); closefile(XMLFile); statusbar1.Panels.Items[1].Text := 'Datei erfolgreich erstellt ...'; application.ProcessMessages;

    end; end;

    close;

    Vielen Dank.

  • #2
    Hallo,<p>
    ich habe mir den Source jetzt nicht angeschaut (Übersicht?). Schaue Dir doch bitte mal die PRE-Tags an.<p>
    Zu Deinem Problem: Wenn Du nicht willst, dass Deine Fenster angezeigt werden, kannst Du in der dpr-Datei <b>Application.ShowMainForm := False;</b> einbauen.<p>
    Schöne Grüße,<br>
    Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Hat leider nichts gebracht. Das Fenster sieht mann immer noch ganz kurz.......

      Comment


      • #4
        Du musst das <b>vor</b> der Erzeugung der Fenster setzen. Dann sollte es gehen. Ansonsten poste bitte mal die Projekt-Datei.<p>Schöne Grüße, Mario Noac
        Schöne Grüße, Mario

        Comment

        Working...
        X