Цитата
С таким не сталкивался, но опять же ремапп программный на удобноваримую для usb2kbd всегда рулит. Главное чтоб внешняя програ-ремаппер отлавливала эти "некоторые" клавиши.
Полная тишина. Система в принципе не понимает, что что-то нажимали. Ни логгеры не определители скан кодов. Проблема очень старая, кстати как раз тогда еще ахк использовал. Он тоже не видел.
Цитата
127 Keyboard Mute
128 Keyboard Volume Up
129 Keyboard Volume Down
и.т д.
Типа "Application:calculator"
Цитата
По сути дела это та же стоимость средней мыши + клавы в магазине (не самые навороченные, типа монстров Logitech, о которых как-то кто-то упоминал выше).
Мертвая ценовая категория для меня. Либо дешевенькую чтобы бегала либо топ. Правда последний топ уже 10 лет бегает и дохнуть не хочет...
Цитата
200грн/800р. (себестоимость + время на сборку/пайку + премирование идейности) и получает по "Новой Почте" (Украина) или Укрпочтой (Россия) "материал" по проекту в размере 1шт. Я думаю, это в первую очередь, касается администрации портала, так сказать, "пощупать", "потестить на деле".
Эхх а когда-то о 300р речь шла. Ну тут деваться особо не куда. По количеству надо только сориентироваться. 2-4 штуки будет.
Цитата
Если честно, я как бы с++ знаком менее 2 месяцев
Да не больше. Только меня еще и оторвали от ++ обстоятельства. А я еще и на визуал студии. Борладовские проекты открывать она не захотела.
Пример мапа для curl, который я делал дллки пилотовской. Там кстати только парсинг осталось дописать да руки никак не дойдут.
map
//главная функция
//необходимые CURL объекты
CURL *curl;
CURLcode result;
map <string, CURLoption> str_to_CURLopt = {
{ "_FILE", CURLOPT_FILE },
{ "_URL", CURLOPT_URL },
{ "_PORT", CURLOPT_PORT },
{ "_PROXY", CURLOPT_PROXY },
{ "_USERPWD", CURLOPT_USERPWD },
{ "_PROXYUSERPWD", CURLOPT_PROXYUSERPWD },
{ "_RANGE", CURLOPT_RANGE },
{ "_INFILE", CURLOPT_INFILE },
// { "_ERRORBUFFER", CURLOPT_ERRORBUFFER },
// { "_WRITEFUNCTION", CURLOPT_WRITEFUNCTION },
{ "_READFUNCTION", CURLOPT_READFUNCTION },
{ "_TIMEOUT", CURLOPT_TIMEOUT },
{ "_INFILESIZE", CURLOPT_INFILESIZE },
{ "_POSTFIELDS", CURLOPT_POSTFIELDS },
{ "_REFERER", CURLOPT_REFERER },
{ "_FTPPORT", CURLOPT_FTPPORT },
{ "_USERAGENT", CURLOPT_USERAGENT },
{ "_LOW_SPEED_LIMIT", CURLOPT_LOW_SPEED_LIMIT },
{ "_LOW_SPEED_TIME", CURLOPT_LOW_SPEED_TIME },
{ "_RESUME_FROM", CURLOPT_RESUME_FROM },
{ "_COOKIE", CURLOPT_COOKIE },
{ "_HTTPHEADER", CURLOPT_HTTPHEADER },
{ "_HTTPPOST", CURLOPT_HTTPPOST },
{ "_SSLCERT", CURLOPT_SSLCERT },
{ "_KEYPASSWD", CURLOPT_KEYPASSWD },
{ "_CRLF", CURLOPT_CRLF },
{ "_QUOTE", CURLOPT_QUOTE },
{ "_WRITEHEADER", CURLOPT_WRITEHEADER },
{ "_COOKIEFILE", CURLOPT_COOKIEFILE },
{ "_SSLVERSION", CURLOPT_SSLVERSION },
{ "_TIMECONDITION", CURLOPT_TIMECONDITION },
{ "_TIMEVALUE", CURLOPT_TIMEVALUE },
{ "_CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST },
{ "_STDERR", CURLOPT_STDERR },
{ "_POSTQUOTE", CURLOPT_POSTQUOTE },
{ "_WRITEINFO", CURLOPT_WRITEINFO },
{ "_VERBOSE", CURLOPT_VERBOSE },
{ "_HEADER", CURLOPT_HEADER },
{ "_NOPROGRESS", CURLOPT_NOPROGRESS },
{ "_NOBODY", CURLOPT_NOBODY },
{ "_FAILONERROR", CURLOPT_FAILONERROR },
{ "_UPLOAD", CURLOPT_UPLOAD },
{ "_POST", CURLOPT_POST },
{ "_DIRLISTONLY", CURLOPT_DIRLISTONLY },
{ "_APPEND", CURLOPT_APPEND },
{ "_NETRC", CURLOPT_NETRC },
{ "_FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION },
{ "_TRANSFERTEXT", CURLOPT_TRANSFERTEXT },
{ "_PUT", CURLOPT_PUT },
{ "_PROGRESSFUNCTION", CURLOPT_PROGRESSFUNCTION },
{ "_PROGRESSDATA", CURLOPT_PROGRESSDATA },
{ "_AUTOREFERER", CURLOPT_AUTOREFERER },
{ "_PROXYPORT", CURLOPT_PROXYPORT },
{ "_POSTFIELDSIZE", CURLOPT_POSTFIELDSIZE },
{ "_HTTPPROXYTUNNEL", CURLOPT_HTTPPROXYTUNNEL },
// { "_INTERFACE", CURLOPT_INTERFACE },
{ "_KRBLEVEL", CURLOPT_KRBLEVEL },
{ "_SSL_VERIFYPEER", CURLOPT_SSL_VERIFYPEER },
{ "_CAINFO", CURLOPT_CAINFO },
{ "_MAXREDIRS", CURLOPT_MAXREDIRS },
{ "_FILETIME", CURLOPT_FILETIME },
{ "_TELNETOPTIONS", CURLOPT_TELNETOPTIONS },
{ "_MAXCONNECTS", CURLOPT_MAXCONNECTS },
{ "_CLOSEPOLICY", CURLOPT_CLOSEPOLICY },
{ "_FRESH_CONNECT", CURLOPT_FRESH_CONNECT },
{ "_FORBID_REUSE", CURLOPT_FORBID_REUSE },
{ "_RANDOM_FILE", CURLOPT_RANDOM_FILE },
{ "_EGDSOCKET", CURLOPT_EGDSOCKET },
{ "_CONNECTTIMEOUT", CURLOPT_CONNECTTIMEOUT },
{ "_HEADERFUNCTION", CURLOPT_HEADERFUNCTION },
{ "_HTTPGET", CURLOPT_HTTPGET },
{ "_SSL_VERIFYHOST", CURLOPT_SSL_VERIFYHOST },
{ "_COOKIEJAR", CURLOPT_COOKIEJAR },
{ "_SSL_CIPHER_LIST", CURLOPT_SSL_CIPHER_LIST },
{ "_HTTP_VERSION", CURLOPT_HTTP_VERSION },
{ "_FTP_USE_EPSV", CURLOPT_FTP_USE_EPSV },
{ "_SSLCERTTYPE", CURLOPT_SSLCERTTYPE },
{ "_SSLKEY", CURLOPT_SSLKEY },
{ "_SSLKEYTYPE", CURLOPT_SSLKEYTYPE },
{ "_SSLENGINE", CURLOPT_SSLENGINE },
{ "_SSLENGINE_DEFAULT", CURLOPT_SSLENGINE_DEFAULT },
{ "_DNS_USE_GLOBAL_CACHE", CURLOPT_DNS_USE_GLOBAL_CACHE },
{ "_DNS_CACHE_TIMEOUT", CURLOPT_DNS_CACHE_TIMEOUT },
{ "_PREQUOTE", CURLOPT_PREQUOTE },
{ "_DEBUGFUNCTION", CURLOPT_DEBUGFUNCTION },
{ "_DEBUGDATA", CURLOPT_DEBUGDATA },
{ "_COOKIESESSION", CURLOPT_COOKIESESSION },
{ "_CAPATH", CURLOPT_CAPATH },
{ "_BUFFERSIZE", CURLOPT_BUFFERSIZE },
{ "_NOSIGNAL", CURLOPT_NOSIGNAL },
{ "_SHARE", CURLOPT_SHARE },
{ "_PROXYTYPE", CURLOPT_PROXYTYPE },
{ "_ENCODING", CURLOPT_ENCODING },
{ "_PRIVATE", CURLOPT_PRIVATE },
{ "_HTTP200ALIASES", CURLOPT_HTTP200ALIASES },
{ "_UNRESTRICTED_AUTH", CURLOPT_UNRESTRICTED_AUTH },
{ "_FTP_USE_EPRT", CURLOPT_FTP_USE_EPRT },
{ "_HTTPAUTH", CURLOPT_HTTPAUTH },
{ "_SSL_CTX_FUNCTION", CURLOPT_SSL_CTX_FUNCTION },
{ "_SSL_CTX_DATA", CURLOPT_SSL_CTX_DATA },
{ "_FTP_CREATE_MISSING_DIRS", CURLOPT_FTP_CREATE_MISSING_DIRS },
{ "_PROXYAUTH", CURLOPT_PROXYAUTH },
{ "_FTP_RESPONSE_TIMEOUT", CURLOPT_FTP_RESPONSE_TIMEOUT },
{ "_IPRESOLVE", CURLOPT_IPRESOLVE },
{ "_MAXFILESIZE", CURLOPT_MAXFILESIZE },
{ "_INFILESIZE_LARGE", CURLOPT_INFILESIZE_LARGE },
{ "_RESUME_FROM_LARGE", CURLOPT_RESUME_FROM_LARGE },
{ "_MAXFILESIZE_LARGE", CURLOPT_MAXFILESIZE_LARGE },
{ "_NETRC_FILE", CURLOPT_NETRC_FILE },
{ "_USE_SSL", CURLOPT_USE_SSL },
{ "_POSTFIELDSIZE_LARGE", CURLOPT_POSTFIELDSIZE_LARGE },
// { "_TCP_NODELAY", CURLOPT_TCP_NODELAY },
{ "_FTPSSLAUTH", CURLOPT_FTPSSLAUTH },
{ "_IOCTLFUNCTION", CURLOPT_IOCTLFUNCTION },
{ "_IOCTLDATA", CURLOPT_IOCTLDATA },
{ "_FTP_ACCOUNT", CURLOPT_FTP_ACCOUNT },
{ "_COOKIELIST", CURLOPT_COOKIELIST },
{ "_IGNORE_CONTENT_LENGTH", CURLOPT_IGNORE_CONTENT_LENGTH },
{ "_FTP_SKIP_PASV_IP", CURLOPT_FTP_SKIP_PASV_IP },
{ "_FTP_FILEMETHOD", CURLOPT_FTP_FILEMETHOD },
{ "_LOCALPORT", CURLOPT_LOCALPORT },
{ "_LOCALPORTRANGE", CURLOPT_LOCALPORTRANGE },
{ "_CONNECT_ONLY", CURLOPT_CONNECT_ONLY },
{ "_CONV_FROM_NETWORK_FUNCTION", CURLOPT_CONV_FROM_NETWORK_FUNCTION },
{ "_CONV_TO_NETWORK_FUNCTION", CURLOPT_CONV_TO_NETWORK_FUNCTION },
{ "_CONV_FROM_UTF8_FUNCTION", CURLOPT_CONV_FROM_UTF8_FUNCTION },
{ "_MAX_SEND_SPEED_LARGE", CURLOPT_MAX_SEND_SPEED_LARGE },
{ "_MAX_RECV_SPEED_LARGE", CURLOPT_MAX_RECV_SPEED_LARGE },
{ "_FTP_ALTERNATIVE_TO_USER", CURLOPT_FTP_ALTERNATIVE_TO_USER },
{ "_SOCKOPTFUNCTION", CURLOPT_SOCKOPTFUNCTION },
{ "_SOCKOPTDATA", CURLOPT_SOCKOPTDATA },
{ "_SSL_SESSIONID_CACHE", CURLOPT_SSL_SESSIONID_CACHE },
{ "_SSH_AUTH_TYPES", CURLOPT_SSH_AUTH_TYPES },
{ "_SSH_PUBLIC_KEYFILE", CURLOPT_SSH_PUBLIC_KEYFILE },
{ "_SSH_PRIVATE_KEYFILE", CURLOPT_SSH_PRIVATE_KEYFILE },
{ "_FTP_SSL_CCC", CURLOPT_FTP_SSL_CCC },
{ "_TIMEOUT_MS", CURLOPT_TIMEOUT_MS },
{ "_CONNECTTIMEOUT_MS", CURLOPT_CONNECTTIMEOUT_MS },
{ "_HTTP_TRANSFER_DECODING", CURLOPT_HTTP_TRANSFER_DECODING },
{ "_HTTP_CONTENT_DECODING", CURLOPT_HTTP_CONTENT_DECODING },
{ "_NEW_FILE_PERMS", CURLOPT_NEW_FILE_PERMS },
{ "_NEW_DIRECTORY_PERMS", CURLOPT_NEW_DIRECTORY_PERMS },
{ "_POSTREDIR", CURLOPT_POSTREDIR },
{ "_SSH_HOST_PUBLIC_KEY_MD5", CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 },
{ "_OPENSOCKETFUNCTION", CURLOPT_OPENSOCKETFUNCTION },
{ "_OPENSOCKETDATA", CURLOPT_OPENSOCKETDATA },
{ "_COPYPOSTFIELDS", CURLOPT_COPYPOSTFIELDS },
{ "_PROXY_TRANSFER_MODE", CURLOPT_PROXY_TRANSFER_MODE },
{ "_SEEKFUNCTION", CURLOPT_SEEKFUNCTION },
{ "_SEEKDATA", CURLOPT_SEEKDATA },
{ "_CRLFILE", CURLOPT_CRLFILE },
{ "_ISSUERCERT", CURLOPT_ISSUERCERT },
{ "_ADDRESS_SCOPE", CURLOPT_ADDRESS_SCOPE },
{ "_CERTINFO", CURLOPT_CERTINFO },
{ "_USERNAME", CURLOPT_USERNAME },
{ "_PASSWORD", CURLOPT_PASSWORD },
{ "_PROXYUSERNAME", CURLOPT_PROXYUSERNAME },
{ "_PROXYPASSWORD", CURLOPT_PROXYPASSWORD }
};
//инициализируем curl
curl = curl_easy_init();
Смысл в то, что когда прилетает параметр _PROXYPASSWORD, то он заменяется на CURLOPT_PROXYPASSWORD. CURLOPT_PROXYPASSWORD же в свою очередь является числом определенным через define самим кулом. Т.е. вызывая элемент массива [ n 1 ] мы по факту обращаемся к [n 2]. Это позволяет строкой обращаться к числу и не иметь проблем с типами данных.
Сообщение отредактировал DarkMaster - 25.1.2014, 20:14