![]() |
delphi / batch kombinieren
hay,
ist es möglich mti delphi auch eine cmd-anwendung zu schreiben, d.h. ein neuer befehl z.b. sowas: wenn man z.b. einen befehl random macht, bei dem man eine maximale zahl eingibt. der batchcode wäre dann etwa so:
Code:
jetzt müsste man aber noch diesen befehl random programmieren... aber geht das mit delphi überhaupt?
@echo off
set /p ans=bitte geben sie eine zahl ein random zahL=%ans% echo eine zufaellig generierte zahl zwischen 0 und %ans% ist %zahl% mfG toredo |
Re: delphi / batch kombinieren
das programm kannste doch komplett mit delphi schreiben
per writeln die ausgabe, mit readln die eingabe und die zufallszahl einfach mit radominze; und random(a); mehr ist das doch gar nicht, oder habe ich dich jetzt nicht richtig verstanden? |
Re: delphi / batch kombinieren
klar kann man das, aber ich möchte ja nicht unbedingt dieses prog haben sondern ich möchte wissen wie man so cmd-anwendungen machen kann.
mfG toredo |
Re: delphi / batch kombinieren
Hatte grad nix zu tun, deshalb hier ein komplettes Beispiel:
Delphi-Quellcode:
(Neue Konsolen-Anwendung erstellen und einfügen)
program ConsoleRandom;
{$APPTYPE CONSOLE} uses Math, SysUtils; var RangeMin, RangeMax: Integer; begin Randomize; try RangeMin := StrToInt(ParamStr(1)); RangeMax := StrToInt(ParamStr(2)); except WriteLn('Please pass two integer values separated by a space character as argument!'); exit; end; Write(RandomRange(RangeMin, RangeMax)); end. Aufruf z.B. mit MeinExeName 10 20 für eine Zufallszwahl zwischen 10 und 20. :cyclops: |
Re: delphi / batch kombinieren
:) danke, schon kann ich wieder etws neues:)
mfG toredo -edit- kann ich den ausgabewert auch in einer variable speichern, also in einer die ich in nem batch-script auch benutzen kann? mfG toredo |
Re: delphi / batch kombinieren
Nö. Die CMD und dein Project1.exe sind 2 komplett seperate Proggies. Du müsstest dich schon in die CMD einhacken und selbst den Speicher beschreiben ;)
aber du könntest mit deiner Anwendung ein BatchScript erstellen und dieses dann ausführen. Dann hast du das Problem mit den Variablen nicht ;) Die Parameter haben mit DOS Proggs auch nix zu tun. Die kannst du auch über Start->Ausführen oder Shellexecute machen. |
Re: delphi / batch kombinieren
im system32-ordner sind ja auch x-dateien die ne variable zurückgeben, das zeugs ist aber wahrscheinlich in irgendnem c geschrieben, aber das sollte ja keinen so unterschied machen...
mfG toredo |
Re: delphi / batch kombinieren
Hiermit kannst Du eine Variable erstellen und beschreiben.
Delphi-Quellcode:
Grüße
{*********************************************}
{ Set Global Environment Function } { Coder : Kingron,2002.8.6 } { Bug Report : [email]Kingron@163.net[/email] } { Test OK For Windows 2000 Advance Server } { Parameter: } { Name : environment variable name } { Value: environment variable Value } { Ex: SetGlobalEnvironment('MyVar','OK') } {*********************************************} function SetGlobalEnvironment(const Name, Value: string; const User: Boolean = True): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, True) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, True); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; { SetGlobalEnvironment } Klaus |
Re: delphi / batch kombinieren
Oder du schreibst einfach ein Batchfile dynamisch im Programm, welches die Variable mittels SET setzt, dieses Batchfile startest du aus dem Delphi-Programm und löscht das Batchfile nach einer gewissen Zeit wieder.
mfG Markus (Das ist Q&D) |
Re: delphi / batch kombinieren
@markusj: Das habe ich schon vorhin vorgeschlagen ;)
@Klaus01: Stehen die DOS-Konsolenvariablen etwa in der Registry? :shock: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 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