📄 superchargerdlg.cpp
字号:
::MessageBox(GetSafeHwnd(), _T("Will Close Listening Mode\nPress Button Again!"),
_T("Must Stop Listening First!"),
MB_ICONINFORMATION|MB_OK|MB_DEFBUTTON1);
return;
}
m_number_received = 0;
m_total_requests = 0;
m_dns_name_list.DeleteAllItems();
UpdateData(FALSE);
}
void CSuperChargerDlg::OnBeep()
{
CButton* pChkBeep = (CButton*)GetDlgItem(CHK_BEEP);
DoBeep = pChkBeep->GetCheck();
}
void CSuperChargerDlg::InsertIPDomain( int iItem, CString csData, DWORD dwFlag )
{
DWORD m_dwClearSettings = 2093183;
LVITEM lvi;
//INSERT COLUMN 1
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
lvi.iItem = iItem;
lvi.iSubItem = 0;
//lvi.lParam = dwFlag;
lvi.pszText = (LPTSTR)(LPCTSTR)(csData);
m_dns_name_list.InsertItem(&lvi);
ListView_SetItemState(m_dns_name_list.m_hWnd, iItem,
INDEXTOSTATEIMAGEMASK((dwFlag) ? 2 : 1),
LVIS_STATEIMAGEMASK);
}
LRESULT CSuperChargerDlg::OnItemStateChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
NMLISTVIEW* pnmv = (LPNMLISTVIEW)pnmh;
if (pnmv->uOldState == 0 && pnmv->uNewState == 0)
return 0; // No change
// Old check box state
BOOL bPrevState = (BOOL)(((pnmv->uOldState & LVIS_STATEIMAGEMASK)>>12)-1);
if (bPrevState < 0) // On startup there's no previous state
bPrevState = 0; // so assign as false (unchecked)
// New check box state
BOOL bChecked = (BOOL)(((pnmv->uNewState & LVIS_STATEIMAGEMASK)>>12)-1);
if (bChecked < 0) // On non-checkbox notifications assume false
bChecked = 0;
if (bPrevState == bChecked) // No change in check box
return 0;
if (bChecked)
{
//g_Global.m_dwClearSettings |= pnmv->lParam;
}
else
{
//g_Global.m_dwClearSettings &= ~(pnmv->lParam);
}
return 0;
}
LRESULT CSuperChargerDlg::OnClickedClearAtExit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
//m_bClearAtExit = m_btnClearAtExit.GetCheck();
return 0;
}
int CSuperChargerDlg::CBAddStringAndData(CWnd* pDlg, int nIDC, LPCTSTR pszString, DWORD dwItemData)
{
int nInserted = CB_ERR;
CWnd* pComboBox = pDlg->GetDlgItem(nIDC);
if (pComboBox)
{
nInserted = (int) pComboBox->SendMessage(CB_ADDSTRING, 0, (LPARAM) pszString);
if (nInserted >= 0)
{
if (pComboBox->SendMessage(CB_SETITEMDATA, nInserted, dwItemData) == CB_ERR)
nInserted = CB_ERR;
}
}
return nInserted;
}
void CSuperChargerDlg::OnBrowse()
{
UpdateData(TRUE);
if (IsListening) {
UpdateData(TRUE);
closesocket ( hSHandle );
m_edtStatus.SetWindowText("Not Listening");
UpdateData(FALSE);
IsListening = FALSE;
::MessageBox(GetSafeHwnd(), _T("Will Close Listening Mode\nPress Button Again!"),
_T("Must Stop Listening First!"),
MB_ICONINFORMATION|MB_OK|MB_DEFBUTTON1);
return;
}
if (m_dns_name_list.GetSelectionMark()<0)
return;
CString csTemp;
csTemp.Empty();
csTemp = m_dns_name_list.GetItemText(m_dns_name_list.GetSelectionMark(), 0);
CString s = csTemp;
CString r1, s1, s2, s3;
int p, p1, p2;
//Handle pure comment lines first
s.TrimLeft();
s.Replace(TAB,SPACE);
if (s.GetLength()<5 || s.Mid(1)=="#")
return;
p1 = s.Find(SPACE);
p2 = s.Find(TAB);
if (p1>-1||p2>-1) {
if (p1>-1) {
p=p1;
if(p2<p1 && p2>-1) p=p2;
}
if (p2>-1) {
p=p2;
if(p1<p2 && p1>-1) p=p1;
}
s1 = s.Mid(0,p);
s1.TrimRight();
r1 = s.Mid(p,s.GetLength());
r1.TrimLeft();
if (r1.GetLength()>2) {
p1 = r1.Find(SPACE);
p2 = r1.Find(TAB);
if (p1>-1||p2>-1) {
if (p1>-1) {
p=p1;
if(p2<p1 && p2>-1) p=p2;
}
if (p2>-1) {
p=p2;
if(p1<p2 && p1>-1) p=p1;
}
s2 = r1.Mid(0,p);
s2.TrimLeft();
s2.TrimRight();
s3 = r1.Mid(p,r1.GetLength());
s3.TrimLeft();
}
}
}
if (s2.GetLength()>5)
ShellExecute(NULL, _T("open"), (LPCSTR)s2, NULL,NULL, SW_SHOWNORMAL);
}
void CSuperChargerDlg::OnDblClkHosts(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData(TRUE);
if (IsListening) {
UpdateData(TRUE);
closesocket ( hSHandle );
m_edtStatus.SetWindowText("Not Listening");
UpdateData(FALSE);
IsListening = FALSE;
*pResult = 0;
::MessageBox(GetSafeHwnd(), _T("Will Close Listening Mode\nPress Button Again!"),
_T("Must Stop Listening First!"),
MB_ICONINFORMATION|MB_OK|MB_DEFBUTTON1);
return;
}
int i = m_dns_name_list.GetSelectionMark();
if (i<0)
return;
CString sRaw = m_dns_name_list.GetItemText(i, 0);
sRaw.TrimLeft();
CString sIP, sDomain, sDesc;
AfxExtractSubString(sIP, sRaw, 0, (TCHAR)' ');
OnParse(sRaw, sIP, sDomain, sDesc);
CDomainDlg dlg;
dlg.m_ip = sIP;
dlg.m_domain = sDomain;
dlg.m_desc = sDesc;
if (dlg.DoModal() == IDOK)
{
CString sIP = dlg.m_ip;
CString sDomain = dlg.m_domain;
CString sDesc = dlg.m_desc;
sDesc.TrimLeft();
if (sDesc.GetLength()>1)
if (sDesc.Mid(1)!="#")
sDesc = "#"+sDesc;
sRaw.Empty();
sRaw = sIP+" "+sDomain+" "+sDesc;
m_dns_name_list.SetItemText(i, 0, sRaw);
}
*pResult = 0;
}
void CSuperChargerDlg::OSVersion()
{
OSVERSIONINFO winfo;
winfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&winfo);
if(winfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
{
if(winfo.dwMajorVersion>=5)
WinVer=W2K;
else
WinVer=WNT4;
}
else
if(winfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)
{
if(winfo.dwMinorVersion<10)
WinVer=W95;
else
if(winfo.dwMinorVersion<90)
WinVer=W98;
else
WinVer=WME;
}
}
BOOL CSuperChargerDlg::SetMaxMTU()
{
CRegistry reg;
CString Path;
CString csVar;
CString csValue;
CStringArray scArray;
BOOL Ok;
CComboBox* pCBoxMaxMTU = (CComboBox*)GetDlgItem(IDC_CBO_MAXMTU);
pCBoxMaxMTU->GetWindowText(csMaxMTU);
// W95, W98, WME, WNT4, W2K
if ( (WinVer=="WNT4") ||
(WinVer=="WME") ||
(WinVer=="W2K") )
{
// AUTHOR: BILL SERGIO, THE INFOMERCIAL KING(tm)
// These parameters for TCP/IP are specific to individual network
// adapter cards. These appear under the following Registry path,
// where adapter name# refers to the Services subkey for the specific
// adapter card:
// HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
// \adapter name#\Parameters\Tcpip
// Key: Tcpip\Parameters
// Value Type: REG_DWORD - Number of bytes
// Valid Range: 0 - 0xFFFF
// .SetValueN(HKEY_LOCAL_MACHINE, ;
// "SYSTEM\CurrentControlSet\Services\<Adapter Name#>\Parameters\Tcpip", ;
// "MaxMTU",gcMaxMTU)
}
if ( (WinVer=="W95") ||
(WinVer=="W98") ||
(WinVer=="WME") ||
(WinVer=="W2K") )
{
// AUTHOR: BILL SERGIO, THE INFOMERCIAL KING(tm)
// System\CurrentControlSet\Services\Class\NetTrans\00n
// Find subfolder named with a number, e.g. 0004, that contains
// the DriverDesc ="TCP/IP"
// The entries in this section must be added to the following registry key,
// where n represents the particular TCP/IP-to-network adapter binding.
Path = "System\\CurrentControlSet\\Services\\Class\\";
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, Path))
reg.CreateKey(HKEY_LOCAL_MACHINE, Path);
Ok = reg.Open(HKEY_LOCAL_MACHINE, Path);
if (Ok) {
Path = "NetTrans";
Ok = reg.ListKey( Path, scArray );
}
if (Ok){
int i,j;
i = scArray.GetSize();
for (j=0; j<i; j++){
CString csNetTrans = LPCTSTR(scArray[j]);
CString csValueKey = "System\\CurrentControlSet\\Services\\Class\\NetTrans\\"+csNetTrans;
//::MessageBox(GetSafeHwnd(), LPCTSTR(scArray[j]), LPCTSTR(scArray[j]), MB_OK);
if(!reg.VerifyKey( HKEY_LOCAL_MACHINE, csValueKey))
reg.CreateKey(HKEY_LOCAL_MACHINE, csValueKey);
Ok = reg.Open(HKEY_LOCAL_MACHINE, csValueKey);
if ( Ok ){
reg.Read("DriverDesc", csValue);
if ( csValue == "TCP/IP" ){
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, csValueKey))
reg.CreateKey(HKEY_LOCAL_MACHINE, csValueKey);
reg.Open(HKEY_LOCAL_MACHINE, csValueKey);
reg.Write("MaxMTU", csMaxMTU);
}
}
}
}
reg.Close();
}
return TRUE;
}
BOOL CSuperChargerDlg::SetRWIN()
{
// DefaultRcvWindow = 16-bit number
// Data Type: DWORD
// 8192,8760
CRegistry reg;
CString Path;
CString csVar;
CString csValue;
CStringArray scArray;
BOOL Ok;
CComboBox* pCBoxRWIN = (CComboBox*)GetDlgItem(IDC_CBO_RWIN);
pCBoxRWIN->GetWindowText(csRWIN);
char lbuffer[20];
CString csRWIN2;
INT i = 0;
if ( csRWIN == "4x" ){i=4;}
if ( csRWIN == "6x" ){i=6;}
if ( csRWIN == "8x" ){i=8;}
if ( csRWIN == "10x" ){i=10;}
if ( i > 0 ){csRWIN2 = _ltoa( i*(atoi(csMaxMTU)-40), lbuffer, 10 );}
else{csRWIN2 = csRWIN;}
if ( (WinVer=="WNT4")||(WinVer=="WME")||(WinVer=="W2K") ){
Path = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\";
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, Path))
reg.CreateKey(HKEY_LOCAL_MACHINE, Path);
Ok = reg.Open(HKEY_LOCAL_MACHINE, Path);
if ( Ok ){
reg.Write("DefaultRcvWindow", csRWIN2);
}
reg.Close();
}
if ( (WinVer=="W95")||(WinVer=="W98")||(WinVer=="WME")||(WinVer=="W2K") ){
Path = "System\\CurrentControlSet\\Services\\VxD\\MSTCP\\";
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, Path))
reg.CreateKey(HKEY_LOCAL_MACHINE, Path);
Ok = reg.Open(HKEY_LOCAL_MACHINE, Path);
if ( Ok ){
reg.Write("DefaultRcvWindow", csRWIN2);
}
reg.Close();
}
return TRUE;
}
BOOL CSuperChargerDlg::SetTTL()
{
// TTL [Time to Live]
// 32, 64 , 128, 255
// DefaultTTL = 8-bit number
// Data Type: String
CRegistry reg;
CString Path;
CString csVar;
CString csValue;
CStringArray scArray;
BOOL Ok;
CComboBox* pCBoxTTL = (CComboBox*)GetDlgItem(IDC_CBO_TTL);
pCBoxTTL->GetWindowText(csTTL);
if ( (WinVer=="WNT4")||(WinVer=="WME")||(WinVer=="W2K") ){
Path = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\";
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, Path))
reg.CreateKey(HKEY_LOCAL_MACHINE, Path);
Ok = reg.Open(HKEY_LOCAL_MACHINE, Path);
if ( Ok ){
reg.Write("DefaultTTL", csTTL);
}
reg.Close();
}
if ( (WinVer=="W95")||(WinVer=="W98")||(WinVer=="WME")||(WinVer=="W2K") ){
Path = "System\\CurrentControlSet\\Services\\VxD\\MSTCP\\";
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, Path))
reg.CreateKey(HKEY_LOCAL_MACHINE, Path);
Ok = reg.Open(HKEY_LOCAL_MACHINE, Path);
if ( Ok ){
reg.Write("DefaultTTL", csTTL);
}
reg.Close();
}
return TRUE;
}
BOOL CSuperChargerDlg::SetSKA()
{
// AUTHOR: BILL SERGIO, THE INFOMERCIAL KING(tm)
// SessionKeepAlive = milliseconds
// Specifies how often to send session keepalive packets on active sessions
// Minimum is 60 seconds. The default is 3600 seconds (1 hour).
// SessionKeepAlive = milliseconds
// Data Type: DWORD
CRegistry reg;
CString Path;
CString csVar;
CString csValue;
CStringArray scArray;
BOOL Ok;
CComboBox* pCBoxSKA = (CComboBox*)GetDlgItem(IDC_CBO_SKA);
pCBoxSKA->GetWindowText(csSKA);
char lbuffer[20];
CString csSKA2;
csSKA2 = _ltoa( 60*atoi(csSKA), lbuffer, 10 );
if ( (WinVer=="WNT4")||(WinVer=="WME")||(WinVer=="W2K") ) {
Path = "SYSTEM\\CurrentControlSet\\Services\\NetBt\\Parameters\\";
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, Path))
reg.CreateKey(HKEY_LOCAL_MACHINE, Path);
Ok = reg.Open(HKEY_LOCAL_MACHINE, Path);
if ( Ok ){
reg.Write("SessionKeepAlive", csSKA2);
}
reg.Close();
}
if ( (WinVer=="W95")||(WinVer=="W98")||(WinVer=="WME")||(WinVer=="W2K") ){
Path = "System\\CurrentControlSet\\Services\\VxD\\MSTCP\\";
if(!reg.VerifyKey(HKEY_LOCAL_MACHINE, Path))
reg.CreateKey(HKEY_LOCAL_MACHINE, Path);
Ok = reg.Open(HKEY_LOCAL_MACHINE, Path);
if ( Ok ){
reg.Write("SessionKeepAlive", csSKA2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -