![]() |
batch unsichtbar starten
hay,
vielleicht kennt jemand von euch den ipod? und dann vielleicht auch die alternativen firmwares, die es für ihn gibt, z.B. Linux oder die Rockbox oder ein Mini-Wikipedia^^ für die rockbox hab ich einen installer gemacht, ist schon einige zeit her, aber jetzt, hab ich die anfrage bekommen, ne gui dazu zumachen. natürlich hab ich sofort ja gesagt, also ich hab geschrieben, dass ich es versuchen werde. aber das ganze in delphi umzuschreiben ist mir zu schwer und dauert wahrscheinlich auch lange, obwohl der installer-code ned so gross ist... darum hab ich mir dabei gedacht, dass ich einfach eine batch erstellen lasse mit dem die cmd-fenster einfach geöffnet werden... aber dann möchte ich machen, dass man die cmd-fenster einfach nicht sieht, das wär schon ok:) also zusammengefasst: ich möchte ein project ersrtellen, dass batch-dateien starten kann ohne dass sie sichtbar sind. mfG benj |
Re: batch>delphi
versuchs doch mal mit shellexecute indem du bei
Delphi-Quellcode:
den letzen parameter auf sw_hide stellst.
ShellExecute(Application.Handle,'open',dateiname,Nil, Nil, SW_NORMAL)
edit du musst natürlich shellapi einbinden und die parameter auf cmd umändern(steht hier irgendwo im forum wie man so consolenbatchprogramme ausführt). |
Re: batch unsichtbar starten
hay,
ich hab garde noch ne keline frage, der installer-code ist ja irgendwann zu ende, und kann ich da machen, dass ein parameter oder so zu der exe geschickt wird, damit beim installer auch kommt, dass die Installation beendet ist? mfG toredo |
Re: batch unsichtbar starten
das programm müsste eigenlich erst dann weiterlaufen wenn die batch datei abgearbeitet ist. und wenn nicht müsstest du mal im forum suchen. etwas ähnliches wurde grade erst gefragt. irgendwas mit createprocess. ich kenn mich da nicht sonderlich aus.
|
Re: batch unsichtbar starten
ok, werd gleich schauen ob das stimmt, dann ist mein prob nämlich gelöst.
mfG benj -edit- das delphi-prog läuft einfach weiter ohne auf die batch zu achten, ich werd jetzt mal createprocess im forum suchen. und ansonsten könnte man doch machen, dass die batch eine datei erstellt und delphi einfach nach dem batchstart in ne schleife gerät aus der es erst herauskommt wenn die datei der batch erstellt wurde. mfG toredo |
Re: batch unsichtbar starten
Nimm statt SchellExec. dieses
![]() bzw. hier mal schauen: ![]() |
Re: batch unsichtbar starten
Vielleicht hast Du danach gesucht?
Grüße Klaus
Delphi-Quellcode:
{ WindowState is one of the SW_xxx constants.
Look up ShowWindow in the API help for a list.} function ExecAndWait(const Filename, Params: string; WindowState: word): boolean; {$IFDEF WIN32} var SUInfo: TStartupInfo; ProcInfo: TProcessInformation; CmdLine: string; begin { Enclose filename in quotes to take care of long filenames with spaces. } CmdLine := '"' + Filename + '" ' + Params; FillChar(SUInfo, SizeOf(SUInfo), #0); with SUInfo do begin cb := SizeOf(SUInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := WindowState; end; try Result := CreateProcess(NIL, PChar(CmdLine), NIL, NIL, FALSE, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, NIL, PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo); except on E: Exception do begin Result:=false; end; end; { Wait for it to finish. } if Result then WaitForSingleObject(ProcInfo.hProcess, INFINITE); {$ELSE} var InstanceID : THandle; Buff: array[0..255] of char; begin StrPCopy(Buff, Filename + ' ' + Params); InstanceID := WinExec(Buff, WindowState); if InstanceID < 32 then { a value less than 32 indicates an Exec error } Result := FALSE else begin Result := TRUE; repeat Application.ProcessMessages; until Application.Terminated or (GetModuleUsage(InstanceID) = 0); end; {$ENDIF} end; |
Re: batch unsichtbar starten
hay,
ich hab grade selber einige codes gefunden und sie funzen auch:) thx für die hilfe:) mfG toredo |
Re: batch unsichtbar starten
es gibt auch noch ShellExecuteAndWait.
|
Re: batch unsichtbar starten
hay,
kann ich auch so ne fortschrittsanzeige hinzufügen? also dass immer ausgegeben wird wie weit die batch ist. mfG toredo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz