Soyez le premier à donner votre avis sur cette source.
Vue 10 125 fois - Téléchargée 619 fois
#define _WIN32_WINNT 0x0501 #include <windows.h> #include <commctrl.h> #pragma comment(lib,"comctl32.lib") HWND hmain; HWND hprg; HWND csur; HWND soit; HWND pcent; HWND libre; char szappname[] = "Rameur"; void __stdcall OnTimerRam() { MEMORYSTATUSEX mstt; DWORD mem; long color; mstt.dwLength = sizeof(MEMORYSTATUSEX); GlobalMemoryStatusEx(&mstt); mem = mstt.dwMemoryLoad; if(mem < 41) color = RGB(23, 219, 38); else if(mem > 81) color = RGB(255, 66, 66); else color = RGB(255, 127, 0); SendMessage(hprg, PBM_SETBARCOLOR, 0, color); SendMessage(hprg, PBM_SETPOS, (WPARAM) mem, 0); char buf[12]; char buf1[12]; ultoa(mem, buf, 10); ultoa(mstt.ullAvailPhys,buf1,10); SetWindowText(csur,buf); SetWindowText(soit,"% soit "); SetWindowText(pcent,buf1); SetWindowText(libre,"Oc Libre"); } LRESULT CALLBACK AppWndProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam) { switch(mssg) { case WM_TIMER: OnTimerRam(); return 0; case WM_CREATE: hprg = CreateWindowEx(CS_DBLCLKS, PROGRESS_CLASS, NULL, WS_CHILD | WS_VISIBLE | PBS_SMOOTH, 30, 20, 218, 30, hwnd, 0, 0, 0); csur = CreateWindowEx(0,"STATIC",NULL,WS_CHILD | WS_VISIBLE,30,60,200,30,hwnd,0,0,0); soit = CreateWindowEx(0,"STATIC",NULL,WS_CHILD | WS_VISIBLE,50,60,200,90,hwnd,0,0,0); pcent =CreateWindowEx(0,"STATIC",NULL,WS_CHILD | WS_VISIBLE,95,60,300,90,hwnd,0,0,0); libre =CreateWindowEx(0,"STATIC",NULL,WS_CHILD | WS_VISIBLE,175,60,300,90,hwnd,0,0,0); SetTimer(hwnd,1,500,NULL); SendMessage(hprg, PBM_SETRANGE, 0, MAKELPARAM(0,100)); return 0; case WM_DESTROY: KillTimer(hwnd, 1); PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, mssg, wParam, lParam); } DWORD __stdcall InitInstance(HINSTANCE hinst) { WNDCLASSEX wndcls; INITCOMMONCONTROLSEX iccex; iccex.dwSize = sizeof(INITCOMMONCONTROLSEX); iccex.dwICC = ICC_PROGRESS_CLASS; if(!InitCommonControlsEx(&iccex)) return 0; memset(&wndcls, 0, sizeof(WNDCLASSEX)); wndcls.cbSize = sizeof(WNDCLASSEX); wndcls.lpfnWndProc = AppWndProc; wndcls.style = CS_HREDRAW | CS_VREDRAW; wndcls.hInstance = hinst; wndcls.lpszClassName = szappname; wndcls.hbrBackground = CreateSolidBrush(RGB(236,233,216)); wndcls.hCursor = LoadCursor(0, IDC_ARROW); if(!RegisterClassEx(&wndcls)) return 0; hmain = CreateWindowEx(WS_EX_TOPMOST, szappname, szappname, WS_OVERLAPPED | WS_VISIBLE | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 280, 125, 0, 0, hinst, 0); return (hmain != 0); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE x, PSTR y, int z) { MSG msg; if(!InitInstance(hInstance)) return 0; ShowWindow(hmain, SW_NORMAL); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; }
Depuis VS 2005:
memset() place un appel au CRT et lie le prog au msvcrt8.dll, UNE HORREUR ABSOLUE.
ZeroMemory() est macro de RtlZeroMemory(), donc préférable mais on a tout de même un appel de fonction avec 2 PUSH, pas optimal.
On fait sa fonction perso:
__declspec(naked) void __fastcall bnzeromem(BYTE *pmem, DWORD count);
et sera le mieux je pense.
Cette apres midi, je l'update (Pas sur) avec une source faite avec RACPP,
avec :
Ram Max : 512
Ram Libre 132
Ram Occuper : ...
Pourcent : 41
et la progress bar :)
pratique comme programme, et merci pour cette source d'inspiration ;-)
Si possible le renommer (.exec ou autre) et réuploader ?
Merci ;-)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.