![]() |
mit Webservice Programme starten ?
Hallo ..
folgendes Problem ich hab mir ein Webservice geschrieben .. mit so einigen Functionen die ich auch schon nutze und auch vom Client aus funktionieren .. Nun war meine Überlegung .. ob ich nicht für bestimmte Dinge auch mein Webservice benuzen kann.. und wollte wenn ich über eine Bestimmte Function mit übergebenen Passwort und Programm dieses Starten lassen könnte .. .. habs schon mit Shellexecute ( also executefile und Fmxutils )
Code:
calc ist natürlich nur als Beispiel :)
Executefile('calc.exe', '', '\', SW_NORMAL);
probiert. aber es macht einfach nix ?.. debuggen ist ja etwas schwierig ^^ oder geht das evtl gar nicht ? und man kann keine programme ausführen lassen .. jemand eine Idee ? |
AW: Webservis Programme starten ?
Benötigt ein Webservice nicht einen Webserver, in dessen Kontext auf Clientanfragen reagiert wird?
|
AW: Webservis Programme starten ?
ja der läuft ja auch .. sonst geht ja alles nicht
wie gesagt die anderen Fuktionen die ich in den Service drinnen hab (verändern einiger Dateien auf den Rechner oder löschen geht ja auch) nur eben das Programm aufrufen nicht .. er startet es eben nicht .. ? ..? also drinnen ist Function die 2 Strings übergeben bekommt.. ein String mit Programm und 2. String für Passwort wenn Passwort das richtige ist startet er das Programm so der Gedanke .. Fuktion kommt auch bei Webserver an denn als result bekomm ich das ok (was ich in der Funktion übergebe) .. aber er macht eben den Shellexecute nicht |
AW: Webservis Programme starten ?
achso als Hinweis ... es handelt sich um ein Cgi-bin webservice .. fals es unterschiede gibt
|
AW: Webservis Programme starten ?
Theoretisch müsstest Du an das CGI den Parameterstring senden, wie es auch der Server tut, z.b. MeinService.exe &Service=WitzDesTages&Type=LongString.
Das CGI schreibt es dann in stdout. |
AW: Webservis Programme starten ?
ja ..
also mal hier mein webservice mit nur der einen Function
Code:
und der Teil beim Client
{ Invokable-Implementierungsdatei für TRico_PC_service das IRico_PC_service implementiert }
unit Rico_PC_serviceImpl; interface uses FmxUtils, Windows, Classes, Consts, InvokeRegistry, Types, XSBuiltIns, Rico_PC_ServiceIntf; type { TRico_PC_service } TRico_PC_service = class(TInvokableClass, IRico_PC_service) public function Startwenn_ok(const WAS, PW : String): String; stdcall; end; implementation uses Forms, RtlConsts; function TRico_PC_service.Startwenn_ok(const WAS, PW : String): String; stdcall; begin if (PW='ganzgeheim') then Begin Executefile(WAS, '', '\', SW_NORMAL); result := 'OK :) '+WAS+ 'wurde gestartet !' ; end; end;
Code:
als Antwort bei Client kommt an : "OK :) calc.exe wurde gestartet !"
procedure TForm1.Button1Click(Sender: TObject);
var ws: IRico_PC_Service1; begin WS:=GetIRico_PC_Service1(true); Label1.Caption:=ws.Startwenn_ok('calc.exe','ganzgeheim'); end; aber es wurde dort nichts gestartet .. und calc.exe ist vorhanden und von überall aus aufrufbar.. |
AW: Webservis Programme starten ?
Bitte korrigiere mal den Rechtsschreibfehler im Beitragstitel.
|
AW: Webservis Programme starten ?
Mit ein bisschen Fehlerbehandlung, Auswertung der Rückgabewerte etc. solltest Du doch ausreichend Informationen bekommen, um dem Problem auf den Grund zu gehen :)
|
AW: Webservis Programme starten ?
Zitat:
aber wie ändere ich das ?? finde nirgens die Möglichkeit ?? (habs gefunden erledigt ..) @CCRDude ich bekomm ja das Result aber dort passiert eben nichts .. und wie soll ich das denn anders testen ? habe ja keine Fehlermeldung ?! Hatte gedacht es weiß jemand das es so nicht funktionieren kann oder eben anders und es mir vill verrät wie :wink: |
AW: mit Webservice Programme starten ?
@CCRDude
hab mir mal den Rückgabewert direkt rüber geben lassen .. es kommt Rückgabewert 42 an ? .. Normal ist das ja kein Fehler .. ?? jemand noch eine Idee oder Erfahrungen ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz