Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi delphi / batch kombinieren (https://www.delphipraxis.net/68230-delphi-batch-kombinieren.html)

toredo 26. Apr 2006 18:36


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:
@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%
jetzt müsste man aber noch diesen befehl random programmieren... aber geht das mit delphi überhaupt?




mfG toredo

easteregg 26. Apr 2006 18:43

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?

toredo 26. Apr 2006 18:45

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

KingIR 26. Apr 2006 18:46

Re: delphi / batch kombinieren
 
Hatte grad nix zu tun, deshalb hier ein komplettes Beispiel:

Delphi-Quellcode:
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.
(Neue Konsolen-Anwendung erstellen und einfügen)

Aufruf z.B. mit
MeinExeName 10 20
für eine Zufallszwahl zwischen 10 und 20.

:cyclops:

toredo 26. Apr 2006 18:56

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

ichbins 26. Apr 2006 19:22

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.

toredo 26. Apr 2006 19:31

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

Klaus01 26. Apr 2006 20:32

Re: delphi / batch kombinieren
 
Hiermit kannst Du eine Variable erstellen und beschreiben.

Delphi-Quellcode:
{*********************************************}
{ 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 }
Grüße
Klaus

markusj 26. Apr 2006 20:42

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)

ichbins 26. Apr 2006 20:59

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 05:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz