Çözüldü C++ ile CMD´ye komut gönderme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Musa B.

Kilopat
Katılım
1 Ekim 2017
Mesajlar
1.633
Makaleler
4
Çözümler
13
Daha fazla  
Cinsiyet
Erkek
Merhaba, C++ ile yazmış olduğum programı kullanan kişinin CMD´sine komut göndermek istiyorum. Yapmak istediğin şeyi daha da netleştirecek olursak yaptığım programda ilk olarak menüye yolluyor menüde şu anda alan hesabı var 2.olarak ise bilgisayarı kapatmaya zamanla tarzında bir şey yapmayı planlıyorum. Kullanıcıdan alınan değeri dakika ise saniyeye çevirip bunu CMD´deki "shutdown -s -f -t süre" kısmındaki süre yerine yollamak istiyorum. CMD´ye bu komutu nasıl yollatabilirim?
 
Neden böyle bir şey yapmak istiyorsunuz sorabilir miyim ? :D
Yeni başladık C++´a üniversitede kendimi geliştirmek için bu tarz şeyler yapıp arkadaşlarımda denetiyorum. Virüs ve benzeri amaçlarla yapmayı planlamıyorum merak etmeyin :D Konu geçmişime bakarsanız absürt şeyler hakkında C dili için de konu açmıştım :D
 
Ben bilmiyorum yapmayı da iki gün sorna yaptığın şey bizim PC'yi de kapatmasın:D ama yaptığın programları kapalı sistemde kullan arkadaşlarının PC'sinde güvenlik açığı bırakabilirsin bence.
 
Ben bilmiyorum yapmayı da iki gün sorna yaptığın şey bizim PC'yi de kapatmasın:D ama yaptığın programları kapalı sistemde kullan arkadaşlarının PC'sinde güvenlik açığı bırakabilirsin bence.
Güvenlik açığı derken? Sistemlerine zarar verecek bir şey atmıyorum bu zamana kadar attıklarımın hepsi seç-sonucu gör tarzındaydı bu sefer oyun indirdiklerinde vesaire kapanma dakikasını girip bilgisayarlarını otomatik kapatmaya ayarlamalarını sağlamak.
Çözüm:
C++:
 system("c:\\windows\\system32\\shutdown /s /f /t 300");
 
Bu çok daha mantıklı olacaktır. system, const char* aldığı için ya tırnak içinde kendiniz yazmanız ya da böyle veya alternatif yollarla yapmanız lazım.

Kod:
#include <iostream>
#include <sstream>
#include <Windows.h>
#define N 60

int main() {
    auto time{ 0 };
    std::cout << "Kac dakika sonra kapatilsin? ";
    std::cin >> time;

    std::stringstream str;
    str << "shutdown -s -t " << std::to_string(time * N);

    system(str.str().c_str());

    return 0;
}
 
Kapatma komutunu bir değişken içinde tut. Süreyi sayı olarak değil, karakter dizisi olarak oku ve iki karakter dizisini birleştir. Birleşmiş yeni karakter dizisini system() fonksiyonuna gönder.
 
Bu çok daha mantıklı olacaktır. system, const char* aldığı için ya tırnak içinde kendiniz yazmanız ya da böyle veya alternatif yollarla yapmanız lazım.

Kod:
#include <iostream>
#include <sstream>
#include <Windows.h>
#define N 60

int main() {
    auto time{ 0 };
    std::cout << "Kac dakika sonra kapatilsin? ";
    std::cin >> time;

    std::stringstream str;
    str << "shutdown -s -t " << std::to_string(time * N);

    system(str.str().c_str());

    return 0;
}
Bunun hazır halini verebilir misiniz koddan çok anlamam visual studio üzerinden .bat uzantılı kaydedip yapmaya çalıştım cmd yi açıyor fakat hemen geri kapanıyor
 
Bir yazılımcı daha. Müsait olunca yaparım ama basamak olayı var. Çok dert ediyorsanız siteler doludur. Hesap makinesinin de bu özelliği var.
Dünkü konu sanmıştım. Mesajım o yüzden öyleydi. Zamanında yazdığım kodun exe hali aşağıda.

 
Son düzenleme:

Geri
Yukarı