: Beyler Unload tarzı programın kapanmasına ilişkin bir event falan varmıdır bu c de? Aslında yapmak istediğim şu: program şifre soracak, 60 saniye içerisinde yazılmassa, yanlış yazılırsa veya program kapatılırsa bilgisayar kapanacak. ? Bunu sana yazmak isterdim ama sinava calisiyorum suan :) Ama aradigin seylerden biri atexit fonksiyonudur. Oncelikle program kapandigi taktirde calismasini istedigin bir fonksiyonu yazarsin mesela void kapandiktanSonraCalis gibive bu fonksiyonu atexit in icine parametre olarak verirsin, zaten atexit icine fonksiyon pointer alir ve cagrimi soyle yapicaksin ornek ;//burada kutuphanelerin ve kapandiktanSonraCalis in definition i yada implementasyonuint main

pelles c de win32 fonksiyonlarini kullanmak icin cok basit iki uc ayar yaparsin ve bu sayede bence devcpp'dan daha guzel bi derleyiciye sahip olursun :-) menu->project->project options compiler tab'i centikler var sagda, Enable Microsoft Extensions centigini isaretle ;-) ..

: hangi derleyicide deniyosun ki? pelles c de de varmis :s dev cpp mi kullaniyosun evet hocam dev-cpp, pelleste 100 den fazla hata verdi onu hiç açma :D

hocam ctrl+c, v, x veya herhangi tuş, tuş kombinasyonu ile çalışıyor fakat fare ile "Kapat" düğmesine basınca çalışmıyor :D

: #include #include HANDLE g_hThr; DWORD g_dwThrID; DWORD WINAPI thr_wait ; int main { g_hThr = CreateThread(NULL, 0, thr_wait, NULL, 0, &g_dwThrID); char buff ; if gets_s(buff, 512); if (! strcmp return 0; TerminateThread(g_hThr, 0); / programin kodlari / return 0; } DWORD WINAPI thr_wait ornek olsun ;-) 500 evler yeşil cami ye gel, püjem :D çok sağol hocam :D

: GrN bunu yazdı: hangi derleyicide deniyosun ki? pelles c de de varmis :s dev cpp mi kullaniyosun evet hocam dev-cpp, char mygets gets_s yerine kullan ;-) ..

hocam şu gets_s kısmına alternatif bir kodun varmı, VS dışında çalıştırmıyor o kodu. fgets falan denedim ama yemedi, yada ben yediremedim :D

hangi derleyicide deniyosun ki? pelles c de de varmis :s dev cpp mi kullaniyosun..

: WH0 bunu yazdı: bekletmek icin sleep apisini kullanabilirsin dinamik olarak cagir getprocaddress loadlibrarya sleep(60000); veri girisi icin multithreaded yaparsan girebilir yoksa giremez. createthread apisini kullanabilirsin. kernel32. dll User32. dll benim sıkıntımda sleep olayında zaten. C ye de yeni başladım o kadar hakim değilim. VBDream bunu yazdı: WH0 bunu yazdı: bekletmek icin sleep apisini kullanabilirsin dinamik olarak cagir getprocaddress loadlibrarya sleep(60000); veri girisi icin multithreaded yaparsan girebilir yoksa giremez. createthread apisini kullanabilirsin. kernel32. dll User32. dll benim sıkıntımda sleep olayında zaten. C ye de yeni başladım o kadar hakim değilim. C ye yeni basladiysan bu yapmak istedigin nedir dostum, bence yapamazsin ornek kod bulmadan :( Dedigim gibi, signal handling, ve wh0 nun dedigi thread olayini soylicektim birtek orasi kadar uzun surebilir diye ama daha yeniyim diyorsun, forklama, shared memory kullanimi, threadler yaratma, ki https://computing.llnl. gov/tutorials/pthreads/ posix kullanabilirsin linux icin kodluyorsan. bekleme icin wh0 nun dedigi gibi sleep ; diye fonksiyon var basit bir kutuphane icinde var guncel UI i mesgul ediceginden, veri girisini veya saniye saymayi bir thread e koyman gerekir. Soyle olabilir saniye saymadi threadde baslatirsin vs vs.

çok sağol hocam :), vaktin varsa şu 60 sn bekleme olayını nasıl yapıcam sylermisin? o tür bir bekleme esnasında veri girilebilirmi ayrıca?

cok saol hocam

#include <windows. h> #include <stdio. h> HANDLE g_hThr; DWORD g_dwThrID; DWORD WINAPI thr_wait ; int main { char buff ; / thread yarat. 60 saniye sonra programi kapatsin / g_hThr = CreateThread(NULL, 0, thr_wait, NULL, 0, &g_dwThrID); if gets_s(buff, 512);/ sifreyi al ;-) / if (strcmp != 0)/ sifre kontrolu / return 0; / sifre dogruysa akis burda. kapaticak threadi sonlandir. / TerminateThread(g_hThr, 0); / programin kodlari / return 0; } DWORD WINAPI thr_wait ornek olsun ;-) ..

bekleme esnasında veri girilmesini winapi yle yapabilirsin ama baya karışık. Şunu kullanabilirsin for(i=0;i<=bekleme_suresi 10;i++){ Sleep(100); //1 saniyenin 10 da birinde bir kontrol edicek if (GetAsyncKeyState(0x41) -32767) //a tuşuna basılırsa 0x41 a nin virtual key code karşılığı } virtual key cod listesine şurdan bakabilirsin http://msdn.microsoft.com/en-us/library/dd375731%28v=VS.85%29.aspx edit: windows. h ıda çağırman gerek Saçma

Programi eger ctrl+v, c, x gibi uygulaya signal yollayan seylerle interrupt ederse ki linuxta bunu yapariz genelde ozaman signal handling kullanman gerekicek, cok zevklidir :) http://www.cppreference.com/wiki/c/other/signal http://www. cs. cf. ac. uk/Dave/C/node24.html http://www.chemie.fu-berlin. de/chemnet/use/info/libc/libc_21.html http://publications.gbdirect. co. uk/c_book/chapter9/signal_handling.html kolay gelsin, gercekten zevkli seylerde ugrasiyorsun, aklim simdi bu baslikta kalicak :)

Beyler Unload tarzı programın kapanmasına ilişkin bir event falan varmıdır bu c de? Aslında yapmak istediğim şu: program şifre soracak, 60 saniye içerisinde yazılmassa, yanlış yazılırsa veya program kapatılırsa bilgisayar kapanacak. ?

: bekletmek icin sleep apisini kullanabilirsin dinamik olarak cagir getprocaddress loadlibrarya sleep(60000); veri girisi icin multithreaded yaparsan girebilir yoksa giremez. createthread apisini kullanabilirsin. kernel32. dll User32. dll benim sıkıntımda sleep olayında zaten. C ye de yeni başladım o kadar hakim değilim.

msdn i kullanabilirsin. bu arada bende javaya basladim... mobile icin. ancak java hic sarmadi. 🏴Hi'dan gelen varır Who'ya, Hi'da onun adıdır Who'da...

bekletmek icin sleep apisini kullanabilirsin dinamik olarak cagir getprocaddress loadlibrarya sleep(60000); veri girisi icin multithreaded yaparsan girebilir yoksa giremez. createthread apisini kullanabilirsin. kernel32. dll User32. dll 🏴Hi'dan gelen varır Who'ya, Hi'da onun adıdır Who'da...