Autor Beitrag
Anfänger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Sa 31.01.04 15:14 
Ich möchte mit meinem Programm ein weiteres Delphie-programmiertes Programm starten.

Ich habe gesucht und habe ShellExecute und ExecuteFile gefunden.

Irgendwie scheint mein Computer diese Begriffe nicht anzunehmen.
Habe überlegt, ob es vieleicht an der alten Delphi-Version liegt, aber das Hilfeprogramm kennt die Begriffe (sind alerdings keine Angaben, wie es funktioniert)

probiert hatte ich z.B.
ausblenden Delphi-Quelltext
1:
If opendialog1.execute then ShellExecute (opendialog1.Filename);					


(kennt aber wie oben schon genannt ShellExecute nicht;

Moderiert von user profile iconDeCodeGuru: Topic verschoben
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 31.01.04 15:35 
In den meisten Beiträgen, in denen es um ShellExecute geht, wird das Geheimnis verraten. Du musst die Unit "ShellAPI" in deine Uses-Liste aufnehmen, dann klappt´s auch.
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 31.01.04 15:35 
Wenn du mal nach Suche in: Delphi-Forum, Delphi-Library SHELLEXECUTE gesucht hättest, hättest du auch die Lösung gefunden:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
uses
..., ShellApi;

....


ShellExecute(0'open', pchar(OpenDialog1.Filename), nilnil,  SW_SHOW{NORMAL});
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4

Win XP, gentoox
D8 Arch.
BeitragVerfasst: Mo 02.02.04 15:08 
Wenn ich versuche (mit eingebundener ShellAPI) so shellexecute aufzurufen, bekomme ich diese fehlermeldung:

[Error] Hauptfenster.pas(245): There is no overloaded version of 'ShellExecute' that can be called with these arguments

die prozedur lautet:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Compilelink1Click(Sender: TObject);
begin
   ShellExecute(0,'open','d:\test.txt',nil,nil,SW_Show);
end;


Woran liegt das und wie kann ich es beheben?
Ich hoffe mal, ihr könnt mir helfen.

Moderiert von user profile iconDeCodeGuru: Delphi-Tags hinzugefügt
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 17:10 
In deinem Profil steht Delphi 8 Ar(s)chitekt ... ;) ... es wird vermutlich nicht funktionieren, ein VCL-Programm mit .NET schreiben zu wollen.
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4

Win XP, gentoox
D8 Arch.
BeitragVerfasst: Mo 02.02.04 18:06 
Ich habe am Anfang schon eine "VCL Forms Application" ausgewählt, das müsste eingentlich das richtige sein, denke ich.
MaxiTB
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 679

Win2000, WinXp, Workbench ;-)
D7 Ent, VS2003 Arch.
BeitragVerfasst: Mo 02.02.04 18:15 
Nop - Irrglaube.

ShellExecute ist eine Win32 API Funktion und keine VCL Funktion.
Deshalb kannst du im .NET diese Funktion auch nicht verwenden, aber da gibts eh bessere Lösungen.
Ähm - frag mich jetzt nicht welche, ich hab mein C# Büchlein zu Hause liegen und schon wieder über ein halbes Jahr nix .NETiges mehr gemacht :wink:

_________________
Euer Mäxchen
Wer früher stirbt, ist länger tot.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 18:16 
Kann ich nicht beurteilen, da ich noch mit D5 arbeite. Aber Delphi 8 hat sicher eine Hilfsfunktion. Und die Fehlermeldung würde ich so deuten, dass es u.U. eine ShellExecute-Funktion gibt, nur dass die Parameter nicht stimmen.

Ich bin sicher, Delphi 8 wird mit einer Hilfe ausgeliefert ... Schau doch mal, was die zum Thema ShellExecute ausspuckt. Das dürfte am schnellsten gehen, und damit könntest du der Erste werden, der das Thema "ShellExecute und .NET" hier beantwortet.
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4

