Mit PHP ein VB.Net Programm Starten

  • PHP

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von JackSA.

    Mit PHP ein VB.Net Programm Starten

    Hallo an alle,

    ich hab hier ein kleines Problem zu dem ich leider noch nichts wirklich helfendes gefunden habe.

    Ich habe im Intranet eine Webanwendung laufen aus dieser Anwendung soll an einer bestimmten stelle ein Etikett gedruckt werden.
    Das Problem ist das der Druck ohne weiteres Klicken stattfinden soll und dies geht mit PHP, Javascript usw.. natürlich nicht deshalb hab ich mir folgendes überlegt und wollte wissen ob das so gehen würde.
    • Webanwendung wird im Intranet gestartet.
    • Eine in PHP geschriebene Funktion startet ein Lokal installiertes VB.Net Programm und übergibt die zu Druckende Seite
    • Seite wird an einem definierten Drucker ausgegeben
    • VB.Net Programm schließt sich wieder
    • Alle sind glücklich :D
    Hallo JackSA

    Ich kenne mich jetzt mit PHP nicht aus. Aber(!) alles was im Browser läuft, läuft in einem "Sandbox"-Mode und kann somit keine EXE von deinem system ausführen.
    ginge dies, würde mir das echt Angst machen. Was würde dann eine Website davon abhalten die cmd.exe auszuführen?
    Also dürftest du an Punkt 2 schon mal hängen bleiben vermute ich.

    Grüße
    Sascha

    PS: Und wenn es Wege gäbe dürfte man dies hier nicht Posten!
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Du könntest in der Webanwendung eine PDF erzeugen, die auf dem Webserver in ein festgelegtes Druckverzeichnis gespeichert wird.
    Dann durch einen Watcher auf dem Server die Datei auf den entsprechenden Drucker schieben.

    Wie im Vorpost schon beschrieben hat der Client keinen Möglichkeit. (s.u.)
    Aber im Intranet ist das ja einigermaßen egal, wenn auch der Server Zugriff auf den Drucker hat.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Natürlich geht das:
    docs.microsoft.com/en-us/previ…orm-apis/aa767914(v=vs.85)

    http://kb.mozillazine.org/Register_protocol

    Ist auch nichts verwerfliches dran. Man muss das halt auf den Clients entsprechend erlauben
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Sorry hat bisschen länger gedauert musste noch anderes erledigen :)
    ich bin jetzt soweit das ich von der Webanwendung(Server) aus ein Programm starten kann das auf dem Client liegt.
    ist einfach, die IT musste die jeweiligen Berechtigungen setzen und dann konnte ich mit :
    system('"\\\Client123\\restlicher Pfad zur Anwendung\\PhpDruck.exe"');
    darauf zugreifen und das Programm starten, es war etwas Tricky den Pfad zu basteln.

    Aber es ergibt sich schon das nächste Problem.
    Der Drucker auf dem das Etikett gedruckt werden soll ist per USB am Client angeschlossen,
    deshalb soll das Programm auf dem Client laufen und den Ausdruck machen.
    Wenn ich das Programm vom Server aus starte wird zwar das Client Programm gestartet aber es wird nicht auf dem Client sondern auf dem Server ausgeführt.

    Was ich noch versucht habe ist auf dem Server eine Verknüpfung zum Programm auf dem Client zu setzen mit dem Client Pfad im "Ausfüren in" Feld aber wenn ich die Verknüpfung nutze wird das Programm wieder auf dem Server ausgeführt.

    Hat jemand eine Idee wie ich das Programm dazu überreden kann auf dem Client zu laufen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JackSA“ ()

    Ja das geht, die Anwendung muss aber bereits suf dem System installiert sein und es muss das URI Schema in der Registry eingetragen sein.

    docs.microsoft.com/en-us/previ…rm-apis/aa767914(v=vs.85)

    Eine exe ausführen die erst per Webseite übertragen wird wäre eine riesige Sicherheitslücke. Dann könnte ja jeder einfach einen Virus einflößen.

    Und das wollen wir ja alle nicht.
    Ich hab zwar auf beiden Rechnern Admin Rechte dennoch möchte ich nicht oder nur sehr ungern in der Registry rumspielen zumal ich mich damit nicht auskenne.
    Ich hab möglicherweise eine andere Möglichkeit in Form von "PSTools" und da im Speziellen die "PsExec.exe" aber da muss ich mich noch bisschen einlesen und testen, ich geb dann beschied ob es die Lösung war. :)