PHP kullanarak bir Windows App Çıktı'yı Başlarken

4 Cevap php

Patronum diye yazdı bir windows uygulaması vardır. Bu bir Windows konsol uygulaması değil, ancak bir Windows GUI uygulaması. Biz, tabii ki, kaynak kodu var, ama o bir konsol uygulaması olmak istemiyor. O düzenli bir GUI uygulaması kalmasını istiyor.

Şey, o parametreler geçen, PHP onu aramak ve uygulama çağıran PHP komut dosyası bilgilerini dönmek var edebilmek istiyor, olduğunu. Ben kolayca Windows konsol uygulamaları aramak ve çıkış okuyabilirsiniz. Hatta VBS komut aramak ve de onlardan çıktı alabilirsiniz.

Ama biz bir metin dosyasına çıktı yazma ve php içinde okuma başvurmadan bir arama php script çıkış verilerine normal bir Windows uygulaması almak için nasıl şaşkın.

Herkes bunu yapmak mümkün olmuştur? Eğer öyleyse, nasıl?

Şimdiden teşekkürler.

Amy


Eklemek Düzenleme: Anlaşılan, patron uygulamada bu kod koymak:

BOOL bConsole = AllocConsole();
 HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
 DWORD dwCharsWritten = 0;
 string sS3Path = sCommandLine.substr(sCommandLine.find("S3://") + 5);
 string sMessage = "S3 Path: " + sS3Path;

 BOOL bWritten = WriteConsole(hOutput, sMessage.c_str(), sMessage.size(), &dwCharsWritten, NULL);

Ama, php o bu konsola yazıyor bilgileri görmek değildir. Biz boşuna exec ve shell_exec denedim.

4 Cevap

Patronum yaptığı Windows uygulamayı değiştirmek için bizim nihai çözüm oldu. O app içinde konsola yazmak başardı, ve biz o konsola çıktı okuyabilir.

Amy

Burada iyi approch aksi, GUI zaman belirtilen uygulama bir konsol uygulaması gibi davranır yapacak bir komut satırı anahtarı eklemek olacaktır.

Bu Standart Çıkış ya da bir dosya üzerinden çıktı göndermeden sürece bir GUI uygulaması bilgi retriving imkansızdır.

Bir COM bileşeni olarak maruz böylece iyi yaklaşım, düzgün yeniden mimar Windows GUI uygulaması mantıktır. GUI uygulaması ve PHP komut dosyası COM bileşeni çağrısı ve aynı mantığı kullanabilir hem de.

Bu durumda, veri alışverişi gerek yoktur ve belki de metin ile olmamalıdır. Sen ayarı ve COM bileşeni yazdığınız özelliklerini okuyarak veri alışverişi yapabilirsiniz.

Bu COM / için amaçlanan budur. Ve tabii ki PHP Windows üzerinde COM bileşenleri çağırmak için olgun bir kütüphaneye sahiptir.

Bu bir web uygulaması bir GUI uygulaması çağırmak için gerçekten kötü bir fikir olduğunu. Bunu yaparken sorunlar için soruyorsunuz. COM yaklaşım çok tercih edilmektedir.

Güncelleme: PHP COM DOC

Sen uygulaması çok kazan form için bir komut satırı uygulaması çevrilevilebilecekleri olurdu yol parametreleri geçirebilirsiniz. Ana yöntemi argümanlar parametresini kullanma.

Bu Win uygulama bazı değişiklikler yapılmasını gerektirir, ancak bazı parametreleri geçirerek, php gelen exe aramak için izin verir.

Ben sizin iş gereksinimleri nelerdir emin değilim, ama büyük olasılıkla Win app her özelliği var bu cmd satırı işlemi gerekmez beri ideal, uygulama, iş alanı ve ayrı GUI ile yazılır, ama oldukça Bazı girişlerden doğru çıktı üretmek, bu iş mantığı herhangi bir yeniden olmadan uygulamanın bir cmd sürümü uygulamak için bir anlaşma çok büyük olmamalıdır.