4Story için Makro yazılımı hakkında sorularım var

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
27 Şub 2020
Mesajlar
110
Tepki puanı
17
Ödüller
5
Yaş
28
6 HİZMET YILI
Merhabalar, ben C# Dilinde 4Story için F ye 1 kez tıkladığında 4-5 Dakika boyunca F ye basan bir program yazdım ama bunu 4Storye nasıl Enjekte ederim? 4Story çalışırken bunu nasıl kullanabilirim?
Visual Studiodan yazdım.
 
Onaylı Üye
Katılım
20 Tem 2019
Mesajlar
64
Tepki puanı
4
6 HİZMET YILI
Enjekte etmelik bir durum yok aslında. Oyunu üste alırsan sorun çözülecektir
 
Onaylı Üye
Katılım
27 Şub 2020
Mesajlar
110
Tepki puanı
17
Ödüller
5
Yaş
28
6 HİZMET YILI
Enjekte etmelik bir durum yok aslında. Oyunu üste alırsan sorun çözülecektir
Programı çalıştırdığımda sadece programın üzerinde F e basıyor, Oyuna geçtiğimde yada Chrome'a falan geçtiğimde işlemiyor halen arkadaki program ekranında devam ediyor.
 
Onaylı Üye
Katılım
20 Tem 2019
Mesajlar
64
Tepki puanı
4
6 HİZMET YILI
Programı çalıştırdığımda sadece programın üzerinde F e basıyor, Oyuna geçtiğimde yada Chrome'a falan geçtiğimde işlemiyor halen arkadaki program ekranında devam ediyor.
Demek istediğimde oydu aslında. Programı kod ile üste alıp ardından işlemi yaptırırsanız F tuşuna basacaktır
 
Onaylı Üye
Katılım
27 Şub 2020
Mesajlar
110
Tepki puanı
17
Ödüller
5
Yaş
28
6 HİZMET YILI
Dedigim gibi su an azicik problemli calisiyor herseyi fixledigimde paylasacagim
 
1881 ⁓ 193∞
Seçkin Üye
Katılım
21 Eki 2018
Mesajlar
565
Çözümler
3
Tepki puanı
181
Ödüller
8
7 HİZMET YILI
Dostum "F" basması için yazdığın kod büyük ihtimal şöyle
C#:
SendKeys.Send("F");
Bu kod sadece program üzerinde çalışır. Senin öncelikle "user32.dll" adlı dll dosyasını projene import etmen gerekiyor. Yoksa uygulaman dışında bir işlem yapmaz. Bunun için de şu kütüphaneyi eklemelisin
C#:
using System.Runtime.InteropServices;
Daha sonra aşağıdaki komutu kullanarak dllyi import et
C#:
[DllImport ("User32.dll")]
static extern int SetForegroundWindow(IntPtr point);

Şimdi istediğin programa işlem yapabilirsin. Örneğin şöyle
C#:
Process p = Process.GetProcessesByName("notepad").FirstOrDefault(); //İşlem yapmak istediğin programın Processes adı örneğin ben notepad yazdım.
if (p != null)
{   
    IntPtr h = p.MainWindowHandle;   
    SetForegroundWindow(h);   
    SendKeys.SendWait("F");
}
else
{   
    Process islem = Process.Start("notepad.exe");   
    islem.WaitForInputIdle();   
    IntPtr h = islem.MainWindowHandle;   
    SetForegroundWindow(h);   
    Thread.Sleep(2000);   
    SendKeys.SendWait("F");
}

Kodu içerisindeki notepad kısmı programın adı olacak.

Kod içerisindeki Thread.Sleep(2000) komutunun amacı 2 saniye bekleyip bir sonraki satıra geçmek için. Sebebi ise programın açılmasını 2 saniye bekliyoruz ve yazdırma işlemini yapıyoruz.

Dostum "F" basması için yazdığın kod büyük ihtimal şöyle
C#:
SendKeys.Send("F");
Bu kod sadece program üzerinde çalışır. Senin öncelikle "user32.dll" adlı dll dosyasını projene import etmen gerekiyor. Yoksa uygulaman dışında bir işlem yapmaz. Bunun için de şu kütüphaneyi eklemelisin
C#:
using System.Runtime.InteropServices;
Daha sonra aşağıdaki komutu kullanarak dllyi import et
C#:
[DllImport ("User32.dll")]
static extern int SetForegroundWindow(IntPtr point);

Şimdi istediğin programa işlem yapabilirsin. Örneğin şöyle
C#:
Process p = Process.GetProcessesByName("notepad").FirstOrDefault(); //İşlem yapmak istediğin programın Processes adı örneğin ben notepad yazdım.
if (p != null)
{  
    IntPtr h = p.MainWindowHandle;  
    SetForegroundWindow(h);  
    SendKeys.SendWait("F");
}
else
{  
    Process islem = Process.Start("notepad.exe");  
    islem.WaitForInputIdle();  
    IntPtr h = islem.MainWindowHandle;  
    SetForegroundWindow(h);  
    Thread.Sleep(2000);  
    SendKeys.SendWait("F");
}

Kodu içerisindeki notepad kısmı programın adı olacak.

Kod içerisindeki Thread.Sleep(2000) komutunun amacı 2 saniye bekleyip bir sonraki satıra geçmek için. Sebebi ise programın açılmasını 2 saniye bekliyoruz ve yazdırma işlemini yapıyoruz.

@Semhdmr

 
Son düzenleme:
Onaylı Üye
Katılım
27 Şub 2020
Mesajlar
110
Tepki puanı
17
Ödüller
5
Yaş
28
6 HİZMET YILI
Dostum "F" basması için yazdığın kod büyük ihtimal şöyle
C#:
SendKeys.Send("F");
Bu kod sadece program üzerinde çalışır. Senin öncelikle "user32.dll" adlı dll dosyasını projene import etmen gerekiyor. Yoksa uygulaman dışında bir işlem yapmaz. Bunun için de şu kütüphaneyi eklemelisin
C#:
using System.Runtime.InteropServices;
Daha sonra aşağıdaki komutu kullanarak dllyi import et
C#:
[DllImport ("User32.dll")]
static extern int SetForegroundWindow(IntPtr point);

Şimdi istediğin programa işlem yapabilirsin. Örneğin şöyle
C#:
Process p = Process.GetProcessesByName("notepad").FirstOrDefault(); //İşlem yapmak istediğin programın Processes adı örneğin ben notepad yazdım.
if (p != null)
{  
    IntPtr h = p.MainWindowHandle;  
    SetForegroundWindow(h);  
    SendKeys.SendWait("F");
}
else
{  
    Process islem = Process.Start("notepad.exe");  
    islem.WaitForInputIdle();  
    IntPtr h = islem.MainWindowHandle;  
    SetForegroundWindow(h);  
    Thread.Sleep(2000);  
    SendKeys.SendWait("F");
}

Kodu içerisindeki notepad kısmı programın adı olacak.

Kod içerisindeki Thread.Sleep(2000) komutunun amacı 2 saniye bekleyip bir sonraki satıra geçmek için. Sebebi ise programın açılmasını 2 saniye bekliyoruz ve yazdırma işlemini yapıyoruz.


@Semhdmr

Gerçekten Ellerine sağlık çok teşekkür ederim sen öyle yazınca sorunu çözdüm :burnbear:
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst