




Programların CPU Kullanımı'nı Kısıtlama Programı (İSTEK)
-
Hocalar başlıkta belirttiğim gibi bilgisayarımda ki bazı programların cpu kullanımlarını kısıtlamak istiyorum.
bu konuda bildiğim tek program BES diye bir program ancak kendi sitesini bulamadım yada kendi sitesi yok.
Siz güvenle kullanabileceğim böyle bir program biliyorsanız önerilerinizi bekliyorum.
-
takip, banada lazım olacak.
-
bes cpu limitleme die ara
edit
http://mion.faireal.net/BES/#download
-
samaccc bunu yazdı
bu site bu programın kendi orjinal sitesimi oluyor şimdi ?
-
bayarbatuhan bunu yazdısamaccc bunu yazdı
bu site bu programın kendi orjinal sitesimi oluyor şimdi ?
bilmiyorum
ben knight online oynarken 2-3 çar açarken bunu kullanıyorum cpu kısıtlamak için gayet başarılı bence
-
samaccc bunu yazdıbayarbatuhan bunu yazdısamaccc bunu yazdı
bu site bu programın kendi orjinal sitesimi oluyor şimdi ?
bilmiyorum
ben knight online oynarken 2-3 çar açarken bunu kullanıyorum cpu kısıtlamak için gayet başarılı bence
evet gayet başarılı biliyorum programı ancak bana kendi orjinal sitesi lazım bu dolaylı ylla yüklnen yerlerde programın içinde %90 virüs oluyor. Bu yüzden açtım konuyu zaten
-
Görev yöneticisinde işlemler sekmesinde işlemi seçip sağ tıklayınca "öncelik ata" ve "benzeşmeyi ayarla" seçenekleri çıkıyor ama hiç kullanmadım, işini görür mü bilmiyorum.
-
Balyoz99 bunu yazdı
Görev yöneticisinde işlemler sekmesinde işlemi seçip sağ tıklayınca "öncelik ata" ve "benzeşmeyi ayarla" seçenekleri çıkıyor ama hiç kullanmadım, işini görür mü bilmiyorum.
malesef hocam. benim istediğim program arkada çalışmaya devam edecek yalnız CPU kullanımını %5 hatta daha düşük tutacağım. programın kasması önemli değil. sadece arka planda çalışmaya devam etsin yeter.
-
Benim uyguladığım örnek bir yöntem;
Hedef process NtOpenProces ile açılır. Ntdll.dll içinde export edilen ancak dökümantasyonu olmayan NtSuspenProcess ve NtResumeProcess apileri kullanılarak, process dondurulur, bir süre beklenir, devam ettirilir.
Program kapanırken de, process devam ettirilir ve handle kapatılır. Normalde dökümante edilmiş yollarla da yapılabilir ancak çok daha zor, Önce ilgili processin threadleri listelenir, Thread32First, Thread32Next toolhelp fonksiyonlarıyla, sonra her thread açılarak, SuspendThread, ResumeThread dökümante edilmiş apileri kullanılır.
Örnek bir program yazdım, process id sini ve yavaşlatma yüzdesini veriyorsunuz, process i yavaşlatıyor :) Process ID yi nasıl öğreniceğinizi bilmiyorsanız, görev yöneticisinde, sütun seçten PID i seçerek öğrenebilirsiniz, ya da konsoldan tasklist yazarak öğrenebilirsiniz.
Ben gösterme açısından bir örnek exe koydum, ekrana sayı yazıyor, yavaşlama derecesini test edebilmeniz açısından, tabi siz paint i filan da yavaşlatabilirsiniz, 8 çekirdekli pc de commodere 64 hızında çalıştırabilirsiniz :)
kod aşağıda, derlenmiş halleri de burdan indirilebilir : http://www.sendspace.com/file/t4q2c3
sifre tahribat
Yavaşlatma derecesi 1 den 100 e kadar unutmayın.
Kod:
/*++ Copyright (c) Tahribat 2012. All rights reserved. Module Name: slow.c Abstract: PID i verilen process'in CPU kullanimini dusurur Author: Dogan K. --*/ #include <stdio.h> #include <windows.h> #include <ddk/ntddk.h> #define SLOW_CONST 1000000 HANDLE hProcess = NULL; NTSTATUS (NTAPI *NtSuspendProcess)(HANDLE hProcess); NTSTATUS (NTAPI *NtResumeProcess)(HANDLE hProcess); BOOL WINAPI HandlerRoutine(DWORD dwCtrlType) { if (hProcess != NULL) { NtResumeProcess(hProcess); NtClose(hProcess); } exit(0); return TRUE; } int main() { CLIENT_ID cId = {0}; NTSTATUS status = 0; OBJECT_ATTRIBUTES obj_attr; int i=0, slowLvl = 0; NtSuspendProcess = (void*)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtSuspendProcess"); NtResumeProcess = (void*)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtResumeProcess"); if (SetConsoleCtrlHandler(HandlerRoutine, TRUE) == FALSE) { printf("SetConsoleCtrlHandler : %d\n", GetLastError()); return 1; } InitializeObjectAttributes(&obj_attr, NULL, 0, NULL, NULL); printf("Process Id\t\t: "); scanf("%d", &cId.UniqueProcess); status = NtOpenProcess(&hProcess, PROCESS_ALL_ACCESS, &obj_attr, &cId); if (status != STATUS_SUCCESS) { printf("NtOpenProcess : %X\n", status); return 1; } printf("Yavaslatma Derecesi %\t: "); scanf("%d", &slowLvl); if (slowLvl <1 || slowLvl > 100) { printf("Hatali secim\n"); NtClose(hProcess); return 1; } while (TRUE) { for (i=1; i <= SLOW_CONST; i++) { if (i <= slowLvl) { if (NtSuspendProcess(hProcess) != STATUS_SUCCESS) { NtClose(hProcess); return 1; } Sleep(1); if (NtResumeProcess(hProcess) != STATUS_SUCCESS) { NtClose(hProcess); return 1; } } } } return 0; }