Вопрос № 107006: Почему не работает cin.getline я так и не смог разобраться, решил пойти другим путем: считывать посимвольно с помощью getch(). Но при запуске куска кода, привиденного ниже, все ступориться......Вопрос № 107022: Здраствуйте!!! У меня проблемы с вводом getline(когда-то раньше давно были такие проблемы, не спрашивал! а когда уже надо исп. возникают проблемы:( ).
пишу на MVS c++ 2003! getline просто игнорируеться!!!
ну если убрать cin>>c! То работ...Вопрос № 107035: Здравствуйте, эксперты! Не подскажите как мне считать информацию из данной ячейки памяти данного процесса. Как это делает программа ArtMoney. То есть у меня есть процесс и адрес памяти, мне нужно значение получить. И второй вопрос. Меняются ли адреса...Вопрос № 107037: Не компилируется след. программа, что Вы можете сказать по этому поводу?
..Вопрос № 107043: Здравствуйте! Подскажите, пожалуйста, где ошибка:
вот кусочек программы:
float xr[3][6]={{1,2,3,4,5,7},{1,7,4,8,3,7},{3,5,2,2,1,7}};
Label2->Caption=xr[0][0];
Label3->Caption=xr[1][0];
Label4->Caption=xr[2][0];
Label9...Вопрос № 107049: Здраствуйте, Уважаемые Эксперты.
Подскажите пожалуйста с помощью какой функции можно узнать список запущенных процессов и список запущенных приложений в диспетчере задач и как это реализовать.
Заранее спасибо....
Вопрос № 107.006
Почему не работает cin.getline я так и не смог разобраться, решил пойти другим путем: считывать посимвольно с помощью getch(). Но при запуске куска кода, привиденного ниже, все ступориться...
Приложение:
Отправлен: 27.10.2007, 17:33
Вопрос задал: Copogu4 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 8)
Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Copogu4!
Потому что getch() возвращает код нажатой клавиши, а не символ нажатой клавиши...Функция возвращающая символ - getche()...Во воторых getch() возвращает переменную типа int...
Если Вы хотита запоминать в какой то массив символы тех клавиш, котоые нажимаете, то тут getch() не поможет...попробуйте getche()...
getch() в основном используется для создания меню...Например если была нажата клавиша с кодом 49(соответсвует 1), то осуществляется переход по данной теме(очищается экран и выводится нужнвя информаци и др.)...если код 27(Esc), то осуществляется выход...и так далее...
--------- Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 10-ый класс)
Ответ отправлен: 27.10.2007, 18:12 Оценка за ответ: 5
Отвечает: SiRuS
Здравствуйте, Copogu4!
1)
- это символ новой строки, а не символ перевода коретки.
2) у вас не происходит вывод. getch() считывает, но не выводит
Попробуйте так. В этом методе можно легко добавить проверку вводимых символов, обеспечив "защиту от дурака".
Приложение:
Ответ отправил: SiRuS (статус: 2-ой класс)
Ответ отправлен: 27.10.2007, 18:44
Вопрос № 107.022
Здраствуйте!!! У меня проблемы с вводом getline(когда-то раньше давно были такие проблемы, не спрашивал! а когда уже надо исп. возникают проблемы:( ).
пишу на MVS c++ 2003! getline просто игнорируеться!!!
ну если убрать cin>>c! То работает getline работает нормально! в инете находил такие подобные ошибки(там написано надо очишать буфер! но вроде очишал никакого результата, может я не правильно очишаю??)
Попробуйте прогу у себя может у меня компилятор чего выделуеться??
Подскажите что делать???
Приложение:
Отправлен: 27.10.2007, 20:58
Вопрос задал: CruelHity (статус: 3-ий класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Воробьёв Алексей Викторович
Здравствуйте, CruelHity!
Похоже, что cin >> c; не убирает перевод строки из входного буфера. Когда Вы читаете следующую строку, то и получаете всё, что после числа и до конца строки. Если Вы вводили только одно числ, то получите пустую строку. Если Вы вводили что-то ещё после числа, то увидите остаток строки.
Я нашёл метод cin.ignore(count, '
'); вызов которого после cin >> c; удалит все символы до конца строки включительно в пределах 'count' символов.
Ответ отправил: Воробьёв Алексей Викторович (статус: 3-ий класс)
Ответ отправлен: 28.10.2007, 05:01 Оценка за ответ: 5 Комментарий оценки: Отлично работает!!!! простенко и со вкусом)))))))
Ответ отправил: Попов А.С. (статус: 3-ий класс)
Ответ отправлен: 28.10.2007, 17:11 Оценка за ответ: 5 Комментарий оценки: Хорошо! тоже работает!!1 только не пойму зачем сбрасывать флаги ведь и с ними нормально работает??
Вопрос № 107.035
Здравствуйте, эксперты! Не подскажите как мне считать информацию из данной ячейки памяти данного процесса. Как это делает программа ArtMoney. То есть у меня есть процесс и адрес памяти, мне нужно значение получить. И второй вопрос. Меняются ли адреса памяти одних и тех же переменных с перезапуском процесса? Вообщем расскажите, если не трудно, как выхватить чужие переменные из процессов. Спасибо!
Отправлен: 27.10.2007, 22:06
Вопрос задал: Tossha (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Tossha!
Про чтение чужих переменных ничего сказать не могу. Естественно, что это возможно, поскольку именно так работают дебаггеры.
Вы бы поделились деталями проблемы, потому что разные проблемы допускают разные решения.
Например, если Вам не важно отлавливать значение переменной в реальном времени, то Вы можете приаттачиться к процессу из дебаггера и посмотреть Ваш адрес.
Что касается смены адресов, то всё зависит под какой операционкой Вы работаете.
Под Линуксом по умолчанию процесс всегда получает новый адрес, но это можно отключить.
Под Windows XP по умолчанию адрес тот же, но можно настроить компьютер на смену.
Если я не ошибаюсь, то под Вистой загрузчик может выбирать один из 256 возможных адресов для загрузки процесса.
Это всё сделано для усложения работы вирусов, которые чато атакуют уязвимости в программах по определённому адресу.
Ответ отправил: Воробьёв Алексей Викторович (статус: 3-ий класс)
Ответ отправлен: 28.10.2007, 07:08 Оценка за ответ: 4
Отвечает: QDSota
Здравствуйте, Tossha!
Посмотрите функцию ReadProcessMemory например на
http://megalib.com/books/860/api32_29.htm.
Адрес переменной относительно начала блока обычно постоянен.
--------- Открыть глаза навстречу солнцу
Ответ отправил: QDSota (статус: Профессионал) Тел.: 8-916-53-43-916 ICQ: 84611301 ---- Ответ отправлен: 29.10.2007, 09:30
Вопрос № 107.037
Не компилируется след. программа, что Вы можете сказать по этому поводу?
Приложение:
Отправлен: 27.10.2007, 22:25
Вопрос задал: Aleha (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Aleha!
Вот такой вот вариант собирается под Visual Studio 2003:
Здравствуйте! Подскажите, пожалуйста, где ошибка:
вот кусочек программы:
float xr[3][6]={{1,2,3,4,5,7},{1,7,4,8,3,7},{3,5,2,2,1,7}};
Label2->Caption=xr[0][0];
Label3->Caption=xr[1][0];
Label4->Caption=xr[2][0];
Label9->Caption=xr[0][1];
Label10->Caption=xr[1][1];
Label11->Caption=xr[2][1];
Label12->Caption=xr[0][2];
Label13->Caption=xr[1][2];
Label14->Caption=xr[2][2];
Label15->Caption=xr[0][3];
Label16->Caption=xr[1][3];
Label17->Caption=xr[2][3];
Label18->Caption=xr[0][4];
Label19->Caption=xr[1][4];
Label20->Caption=xr[2][4];
Label21->Caption=xr[0][5];
Label22->Caption=xr[1][5];
Label23->Caption=xr[2][5];
не поверите, но это все...и уже не работает :(. значения
xr[0][0]; xr[0][1]; xr[0][2] выводятся не те которые есть 1, 1, 3...а вообще левые....подскажите, пожалуйста, в чем загвоздка.
Отправлен: 27.10.2007, 22:56
Вопрос задала: Mart (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Mart!
Label#->Caption имеет тип string...поэтому Ваши елементы массива надо переводить в string, так как они являются переменными типа int...Воспользуйтесь функцией itoa()...тут возможно ошибаюсь, возможно эта функция пишется inttostr()...просто нет сейчас возможности проверить...иногда путаю их...но вобщем Вам нужна функция, котороя переводит целое число в символ или строку...
Label2->Caption=itoa(xr[0][0]); или
Label2->Caption=intotstr((xr[0][0]);
Вы пытаетесь присвоить строковому значению (свойству) число с плавающей запятой.
Надеяться на то, что это сработает не стоит, хотя, Borland иногда и делает такое не явное приведение.
В этом случае, требуется использовать приведение типа - например, функцию
FloatToStr. Label2->Caption=FloatToStr(xr[0][0]);
И так всегда, в данном случае, для всех меток (Label)
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Практикант)
Ответ отправлен: 27.10.2007, 23:18
Отвечает: Архипов Александр Леонидович
Здравствуйте, Mart!
Уважаю мнение других экспертов, и сам всегда в таких случаях привожу присвоение типа Label2->Caption=FloatToStr(xr[0][0]), но попробовал как написано и всё получилось нормально... У меня BCPP6. Возможно тут нет ошибки, а просто Метки идут не попорядку... просто проверить надо.
Здраствуйте, Уважаемые Эксперты.
Подскажите пожалуйста с помощью какой функции можно узнать список запущенных процессов и список запущенных приложений в диспетчере задач и как это реализовать.
Заранее спасибо.
Отправлен: 28.10.2007, 01:16
Вопрос задал: MARTALEX (статус: 4-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Lestat de Lionkur
Здравствуйте, MARTALEX!
Привожу пример программы, которая сканирует запущенные процессы.
Приложение:
Ответ отправил: Lestat de Lionkur (статус: 3-ий класс)
Ответ отправлен: 28.10.2007, 01:33 Оценка за ответ: 4 Комментарий оценки: Большое спасибо. К сожилению не компилируется.
Отвечает: Mihail Yarlykov
Здравствуйте, MARTALEX!
Вот небольшой код - получает и выводит список процессов.
Структура PROCESSENTRY32 entry содержит данные о процессе.
Приложение:
--------- Нет ничего невозможного!
Ответ отправил: Mihail Yarlykov (статус: 3-ий класс)
Ответ отправлен: 28.10.2007, 07:55 Оценка за ответ: 5 Комментарий оценки: Большое спасибо. Тлько хотелось бы отметить, что бы вы в следующий раз писали с комментариями.
Отвечает: CruelHity
Здравствуйте, MARTALEX!
Вопрос кончено чуть не суда надо было задавать!А в системное программировани WinApi! так как для разных ОС разные способы! Для виндовс пример в приложении!
Вот отрывок из справочника
//________________________________________
Как получить список всех запущенных процессов и потоков?
Для Windows 9x:
используйте CreateToolhelp32Snapsot/ Process32First(Process32Next)/ Thread32First(Thread32Next).
Для WinNT:
NTQuerySystemInformation. А можно так: получаете список окон в системе (каким угодно способом, если нужны только процессы - можно ограничиться top-level), далее - GetWindowTreadProcessID - получаете ID процесса (и нити). OpenProcess - дает handle процесса.
Приложение:
Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 28.10.2007, 10:00 Оценка за ответ: 4 Комментарий оценки: Спасибо. Но к сожалению повторный ответ.