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 |
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.
|
AW: Aufruf Programme mit Firemonkey
Hast Du für den Aufruf unter Win und Mac auch Beispielcode?
|
AW: Aufruf Programme mit Firemonkey
|
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; |
AW: Aufruf Programme mit Firemonkey
Hallo
Ich habe mir diese Funktion abgeschaut um eine Website im Browser zu öffnen.
Delphi-Quellcode:
Der Compiler meint für Android PANSICHAR und ANSIString nicht zu kennen.
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; :( _PANSICHAR und _ANSISTRING machens auch nicht. muss ich wieder ein Bytearray von Tencoding übergeben? |
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