This commit is contained in:
174
HookMsg/MISC.Cpp
Normal file
174
HookMsg/MISC.Cpp
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
/*****************************************************************************\
|
||||||
|
*
|
||||||
|
* Module: misc.c
|
||||||
|
*
|
||||||
|
* Contains miscellaneous routines for the Windows debugging Spy SDK applet.
|
||||||
|
*
|
||||||
|
* Functions:
|
||||||
|
*
|
||||||
|
* ReadRegistry()
|
||||||
|
* WriteRegistry()
|
||||||
|
*
|
||||||
|
* Comments:
|
||||||
|
*
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#include "stdafx.h"
|
||||||
|
#include "spy.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
HKEY ghkeySpy = NULL;
|
||||||
|
CHAR gszSpyAppKey[] = "Software\\Yourisoft\\HookMsg";
|
||||||
|
CHAR gszKeyPosition[] = "Position";
|
||||||
|
|
||||||
|
//LPSTR StripExtension(LPSTR pszFileName);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************\
|
||||||
|
* ReadRegistry
|
||||||
|
*
|
||||||
|
* Opens (creates if necessary) the registry key for spy preferences and then
|
||||||
|
* reads the last saved values.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* none
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* VOID
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
VOID
|
||||||
|
ReadRegistry(
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
{
|
||||||
|
DWORD dwType;
|
||||||
|
DWORD cbData;
|
||||||
|
|
||||||
|
RegCreateKey(HKEY_CURRENT_USER, gszSpyAppKey, &ghkeySpy);
|
||||||
|
|
||||||
|
cbData = gwndpl.length = sizeof(gwndpl);
|
||||||
|
if (!ghkeySpy || RegQueryValueEx(ghkeySpy, gszKeyPosition, NULL, &dwType,
|
||||||
|
(LPBYTE)&gwndpl, &cbData) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
gwndpl.length = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gwndpl.length != sizeof(gwndpl))
|
||||||
|
{
|
||||||
|
/* gwndpl.length = sizeof(gwndpl);
|
||||||
|
gwndpl.flags = 0;
|
||||||
|
gwndpl.showCmd = SW_SHOWNORMAL;
|
||||||
|
gwndpl.ptMinPosition.x = 0;
|
||||||
|
gwndpl.ptMinPosition.y = 0;
|
||||||
|
gwndpl.ptMaxPosition.x = 0;
|
||||||
|
gwndpl.ptMaxPosition.y = 0;
|
||||||
|
gwndpl.rcNormalPosition.left = 10;
|
||||||
|
gwndpl.rcNormalPosition.top = 10;
|
||||||
|
gwndpl.rcNormalPosition.right =
|
||||||
|
10 + (GetSystemMetrics(SM_CXSCREEN) / 3);
|
||||||
|
gwndpl.rcNormalPosition.bottom =
|
||||||
|
10 + (GetSystemMetrics(SM_CYSCREEN) / 3);
|
||||||
|
*/ }
|
||||||
|
/*
|
||||||
|
for( int i=0; i< MAX_FIND; i++ )
|
||||||
|
{
|
||||||
|
cbData = sizeof(HWND);
|
||||||
|
TCHAR szKeyName[100] = {0,};
|
||||||
|
wsprintf( szKeyName, "HWND_%d", i );
|
||||||
|
if (!ghkeySpy || RegQueryValueEx(ghkeySpy, szKeyName, NULL, &dwType,
|
||||||
|
(LPBYTE)&g_theApp.m_hFindWindow[i], &cbData) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
g_theApp.m_hFindWindow[i] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************\
|
||||||
|
* WriteRegistry
|
||||||
|
*
|
||||||
|
* Writes out preference data to the registry when the app exits, then
|
||||||
|
* closes the registry key.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* none
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* VOID
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
VOID
|
||||||
|
WriteRegistry(
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (ghkeySpy)
|
||||||
|
{
|
||||||
|
WINDOWPLACEMENT wndpl;
|
||||||
|
wndpl.length = sizeof(WINDOWPLACEMENT);
|
||||||
|
::GetWindowPlacement( AfxGetApp()->GetMainWnd()->m_hWnd, &wndpl);
|
||||||
|
RegSetValueEx(ghkeySpy, gszKeyPosition, 0, REG_BINARY,
|
||||||
|
(LPBYTE)&wndpl, sizeof(wndpl));
|
||||||
|
/*
|
||||||
|
for( int i=0; i< MAX_FIND; i++ )
|
||||||
|
{
|
||||||
|
TCHAR szKeyName[100] = {0,};
|
||||||
|
wsprintf( szKeyName, "HWND_%d", i );
|
||||||
|
RegSetValueEx(ghkeySpy, szKeyName, 0, REG_DWORD,
|
||||||
|
(LPBYTE)&g_theApp.m_hFindWindow[i], sizeof(DWORD));
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// RegSetValueEx(ghkeySpy, gszKeyHWND1, 0, REG_BINARY,
|
||||||
|
// (LPBYTE)g_theApp.m_hFindWindow[0], sizeof(HWND));
|
||||||
|
// RegSetValueEx(ghkeySpy, gszKeyFileName, 0, REG_SZ,
|
||||||
|
// (LPBYTE)gszFile, (lstrlen(gszFile) + 1) * sizeof(TCHAR));
|
||||||
|
|
||||||
|
RegCloseKey(ghkeySpy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************\
|
||||||
|
* StripExtension
|
||||||
|
*
|
||||||
|
* Strips the extension off of a filename.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* LPSTR pszFileName - File name to process.
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* Returns a pointer to the beginning of the filename. The extension
|
||||||
|
* will have been stripped off.
|
||||||
|
*
|
||||||
|
\*****************************************************************************/
|
||||||
|
/*
|
||||||
|
PRIVATE LPSTR
|
||||||
|
StripExtension(
|
||||||
|
LPSTR pszFileName
|
||||||
|
)
|
||||||
|
{
|
||||||
|
LPSTR p = pszFileName;
|
||||||
|
|
||||||
|
while (*p)
|
||||||
|
p++;
|
||||||
|
|
||||||
|
while (p > pszFileName && *p != '\\' && *p != ':') {
|
||||||
|
p = CharPrev(pszFileName, p);
|
||||||
|
if (*p == '.') {
|
||||||
|
*p = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (*p == '\\' || *p == ':') {
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user