AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Shell execute

Ein Thema von DomPerle · begonnen am 14. Okt 2019 · letzter Beitrag vom 16. Okt 2019
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#1

AW: Shell execute

  Alt 15. Okt 2019, 14:22
Ups, ich hab wohl in letzter Zeit zuviel AutoIt geschrieben . Dort gibt's bei der Funktion Format (bzw. StringFormat) keine eckigen Klammern für die Parameter.

@DomPerle:
Wenn du ein älteres Delphi hast, kannst du auch Delphi-Referenz durchsuchenIncludeTrailingPathDelimiter durch Delphi-Referenz durchsuchenIncludeTrailingBackslash ersetzen. Oder du lässt den Aufruf dieser Funktion weg und setzt die Backslashes/Pfadtrenner direkt im String. Eigentlich macht man letzteres aber nicht, denn Code sollte plattformunabhängig sein - ja, ich weiß, in meinem Beispiel ist auch noch ein Backslash enthalten, und die CMD gibt's auch nur unter Windows ... Aber das ist noch ein Grund, sich gegen die Kopiererei mittels CMD zu entscheiden, weil man das direkt mit Delphi machen kann.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Shell execute

  Alt 15. Okt 2019, 15:05
Hier im Forum gefunden.
Falls es auch was anderes als kopieren per cmd.exe sein darf.
Delphi-Quellcode:
function TForm1.SHCopyFile(Handle: THandle; szSource, szDestination: TFileName): Boolean;
var
  ShellFileOperation: TSHFileOpStruct;
begin
  Result := True;
  try
    with ShellFileOperation do
    begin
      Wnd := Handle;
      wFunc := FO_COPY;
      pFrom := PChar(szSource);
      pTo := PChar(szDestination);
      // fFlags := FOF_FILESONLY OR FOF_NOCONFIRMMKDIR FOF_SIMPLEPROGRESS;
      fFlags := FOF_NOCONFIRMMKDIR;
      lpszProgressTitle := 'Dateien kopieren ...';
    end;
    SHFileOperation(ShellFileOperation);
  except
    Result := False;
  end;
end;

procedure TForm1.StartBitBtnClick(Sender: TObject);
begin
  if SHCopyFile(Handle, 'C:\Windows\*.*', 'D:\Windows.Copy\') then
  begin
    ShowMessage('Bingo ... und was funktioniert nicht?');
  end;
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
DomPerle

Registriert seit: 26. Apr 2017
20 Beiträge
 
#3

AW: Shell execute

  Alt 16. Okt 2019, 10:36
Ich habe Delphi 5, das mir bisher für die kleinen Entwicklungen die ich mache vollkommen ausreicht. Ich benutze Delhi nur für Präsentationszwecke, also ListBox StringGrid Image etc.
Das eigentliche Programm, das die enzsprechenden Daten bereistellt, die in Delphi zur Anzeige kommen sollen schreibe ich in REXX.
Dadurch umgehe ich den nervigen Formalismus von Pascal.
Zunächst möchte ich mich bei allen bedanken, die mir Tips gegeben haben. Ich werde wohl doch den Vorschlag mit CopyFile versuchen, allerdings erhielt bei der Ausführung des Befehl die Meldung 'Zugriff verweigert' was daruaf hindeuten könnte, daß irgendeine der beiden Dateien nicht geclosed wurde.Nun suche ich erst einmal.
Vielen Dank Domperle
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:37 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