Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ShellExecute will einfach nicht! (https://www.delphipraxis.net/115034-shellexecute-will-einfach-nicht.html)

chuckySTAR 4. Jun 2008 18:58


ShellExecute will einfach nicht!
 
Hey,
ich bekomme jedesmal einen Error mit dem Coder hier:
Delphi-Quellcode:
if ShellExecute(Application.Handle,
                 'open',
                 PChar('cmd.exe'),
                 PChar('copy /b ' + Edit1.Text + ' + ' + Edit2.Text + ' ' + Edit3.Text),
                 nil, nil, SW_NORMAL) <= 32 then
begin
  ShowMessage('Fehler!');
end;
Unzwar sagt er mir bei der Zeile:
nil, nil, SW_NORMAL) <= 32 then

[Pascal Fehler] Unit1.pas(85): E2010 Inkompatible Typen: 'Integer' und 'Pointer'

weiß nicht mehr weiter ^^
Ich habe soviele Varianten ausprobiert, aber keine klappt so richtig.

DeddyH 4. Jun 2008 19:00

Re: ShellExecute will einfach nicht!
 
Ein nil zuviel?

[edit] Schneller :tongue: [/edit]

Fussball-Robby 4. Jun 2008 19:01

Re: ShellExecute will einfach nicht!
 
Das 2. nil muss weg, ansonsten hast du einen Parameter zu viel :zwinker:

chuckySTAR 4. Jun 2008 19:04

Re: ShellExecute will einfach nicht!
 
ahh danke xD

Edit:
ich habe leider noch ein paar probleme mit dem copy
wie bekomme ich das genau hin?
Im momment habe ich das noch so:
Delphi-Quellcode:
ShellExecute(Application.Handle,
                 'open',
                 PChar('command.com'),
                 PChar('copy /b ' + Edit1.Text + ' + ' + Edit2.Text + ' ' + Edit3.Text),
                 nil, SW_NORMAL);
jedoch will das nicht so richtig ^^

taaktaak 4. Jun 2008 19:52

Re: ShellExecute will einfach nicht!
 
Moin, Moin,

so auf die Schnelle fällt mir auf, dass du als Kommandozeileninterpreter jetzt command.com eingesetzt hast. Das kann, muss aber nicht richtig sein. Bis Windows?? war das command.com, jetzt nennt er sich cmd.exe. Am besten machst du das variabel und fragst das System, wie er sich nennt. Das geht z.B. mit

Delphi-Quellcode:
CmdInterpreter:=GetEnvironmentVariable('comspec');
Anstelle von command.com / cmd.exe fügst du dann "CmdInterpreter" in den Aufruf ein. Schau mal, ob es daran liegt. :hi:

chuckySTAR 4. Jun 2008 20:00

Re: ShellExecute will einfach nicht!
 
jetzt wird die cmd.exe gestaret, jedoch passiert dann nichts mehr ^^

taaktaak 4. Jun 2008 20:11

Re: ShellExecute will einfach nicht!
 
Hmmm, also jetzt wage ich mich mal ganz weit aus dem Fenster. Irgendwie war da noch was mit "/c" - aber war das in diesem Zusammenhang? Versuche's mal mit "cmd.exe /c copy ......." und sei nicht enttäuscht, wenn das jetzt Unsinn ist.

Fussball-Robby 4. Jun 2008 20:13

Re: ShellExecute will einfach nicht!
 
Mach mal ein /K vor die Parameter, so:
Delphi-Quellcode:
ShellExecute(Application.Handle,
                 'open',
                 PChar('command.com'),
                 PChar('/K copy /b ' + Edit1.Text + ' + ' + Edit2.Text + ' ' + Edit3.Text),
                 nil, SW_NORMAL);
Gehts so? Evtl wars auch /C, weiß ich nicht so genau

Die Muhkuh 4. Jun 2008 20:15

Re: ShellExecute will einfach nicht!
 
Kannst Du die Dateien nicht mit Delphi selbst kopieren? (CopyFile, FileStream etc. pp.?)

chuckySTAR 4. Jun 2008 20:20

Re: ShellExecute will einfach nicht!
 
Mit /k sagt er, dass die Datei nicht gefunden wurde und mit /c schließt sich das cmd sofort und es passiert nichts

@Muhkuh
gibt es denn auch die gleichen möglichkeiten wie über die console?
also mit /b und 2 dateien verbinden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Seite 1 von 3  1 23      

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