Click here to Skip to main content
15,891,513 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: many projects -> solution Pin
Ali Rafiee18-Jul-06 9:16
Ali Rafiee18-Jul-06 9:16 
Questioniostream/fstream problem [modified] Pin
CoffeeAddict1918-Jul-06 8:41
CoffeeAddict1918-Jul-06 8:41 
AnswerRe: iostream/fstream problem Pin
earl18-Jul-06 12:02
earl18-Jul-06 12:02 
QuestionWindows File Access Monotoring Pin
sundar15618-Jul-06 8:35
sundar15618-Jul-06 8:35 
AnswerRe: Windows File Access Monotoring Pin
Chris Losinger18-Jul-06 11:24
professionalChris Losinger18-Jul-06 11:24 
AnswerRe: Windows File Access Monotoring Pin
Kharfax19-Jul-06 2:25
Kharfax19-Jul-06 2:25 
GeneralRe: Windows File Access Monotoring Pin
sundar1562-Aug-06 11:01
sundar1562-Aug-06 11:01 
Questionhook [modified] Pin
farshad.f18-Jul-06 7:47
farshad.f18-Jul-06 7:47 
hi i coded a hook dll,but when i wanna add a file and write the result i dont know what happens.my file is wrong or somtimes it's empty
(but messagebos shows the right result !!!!!!!)
here is my code:
#include "a.h"
#include <stdio.h>
#include <stdlib.h>
#include <psapi.h>
#include <string.h>
#include <winreg.h>
#include <process.h>
#include <windef.h>
#include <windows.h>
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>

int x=0;

int stream;
FILE* fout;
static BOOL bHooked = FALSE;

static HHOOK CBT=0,CBT1=0;
static HINSTANCE hInst;
static int count;
char szModName[1024];
char szModName1[1024];

char nul[1024];

char win[1024];

void GetWinDir(void);

LRESULT CALLBACK CBTProc(int code, WPARAM wParam, LPARAM lParam);
//LRESULT CALLBACK CBTProc1(int code, WPARAM wParam, LPARAM lParam);


BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
hInst=hinstDLL;

count=0;
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
default:
break;
}

return TRUE;
}

DLL_EXPORT void BagaHooku(void)
{
if(!bHooked)
{
CBT = SetWindowsHookEx(WH_CBT, (HOOKPROC)CBTProc, hInst, (DWORD)NULL);
/// CBT1 = SetWindowsHookEx(WH_CBT, (HOOKPROC)CBTProc1, hInst, (DWORD)NULL);
bHooked = TRUE;
}
}

DLL_EXPORT void ScoateHooku(void)
{
if(bHooked)
{
UnhookWindowsHookEx(CBT);
// UnhookWindowsHookEx(CBT1);

}
}

LRESULT CALLBACK CBTProc(int nCode,WPARAM wParam,LPARAM lParam)

{
if ((nCode==HCBT_ACTIVATE)||(nCode==HCBT_SYSCOMMAND)||(nCode==HCBT_QS)||(nCode==HCBT_CREATEWND))

//if (nCode==HCBT_DESTROYWND)

{
//MessageBox (NULL, TEXT ("send processes"), TEXT ("HelloMsg"), 0) ;

HANDLE hProc;
HMODULE hMods[1024];
DWORD n;
DWORD dwProcessId ;
DWORD lpExitCode;
DWORD dwSize,dwType,dwDisp;
HKEY Regentry;
char *host1;
char host[1024];
char rezerva[1024];

//MessageBox (NULL, TEXT ("send processes"), TEXT ("HelloMsg"), 0) ;

GetWindowThreadProcessId((HWND)wParam, &dwProcessId);
hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, (DWORD)dwProcessId);

if(EnumProcessModules(hProc, hMods, sizeof(hMods), &n))
{
if (n>0)
GetModuleFileNameEx(hProc, hMods[0], szModName, sizeof(szModName));
}

GetExitCodeProcess(hProc,&lpExitCode);

if(!(host1=strrchr(szModName,'\\')))
strcpy(host,szModName);
else
strcpy(host,host1+1);

RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Gapula\\PEND", 0, KEY_QUERY_VALUE, &Regentry);
RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize);
if(RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize)!=ERROR_SUCCESS)
{
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Gapula\\OK", 0, KEY_QUERY_VALUE, &Regentry);
RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize);

if(RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize)!=ERROR_SUCCESS)
{
RegCloseKey(Regentry);
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Gapula\\RESTR", 0, KEY_QUERY_VALUE|KEY_ALL_ACCESS, &Regentry);
RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize);

