AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Aufruf Programme mit Firemonkey

Ein Thema von wilschu · begonnen am 22. Mär 2013 · letzter Beitrag vom 11. Aug 2017
Antwort Antwort
wilschu

Registriert seit: 24. Okt 2007
3 Beiträge
 
#1

Aufruf Programme mit Firemonkey

  Alt 22. Mär 2013, 17:00
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Aufruf Programme mit Firemonkey

  Alt 22. Mär 2013, 17:42
Soweit ich weiß gibt es da keine gemeinsame Funktion, da bleibt wohl nur eine Compilerdirektive und einmal ShellExecute/CreateProcess und einmal _system.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
wilschu

Registriert seit: 24. Okt 2007
3 Beiträge
 
#3

AW: Aufruf Programme mit Firemonkey

  Alt 22. Mär 2013, 22:40
Hast Du für den Aufruf unter Win und Mac auch Beispielcode?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

AW: Aufruf Programme mit Firemonkey

  Alt 23. Mär 2013, 08:45
Du weißt schon was eine Suche ist oder ?

Hier im Forum suchenShellExecute CreateProcess Hier im Forum suchen_system Hier im Forum suchenCompilerdirektive
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.477 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Aufruf Programme mit Firemonkey

  Alt 15. Apr 2013, 20:18
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;

Geändert von Harry Stahl (16. Apr 2013 um 00:08 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#6

AW: Aufruf Programme mit Firemonkey

  Alt 11. Aug 2017, 16:30
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?
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (11. Aug 2017 um 16:40 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#7

AW: Aufruf Programme mit Firemonkey

  Alt 11. Aug 2017, 17:20
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;
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
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 00:36 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