Autor |
Beitrag |
Nowo
      
Beiträge: 108
|
Verfasst: Di 10.06.08 01:06
Habe ein kleines Problem
Also ich habe eine kleine Batch geschrieben die mir im Hintergrund meine Dateien backuppt
und auch einen Logfile speichert.
Nur will ich keine Oberfläche haben.
Deswegen:
Ich Brauch eine Delphiapplikation die selbst keine Oberfläche hat (will nicht mit form.hide arbeiten)
und die diese backup.bat versteckt startet (also "hidden").
Wie kann ich das realisieren ?
Habe keinen blassen Schimmer von nicht Objekt orientierter programmierung.
mfG Nowo
//Edit: nicht wundern warum ich das mit batch mache... habe früher lange daran geschrieben und die Batch macht alles was ich brauche, inklusive uploaden des logfiles auf einen FTP server 
_________________ Grüße Nowo
Zuletzt bearbeitet von Nowo am Di 10.06.08 18:42, insgesamt 1-mal bearbeitet
|
|
uko
      
Beiträge: 220
Erhaltene Danke: 1
Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
|
Verfasst: Di 10.06.08 05:44
Du mußt eine Konsolenanwendung erstellen, Such doch hier mal nach dem Begriff, da wirst Du genügend Hilfe finden.
Und für das Starten: ShellExecute / CreateProcess
Grüße,
Uli
|
|
Nowo 
      
Beiträge: 108
|
Verfasst: Di 10.06.08 16:18
ja aber bei einer consolen anwendung erscheint immer ein fenster zu begin
//PS: bei einer consolen anwendung existiert bei mir der Befehl Shell execute garnicht o.O
(create process auch nicht)
_________________ Grüße Nowo
|
|
uko
      
Beiträge: 220
Erhaltene Danke: 1
Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
|
Verfasst: Di 10.06.08 16:36
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| program TestCon; uses Windows; begin WinExec('testAPp.exe', SW_NORMAL); end. |
zum Beispiel.
Grüße,
Uli
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Di 10.06.08 16:44
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Nowo 
      
Beiträge: 108
|
Verfasst: Di 10.06.08 18:37
ahh wunderbar, danke
So sieht das ganze fertig aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| program Project2; uses SysUtils,ShellAPI; begin shellexecute(0, 'open', pchar('backup.bat'), nil, nil, 0); end. |
die "0" am ende steht für den Startparameter
(in dem fall SW_HIDE)
Vielen Dank =)
_________________ Grüße Nowo
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 10.06.08 19:11
Moin!
Nowo hat folgendes geschrieben: | Ich Brauch eine Delphiapplikation die selbst keine Oberfläche hat (will nicht mit form.hide arbeiten) und die diese backup.bat versteckt startet (also "hidden"). |
Was ich mich schon die ganze Zeit frage...
Wenn du doch eh schon eine Batch-Datei hast, was soll denn dann noch die Delphi-Anwendung drum rum (die ja eigentlich nix tut, ausser den Batch zu starten)? Und warum machst du das nicht gleich auf Kommandozeilenebene ( start /b ...)?  Oder als Task?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nowo 
      
Beiträge: 108
|
Verfasst: Di 10.06.08 19:50
Ich verändere diese Batch so gerne und will die Funktionen ungern nach delphi umschreiben :- /
Mit dem Start parameter einer andere batch würde sich immer noch irgendein Fenster öffnen.
Und da ich die Datei in meinem Autostart Ordner habe, nerft mich immer das selbe aufpoppende CMD-Fenster =)
Habe den Thread als Gelöst makiert
Danke an Alle
_________________ Grüße Nowo
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 10.06.08 20:04
Moin!
Nowo hat folgendes geschrieben: | Ich verändere diese Batch so gerne und will die Funktionen ungern nach delphi umschreiben :- / |
Schon klar.
Nowo hat folgendes geschrieben: | Mit dem Start parameter einer andere batch würde sich immer noch irgendein Fenster öffnen. |
Hä?  Wenn du eine Verknüpfung zu deiner CMD in den Autostart-Ordner packst und die Start-Option "Minimiert" einstellst, geht da nirgendwo ein Fenster auf...  grade ausprobiert (siehe Anhang), geht
cu
Narses
Einloggen, um Attachments anzusehen!
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nowo 
      
Beiträge: 108
|
Verfasst: Mi 11.06.08 15:47
Aber ich will ja garkein Fenster
Hab das eben ausprobiert. Die Batch öffnet sich, aber bleibt in der Taskbar.
Ich möchte ja sozusagen einen Hintergrundprozess haben.
Also das fenster soll einfach nicht existieren.
Ich lasse den File nämlich den lieben langen Tag laufen,
und immer einen Button unten mehr zu haben ist lästig.
Nochmal vielen Dank für die vielen Hilfen !!!
Nowo
_________________ Grüße Nowo
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 11.06.08 18:40
Nowo hat folgendes geschrieben: |
die "0" am ende steht für den Startparameter
(in dem fall SW_HIDE) |
Und warum schreibst du es denn dann nicht hin?
|
|
Nowo 
      
Beiträge: 108
|
Verfasst: Do 12.06.08 23:57
"shellexecute(0, 'open', pchar('backup.bat'), nil, nil, 0);"
(oder meinst du warum ich SW_HIDE nicht ausschreibe ?
nun sobald ich es ausschreibe sagt er mir das es nicht genügend parameter wären  )
_________________ Grüße Nowo
|
|
Ebil
      
Beiträge: 131
|
Verfasst: Fr 13.06.08 00:09
möglicherweise SW_HIDE in [] setzen
"shellexecute(0, 'open', pchar('backup.bat'), nil, nil, [SW_HIDE]);"
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 13.06.08 01:16
Moin!
Nowo hat folgendes geschrieben: | (oder meinst du warum ich SW_HIDE nicht ausschreibe ?
nun sobald ich es ausschreibe sagt er mir das es nicht genügend parameter wären ) |
Ebil hat folgendes geschrieben: | möglicherweise SW_HIDE in [] setzen |
Nein, die Unit Windows in der uses-Klausel hinzufügen, dort ist die Konstante definiert.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Ebil
      
Beiträge: 131
|
Verfasst: Sa 14.06.08 12:33
Oh ja, die units vergess ich au imma :/ Muss RAD imma nen 2. ma starten und ne vcl anwedung machen um zu gucken in welcher unit die funktionen sind :/
|
|