Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Aufruf Programme mit Firemonkey (https://www.delphipraxis.net/173891-aufruf-programme-mit-firemonkey.html)

wilschu 22. Mär 2013 16:00

Aufruf Programme mit Firemonkey
 
Hallo,

Ich möchte aus meiner Firemonkey-Anwendung andere Programme aufrufen können. Der Aufruf soll sowohl auf Windows als auch auf MacOSX funktionieren

Kann mir jemand da weiterhelfen?

Vielen Dank im voraus

jaenicke 22. Mär 2013 16:42

AW: Aufruf Programme mit Firemonkey
 
Soweit ich weiß gibt es da keine gemeinsame Funktion, da bleibt wohl nur eine Compilerdirektive und einmal ShellExecute/CreateProcess und einmal _system.

wilschu 22. Mär 2013 21:40

AW: Aufruf Programme mit Firemonkey
 
Hast Du für den Aufruf unter Win und Mac auch Beispielcode?

RWarnecke 23. Mär 2013 07:45

AW: Aufruf Programme mit Firemonkey
 
Du weißt schon was eine Suche ist oder ?

Hier im Forum suchenShellExecute CreateProcess Hier im Forum suchen_system Hier im Forum suchenCompilerdirektive

Harry Stahl 15. Apr 2013 19:18

AW: Aufruf Programme mit Firemonkey
 
Damit man sich hier an dieser Stelle nicht alles zusammensuchen muss, mal ein Beispiel im ganzen Stück:

uses
{$IFDEF MACOS}
POSIX.Stdlib
{$ENDIF}

{$IFDEF MSWINDOWS}
ShellApi
{$ENDIF}

Implementation

procedure RunProg (prog: string);
begin
{$IFDEF MSWINDOWS}
ShellExecute(0,'open',Pchar (prog),nil,nil,0);
{$ELSE}
_system(PAnsiChar ('open ' + AnsiString (prog)));
{$ENDIF}
end;

QuickAndDirty 11. Aug 2017 15:30

AW: Aufruf Programme mit Firemonkey
 
Hallo
Ich habe mir diese Funktion abgeschaut um eine Website im Browser zu öffnen.
Delphi-Quellcode:
unit uCommonFunctions;

interface

uses
  {$IFDEF ANDROID}
  Androidapi.Helpers,
  Androidapi.JNI.App,
  Androidapi.JNI.GraphicsContentViewText,
  {$ENDIF ANDROID}
  {$IFDEF MSWINDOWS}//WIN32
   WINAPI.WINDOWS,
   Winapi.ShellAPI,
  {$ENDIF MSWINDOWS}
  {$IFDEF IOS}
  Macapi.ObjCRuntime,
  Macapi.ObjectiveC,
  IOSApi.Foundation,
  IOSApi.UIKit,
  IOSApi.QuartzCore,
  IOSApi.CocoaTypes,
  {$ENDIF IOS}
  {$IFDEF POSIX}
  Posix.Stdlib,
  {$ENDIF POSIX}
  System.UIConsts,
  System.UITypes,
  System.SysUtils,
  System.Classes,
  uCommontypes,
  system.Types,
  FMX.Dialogservice,
  ioutils;


Procedure OpenDocument(sCommand:String);

implementation

Procedure OpenDocument(sCommand:String);
Begin
{$IFDEF MSWINDOWS}
  ShellExecute(0, 'OPEN', PChar(sCommand), '', '', SW_SHOWNORMAL);
{$ENDIF MSWINDOWS}
{$IFDEF POSIX}
  _system(PAnsiChar('open ' + AnsiString(sCommand)));
{$ENDIF POSIX}
End;
Der Compiler meint für Android PANSICHAR und ANSIString nicht zu kennen.
:(
_PANSICHAR und _ANSISTRING machens auch nicht.
muss ich wieder ein Bytearray von Tencoding übergeben?

QuickAndDirty 11. Aug 2017 16:20

AW: Aufruf Programme mit Firemonkey
 
ok es sieht jetzt so aus.
Delphi-Quellcode:
Procedure OpenDocument(sCommand:String);
{$IFDEF IOS}
var
  NSU: NSUrl;
{$ENDIF IOS}
{$IFDEF ANDROID}
var
  Intent: JIntent;
{$ENDIF ANDROID}
Begin
{$IFDEF WIN32}
  ShellExecute(0, 'OPEN', PChar(sCommand), '', '', SW_SHOWNORMAL);
{$ENDIF WIN32}
{$IFDEF IOS}
  // iOS doesn't like spaces, so URL encode is important.
  NSU := StrToNSUrl(TIdURI.URLEncode(URL));
  if SharedApplication.canOpenURL(NSU) then
    SharedApplication.openUrl(NSU);
{$ENDIF IOS}
{$IFDEF ANDROID}
      Intent := TJIntent.Javaclass.init(TJIntent.JavaClass.ACTION_VIEW,
                 StrToJURI(sCommand));
      Intent.setFlags(TjIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
      TAndroidhelper.Activity.startActivity(Intent);
{$ENDIF ANDROID}
End;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.

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