Win XP, gentoox
D8 Arch.
BeitragVerfasst: Di 03.02.04 14:45 
Ich hab schon gesucht - er findet shellexecute auch nur als Methode (heisst doch in delphi auch so?) von TCustomFileRun bzw. TFileRun.
"Add TFileRun to an action list to let your application launch an external application or dll in response to user actions."- hört sich zwar gut und genau richtig an, aber ich komm damit auch nicht zurecht.


Vielleicht könnt ihr mir ja mit der TfileRun-hilfe weiterhelfen:


Zitat:
TFileRun Class

TFileRun is the standard action for performing a specified operation on a file.
Namespace
Borland.Vcl.ExtActns
Syntax

type TFileRun = class;


Description
Add TFileRun to an action list to let your application launch an external application or dll in response to user actions. Controls linked to this action cause your application to perform the operation specified by the Operation property on the file specified by the FileName property.
Before this action fires, configure its properties to indicate what application to launch and how to launch it:

To indicate the target file to run, set the FileName property to the name of a file on which the external application operates or to the name of the application’s executable file. If you want to let the user select the file name instead when the action fires, set the Browse property to true, and an open dialog appears when the action fires.

To indicate what action to perform on the specified file, set the Operation property.

To supply parameters to the external application when it is launched, use the Parameters property.

To specify a default directory for the external application, use the Directory property.

To control how the external application’s window appears (minimized, maximized, hidden, and so on), use the ShowCmd property.

If the external application needs a parent window (to parent a dialog such as a properties dialog), or if you want to allow TFileRun to display error messages, use the ParentControl property.

Hierarchy
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
Borland.Vcl.Classes.TBasicAction
Borland.Vcl.ActnList.TContainedAction
Borland.Vcl.ActnList.TCustomAction
Borland.Vcl.ExtActns.TCustomFileRun
Properties
HInst
Methods
SetupBrowseDialog
[/quote]
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Di 03.02.04 15:03 
In VB.NET kann man das So tun:
ausblenden Quelltext
1:
Diagnostics.Process.Start(FileName)					


Ich weiss aber nicht wie dasin D8 aussieht...
Aber auch im .NET kann man Funktionen aus der API kapseln

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Di 03.02.04 15:46 
Beim mir funktionierts dank Wurstwasserschluerfer.
Habe ja auch nicht delphi 8 :mrgreen:

kleine Frage:
gibts das Problem nur bei Delphi 8

habe zwar keine Lösung, interessiert mich einfach.
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4

Win XP, gentoox
D8 Arch.
BeitragVerfasst: Di 03.02.04 15:49 
Anfänger hat folgendes geschrieben:
Beim mir funktionierts dank Wurstwasserschluerfer.

Dank mir? Hab ich denn nicht nur Fragen gestellt?

EDIT:warum werden die BBcode-tags mit den eckigen klammern dargestellt und nicht richtig?
EDIT EDIT: korrigiert


Zuletzt bearbeitet von Wurstwasserschluerfer am Di 03.02.04 17:34, insgesamt 1-mal bearbeitet
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Di 03.02.04 17:23 
weil beim zweiten tag das "/" fehlt es müsste lauten
ausblenden Quelltext
1:
[quote="xyz"].....[/quote]					

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 03.02.04 18:40 
Chatfix hat folgendes geschrieben:
In VB.NET kann man das So tun:
ausblenden Quelltext
1:
Diagnostics.Process.Start(FileName)					


Ich weiss aber nicht wie dasin D8 aussieht...

Ich denke mal: genau so, oder war das nicht der große Vorteil von .NET? Ich meine, dass es auf die Sprache nicht ankommt ...
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Di 03.02.04 18:48 
Wurstwasserschluerfer hat folgendes geschrieben:
Dank mir? Hab ich denn nicht nur Fragen gestellt?


sorry meinte Mathias Simmack