bymak

Yeni üye
28 Ara 2015
15
0
0
(34) İstanbul Anadolu
Merhabalar arkadaşlar. C++ bilgim Sıfır derecede. sizden ricam Unreal de yaptığımız butonun dışardaki bir exe dosyasını çalıştırmasını istiyorum. (mesela notepad.exe) adım adım yazarsanız çok sevinirim... şimdiden çok teşekkürler..!
 
Bir kod projesi için File->Add New C++ Class menüsüne girip "Parent Class" olarak "BlueprintFunctionLibrary" seçin. Kod oluştuğunda, sınıfa, aşağıdaki fonksiyonu ekleyin.

MyBlueprintFunctionLibrary.h
Kod:
UCLASS()
class MYPROJECT_API UMyBlueprintFunctionLibrary: public UBlueprintFunctionLibrary
{
public:
    UFUNCTION(BlueprintPure, Category = MyBPFunctions) static void RunExecutable(const FString& InPath);
}
MyBlueprintFunctionLibrary.cpp
Kod:
void UMyBlueprintFunctionLibrary::RunExecutable(const FString& InPath)
{
    FPlatformProcess::CreateProc(*InPath, nullptr, true, false, false, nullptr, 0, nullptr, nullptr);
}

Bu fonksiyon her blueprint ile "MyBPFunctions" kategorisi altından çağırabilir. Bu örnekte, butonun "OnClick" "event"inde çağırın.

Not: Örnekte eklenen "Blueprint Function Library", "MyBlueprintFunctionLibrary" olarak isimlendirilmiştir.
 
çooook teşekkür ediyorum. hemen deniyorum...!


1.si çağırırken open level nodu ile mi çağırıcaz? 2.si mesela notepad.exe dosyasını çalıştırmak istiyorsam exe nin yolunu nereye yazmalıyım?

tekrar çok teşekkürler...
 
bymak' Alıntı:
çooook teşekkür ediyorum. hemen deniyorum...!


1.si çağırırken open level nodu ile mi çağırıcaz? 2.si mesela notepad.exe dosyasını çalıştırmak istiyorsam exe nin yolunu nereye yazmalıyım?

tekrar çok teşekkürler...



1. Nerede kullanman gerekiyorsa orada çağırmalısın. "Button Click", aynı zamanda "Level" açıyorsa bu node'u da yanında çağırabilirsin.
2. Yolu, "InPath" parametresine vermelisin. "C:\\Users\\User\\Desktop\\Test.exe" gibi...
 
Sabrınıza sığınarak biraz detay vermenizi rica edeceğim...aslında çalışamda hiç bir şey yok. oluşturduğum bir tek widget var. widget de de bir buton var o kadar. örnek bir resim ekledim. ne yapmak istediğimi resimlere bakarak anlayabilirsiniz az çok.


yLPnYL.jpg
 
C++ kodu derlendi mi?
Derlendiyse herşey doğru gözüküyor. Derlenmediyse Visual Studio üzerinde "Build" edin ve projeyi VS üzerinden "Run" diyerek çalıştırın.
Daha sonra "Widget BP" üzerinde "RunExecutable" yazmaya başladığında oluşturduğun fonksiyon karşına çıkacaktır. O fonksiyonu 4. resimdeki gibi "OnClick" eventine bağlayın.
Yalnız burada bir terslik var. UE4 üzerinde yapmış olduğun bir uygulamayı yine UE4 üzerindeki başka bir uygulama ile mi başlatmaya çalışıyorsun. Olabilir ama bunu "Yeni Level Açmak İçin" yapmıyorsundur umarım, öyle bir yanlış anlaşılma yok değil mi? Tamamen ayrı bir uygulamayı başlatmaya çalışıyorsun?

Bu adımlarda nerede sorun yaşıyorsun? Oluşturduğun "RunExecutable" mı gözüknüyor? Gözüküyor, çağırıyorsun fakat uygulamayı mı başlatamıyorsun? Sorun nerede? Herşey doğru gözüküyor...

Ekleme:
Şimdi farkettim. InPath kısmında verdiğin yolu kaldırmalısın. Onu BP üzerinde çağırırken vereceksin, Fonksiyonu birebir yazdığım biçimi ile yazın.

Ekleme:
20 dk kadar daha buradayım, sorunla karşılaşırsan, sorabilirsin.
 
yok tamamen farklı bir uygulama açıyorum. hatta mümkünse exe açıldıktan sonra bu kapansın istiyorum.. bu arada build dediğimde hata verdi.
eğer sizin için mümkünse bana örnek bir çalışma yapıp atarsanız çok memnun olurum. onu inceleyip nerede hata yaptığımı da görebilirim.

gZknk5.jpg
 
Yine hata almaya devam ediyorsan sadece başlık dosyasına constructor eklemeyi dene.

MyBlueprintFunctionLibrary.h
Kod:
UCLASS()
class MYPROJECT_API UMyBlueprintFunctionLibrary: public UBlueprintFunctionLibrary
{
public:
    UMyBlueprintFunctionLibrary(); // Sadece bu satır yeterli...
    UFUNCTION(BlueprintPure, Category = MyBPFunctions) static void RunExecutable(const FString& InPath);
}

Yine de olmazsa şimdi çıkmam gerek ve 8 buçuk gibi dönerim o zaman cevap verebilirim ama bu sırada bu yazıyı inceleyebilirsin.

http://wiki.unrealengine.com/Blueprint_Function_Library,_Create_Your_Own_to_Share_With_Others/


bymak' Alıntı:
evet onu sildim. silinmiş haliyle yukarıda verdiğin kodları bire bir yazdığım haliyle hata veriyor.

Resmini gösterdiğin hata eski halinin hatası ama.

Yeni hatayı "Output(Error List değil)" penceresinin son 10 satırını kopyalayarak gösterin.
 
üstad buralardaysan sorun hala devam ediyor.""Widget BP" üzerinde "RunExecutable" yazmaya başladığında oluşturduğun fonksiyon karşına çıkacaktır." demişsin ama bizim foksiyon "MyBPFunctions" ortalıkta yok..?
 
yok koddaki hata da devam ediyor.aynı hata..zahmet olmaz ise, aynı şeyi sen dener misin? benim makinada mı problem var acaba?


hatta üstad ben sana tw verim özelden makinaya bağlanıp direk göstersen sonucu da burda paylaşsak nasıl olur? sende benden kurtulmuş olursun. :)
 
bymak' Alıntı:
yok koddaki hata da devam ediyor.aynı hata..zahmet olmaz ise, aynı şeyi sen dener misin? benim makinada mı problem var acaba?


hatta üstad ben sana tw verim özelden makinaya bağlanıp direk göstersen sonucu da burda paylaşsak nasıl olur? sende benden kurtulmuş olursun. :)



"Output" çıktısında gizli bir bilgi mi var? Neden göstermemekte ısrar ediyorsunuz? Okumuyor musunuz yazdıklarımı?