if(RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize)!=ERROR_SUCCESS)
{
RegCreateKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Gapula\\PEND", 0, "", REG_OPTION_NON_VOLATILE,KEY_WRITE, NULL, &Regentry, &dwDisp);
RegSetValueEx(Regentry, host, 0, REG_SZ,(unsigned char *)szModName, strlen(szModName)+1);
RegCloseKey(Regentry);
strcat(szModName," is trying to END, do you allow that ?\n Please recall that if you say yes this action will be happening every time this program starts\nThis goes for NO as well so be careful what you wish for");


//++++++++++++++++++++++++++++++++++++++++++++++
fout = fopen("out.txt", "a+");

fwrite(host, 1,strlen(host), fout);
// fwrite("\n",1,2,fout);
fclose(fout);
//++++++++++++++++++++++++++++++++++++++++++++++++++++

//this messagebox shows the right answer but the file above shows the wrong!!!!! whats problem?
MessageBox (NULL, host, TEXT ("HelloMsg"), 0) ;



if (MessageBox(NULL,szModName,"Gabby",MB_ICONQUESTION|MB_SYSTEMMODAL|MB_APPLMODAL|MB_TASKMODAL|MB_SETFOREGROUND|MB_TOPMOST|MB_YESNO)==IDNO)
{
RegCreateKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Gapula\\RESTR", 0, "", REG_OPTION_NON_VOLATILE,KEY_WRITE, NULL, &Regentry, &dwDisp);
RegSetValueEx(Regentry, host, 0, REG_SZ,(unsigned char *)szModName, strlen(szModName)+1);
RegCloseKey(Regentry);

//MessageBox (NULL, TEXT ("send processes"), TEXT ("HelloMsg"), 0) ;
TerminateProcess(hProc, (UINT)lpExitCode);
}
else
{


RegCreateKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Gapula\\OK", 0, "", REG_OPTION_NON_VOLATILE,KEY_WRITE, NULL, &Regentry, &dwDisp);
RegSetValueEx(Regentry, host, 0, REG_SZ,(unsigned char *)szModName, strlen(szModName)+1);
RegCloseKey(Regentry);
return 0;
}

}

else
//MessageBox (NULL, TEXT ("send processes"), TEXT ("HelloMsg"), 0) ;
TerminateProcess(hProc, (UINT)lpExitCode);

}

else

{
return 0;
}

}

else
{
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Gapula\\RESTR", 0, KEY_QUERY_VALUE|KEY_ALL_ACCESS, &Regentry);
RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize);

if(RegQueryValueEx(Regentry,host , NULL, &dwType, (unsigned char*)&rezerva, &dwSize)!=ERROR_SUCCESS)

return 0;

else
//MessageBox (NULL, TEXT ("send processes"), TEXT ("HelloMsg"), 0) ;
TerminateProcess(hProc, (UINT)lpExitCode);
}





}



return CallNextHookEx(CBT,nCode,wParam,lParam);
}






this part is wrong:
fout = fopen("out.txt", "a+");

fwrite(host, 1,strlen(host), fout);
// fwrite("\n",1,2,fout);
fclose(fout);
???????????????????????????????

-- modified at 13:51 Tuesday 18th July, 2006
AnswerRe: hook Pin
David Crow18-Jul-06 8:30
David Crow18-Jul-06 8:30 
GeneralRe: hook Pin
farshad.f18-Jul-06 19:51
farshad.f18-Jul-06 19:51 
AnswerRe: hook Pin
Ali Rafiee18-Jul-06 9:28
Ali Rafiee18-Jul-06 9:28 
GeneralRe: hook Pin
farshad.f18-Jul-06 19:55
farshad.f18-Jul-06 19:55 
QuestionDesk Band Pin
neoandrew18-Jul-06 7:45
neoandrew18-Jul-06 7:45 
QuestionListing running Apps Pin
Kharfax18-Jul-06 7:23
Kharfax18-Jul-06 7:23 
AnswerRe: Listing running Apps Pin
Ravi Bhavnani18-Jul-06 7:30
professionalRavi Bhavnani18-Jul-06 7:30 
GeneralRe: Listing running Apps Pin
Kharfax18-Jul-06 7:37
Kharfax18-Jul-06 7:37 
AnswerRe: Listing running Apps Pin
Ali Rafiee18-Jul-06 7:43
Ali Rafiee18-Jul-06 7:43 
GeneralRe: Listing running Apps Pin
Kharfax18-Jul-06 7:48
Kharfax18-Jul-06 7:48 
GeneralRe: Listing running Apps Pin
ThatsAlok19-Jul-06 6:17
ThatsAlok19-Jul-06 6:17 
AnswerRe: Listing running Apps Pin
Hamid_RT18-Jul-06 18:56
Hamid_RT18-Jul-06 18:56 
GeneralRe: Listing running Apps Pin
Kharfax19-Jul-06 2:18
Kharfax19-Jul-06 2:18 
Questionifstream in mfc cause strange errors in debug only [modified] Pin
FredrickNorge18-Jul-06 6:24
FredrickNorge18-Jul-06 6:24 
AnswerRe: ifstream in mfc cause strange errors in debug only Pin
Maxwell Chen18-Jul-06 6:44
Maxwell Chen18-Jul-06 6:44 
GeneralRe: ifstream in mfc cause strange errors in debug only Pin
FredrickNorge18-Jul-06 6:49
FredrickNorge18-Jul-06 6:49 
GeneralRe: ifstream in mfc cause strange errors in debug only Pin
toxcct18-Jul-06 6:56
toxcct18-Jul-06 6:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.