View Full Version : programma limitatore
salve, avrei bisogno di sapere se esiste un programma ke possa limitare l'uso di un altro programma: vorrei poter limitare (ad es a 30 min al giorno) l'uso di messenger. Sapete se ci sono programmi simili? o avete idee su come potrei farlo da me? (ho competenze, non eccelze, in C).
grazie
salve, avrei bisogno di sapere se esiste un programma ke possa limitare l'uso di un altro programma: vorrei poter limitare (ad es a 30 min al giorno) l'uso di messenger. Sapete se ci sono programmi simili? o avete idee su come potrei farlo da me? (ho competenze, non eccelze, in C).
grazie
lo puoi fare da solo:
1. fai un prg che gira in background time = 0 nel corso delle 24h
2. controlli nei task se è stato lanciato msn
se si allora inizi a contare il tempo passato controllando con un timer, ogni se condo, se msn sempre in esecuzione. Se sempre in esecuzione prendi il tempo.
Esempio msn è stato aperto 00h.11m.24s
3. Alla chiusura, te ne accorgi perchè nei task attivi non c'è +, registri il tempo ovvero 00h.11m.24s
Ora di continuo in background ogni secondo controlli se msn è di nuovo aperto nei task
attivi se si prendi il tempo 00h.11m.24s e riavvii il timer facendone la somma e se timer+00h.11m.24s > 30m "killi" msn dai task attivi.
Ricordando anche che se passata la mezzanotte resetti nel file testo il tempo a 00h.00m.00s
gli ingredienti sono:
1. il tempo durata e timer
2. controllo se nei task attivi in esecuzione c'è msn
3. controllo e registrazione dei tempi
4. killaggio dal task di msn se >30m
ciao
grazie x la dritta, solo ke come ho detto ho conoscenze d base d C. Come faccio ad es a lanciare un programma in background? e x killare un programma?
Come faccio ad es a lanciare un programma in background?
ShowWindow(hwnd_finestra,SW_HIDE);
ti basta nascondere la finestra... tanto il tuo processo può stare nei task attivi mica devi hackerare la norad...
e x killare un programma?
bResult = SetDebugPrivileges(::GetCurrentProcess());
if (bResult == true) {
DWORD dwProcessID;
bResult = FindProcessID(_T("msn.EXE"),
dwProcessID);
if (bResult == true)
bResult = KillProcess(dwProcessID,
0);
così elimini il processo...
ora cosa devi fare?... usare un timer per il ripristino e controllo dei minuti passati una var bool = true se esiste nei processi attivi msn.exe o come si chiama.
Quindi devi enumerare i processi attivi
coraggio butta giù un pò di code ora ):
ok grazie!!!
stasse provo a cervellarmi un po....e verranno sicuro fuori alter domande:D
ho provato x nascondere la finestra, ma mi nasconde solo la finestra windows, e nn la finestra dos. Premetto ke d win32 ne so poco niente, se mi faresti un es semplice, grazie
ho provato x nascondere la finestra, ma mi nasconde solo la finestra windows, e nn la finestra dos. Premetto ke d win32 ne so poco niente, se mi faresti un es semplice, grazie
fammi congetturare sul tuo code... posta un pò la finestra nascosta di windows e non la finestra dos.
ho semplicemente creato un dialogo con la libreria win32 e messo il codice hide.
BOOL CALLBACK unaDlgProc(HWND hwndDlg,
UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if(uMsg==WM_CLOSE) {
EndDialog(hwndDlg, 0);
return TRUE;
}
return FALSE;
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hwndDlg;
ShowWindow(hwndDlg,SW_HIDE);
return DialogBoxParam(0,"MioDialogo",
0,unaDlgProc,0);
}
qual é l'errore?
poi avrei un altra domanda: qnd creo appunto un dialogo, si apre sempre una finestra dos, come faccio a toglierla?
grazie (scusa l'ignoranza:P)
qual é l'errore?
non sono un compilatore non saprei proprio dirti che errore ti dia ):
ho riprovato e il problema é ke la finestra si nasconde, ma quella dos rimane!! come faccio a tojerla??
ho riprovato e il problema é ke la finestra si nasconde, ma quella dos rimane!! come faccio a tojerla??
Ti conviene creare una windows application e non console.
Dove hai già pronti il ciclo per intercettare i messaggi e quantaltro serve.
un pezzo di code della windows application
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
hInst = hInstance; // Store instance handle in our global variable
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
// ShowWindow(hWnd, nCmdShow);//di default
ShowWindow(hWnd, SW_HIDE);//la finestra si nasconde
grazie!
sono riuscito a fare il mio semplice programmino. Mi chiedevo xo se esiste una funzione countdown, o devo crearmela da me?
grazie!
sono riuscito a fare il mio semplice programmino. Mi chiedevo xo se esiste una funzione countdown, o devo crearmela da me?
Ho seguito la discussione su questo argomento mentre ero alla ricerca di un programma che mi consentisse di limitare il tempo che mio figlio spende giornalmente su di un pc game on line ( sistema operativo Windows XT ). Dato che a quanto sembra un tale programma è già stato da voi realizzato, posso chiedervene una copia da adattare alle mie esigenze ? Le mie conoscenze di VB sono scarse, ma con il vs. aiuto penso di riuscire a modificarlo.
Grazie anticipate e Buon Anno a tutti.
salve!
il programma che avevo sviluppato girava su windows xp...ora non so con windows 7...poi era sviluppato in C...ed era abb complicato:P pero nn sarebbe difficile da adattare (semplicemente bisogna dire che applicazione chiudere dopo un tot di tempo).
Ora purtroppo non ho qui il programma..se puoi farti risentire dopo questo lunedi (che finisco gli esami), che provo a cercare.
ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.