Ben şaşırıp nerede zamanki MS Office uygulamaları ötesinde. Net meclisleri, windows sistem uygulamaları ve bileşenlerini yüklemek için PHP'nin com()
ve dotnet()
sınıfları kullanarak bir nesneyi başlatmak için doğru parametre sözdizimi. Başarıyla oluşturuldu ise, nesnelerle çalışma burada bir sorun değildir.
Herkes hem sınıflar için her bir parametrenin her bir parçası ne anlama geldiğini açıklayabilir misiniz ve nasıl bir uygulama, bileşen veya montaj için uygun arama sözdizimi öğrenebilirim? Nasıl, tam olarak ne veya yük PHP yapamaz, ve eğer? Nasıl sistem bileşenleri ve sınıfları görünür ve (com aracılığıyla yapılabilir hangi bulma konusunda gitmek) ve dotnet () mi? Derlemeleri çağırmak için, Im I / windows / montaj / gacxx klasörleri burada kullanılabilir listelenmiş bir şey varsayarak yanlıştır?
Ben bağlanma veya Windows sistem uygulamaları, bileşenleri ve derlemeler kullanarak içine derin kazmak çalışıyorum. Örneğin, 'system.windows.forms' düzeneğini kullanarak. PHP's manual on the topic kod örnekleri de dahil olmak üzere inceledikten sonra, benim için herhangi bir net elde değil. PHP'nin hataları, ben belirtilen dosyaları bulmak için başarısız, sözdizimi hakkı elde etmek için başarısız oluyorum, ya da aksi takdirde sadece açıklama olmadan tamamen başarısız. Hiçbir ilgili etkinlikler uygulama çökmesini veya erişim engellendi ima etmek Olay Görüntüleyicisi'nde gösteriyor.
Ben var. Net 4. framework yüklü. Bunlar benim şimdiki PHP ayarları ...
derlenmiş: - enable-com-dotnet
[Com_dotnet]
- COM support => enabled
- DCOM support => disabled
- .Net support => enabled
Direktif => Yerel Değeri => Usta Değer
- com.allow_dcom => 0 => 0
- com.autoregister_casesensitive => no value => no value
- com.autoregister_typelib => 1 => 1
- com.autoregister_verbose => 1 => 1
- com.code_page => no value => no value
- com.typelib_file => no value => no value
Ben şimdiye kadar çalışan sadece üç vaka başardı ettik. Diğer tüm durumlarda diğer mscorlib sınıfları kullanmaya çalışıyor dahil, başarısız ...
<?php $scripting = new COM("MSScriptControl.ScriptControl"); $scriping_host = new COM("WScript.Shell'); $stack = new DOTNET("mscorlib", "System.Collections.Stack"); ?>
Ben sadece bana alay / windows / montaj klasöründe orada oturuyor 'System.Windows.Forms' bkz. $forms = new DOTNET('System.Windows.Forms', 'Form');
Tam derleme dize kullanılsa bile, başarısız olur. Ben yanlış yerde arıyorum? Ben onun yerine. Net içinde bu yaklaşım ve bana dinamik PHP diğerlerini aramak için izin vermek benim kendi derleme oluşturmak gerekir?
Not: yerine WIN32API PHP uzantısı kullanmak, ölü bir proje olduğu gibi doğru çıktı ve ben uzakta başkalarının evcil hayvan projesi uzantıları bağımlı olmaktan adıma umuyorum.
Edit: COM sorun çoğunlukla çözüldü. Kayıt içinde ben com desteklenen yazılım ve sistem bileşenlerinin bir listesini bulmak ve onların Clsid bulunuyor kullanarak birkaç com nesneleri oluşturmak başardı. Olsa DOTNET nesneleri oluşturmak için tam olarak nasıl hala emin.