Программа выглядит примерно так: Code: #include <brain.h> #include <iostream> using namespace std; int main(void) { Открыть_MSDN(); int Result = Найти_соответствующую_функцию(POWER_OFF); if (!Result) cout << "Учись пользоваться MSDN" << endl; else { Вставить_в_нужный_кусок_кода($Result); } return 0; }
Не нашел, потому что shutdown это отдельная программа вызываемая из консоли, а не встроенная команда в CMD
Как в Qt4 работать виджеты на форме, в потоке? Пробовал так: Имеется поток: Code: class Func : public QThread, public Ui::QTsquareClass { public: void run() { QString str; str=aA->text(); //вылетает здесь, обращается к не инициализированному элементу } }; связывю кнопку и поток: Code: QTsquare::QTsquare(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags) { ui.setupUi(this); Func *thr=new Func; QObject::connect(ui.button,SIGNAL(clicked()),thr, SLOT(start())); } Выше приведенные действия ни к чему не приводят, прога вылетает. Не могу придумать как передать указатель на созданную форму в поток. UPD: Разобрался вопрос снимается.
Mitnick17, а тебе, что нужно? "не встроенные программы", это программы, находящиеся в директориях которые прописаны в path(набрать в path в cmd). >>%windir%/help/ntcmds.chm нужно в cmd набрать? провести столь безабидный эксперемент быстрее, чем написать сообщение на форум, ответ - да. а вообще, зря ты тут спросил, оффтопик какбе. тему бы создал новую лучше... хотя поздно уже
Вот столкнулся с такой проблемкой: Мне нужно вычитать область памяти, адрес которой известен(hex). Сразу в голове построился процесс написания программы и что буду использовать. Сразу решил использовать указатели. Но вот проблема - при вводе в консоль адреса ячейки, которым нужно инициализировать указатель, чет не то происходит - адрес присваивается, но значение не вычитывается(то есть не правильное ). 1. В какой тип переменной можно записать hex, а потом его использовать для инициализации указателя?(с интом чаром чет не вышло) 2. Мне нужно вычитать к примеру 50 адресов, идущих после известного. Инкримент указателя для этого подойдет? Смотрю, чет никто не отвечает. Вот к приведу пример как я делал: Code: void main() { int a = 19; cout << "a = " << a << "\n&a = " << &a << endl; } это код в одной проге. Я ее запускаю и вижу адрес переменной а в памяти. Далее я запускаю другую прогу, с кодом Code: void main() { int *a = (int*)0x0012FF60; //адрес переменной из 1-й проги cout << "a = " << a << "\n*a = " << *a << endl; } Видно что адрес в указателе сменился, а вот доступиться к значению не могу по нормальному((( А вообще нужно чтоб адрес был введен пользователем к примеру так: Code: char addr[10]; cin >> addr; // сюда вводится адрес из первой проги char *mem = (char*) addr; Подскажите плз, а то моск уже кипит от количеста перепробованных вариантов(((
2horlyk 1. память я надеюсь своего процесса? Если нет то читать из чужого ReadProcessMemory MSDN Если из своего, то просто по указателю. Чтото типа этого. int foo; int bar; foo = 0xXXXXXXXX; bar = *((int *)foo); для foo можно использовать любой тип, главное чтобы он был 4-x байтным. Если в следующий раз будет что-то не получатся - покажи код! 2. Да, но следи, чтобы указатель не вылетал за пределы выделенной памяти, а то схватишь access violation.
Да, именно в другом процессе. Так то оно выходит. Можно плз пример использования той ф-и, что ты мне дал в ссылке, а то я чет там ниче не понял.
2horlyk Небольшой ликбез. В винде каждый процесс имеет свое изолированное адресное пространство, напрямую недоступное из другого процесса. Чтобы прочитать из другого процесса необходимо получить описатель объекта ядра типа процесс, связанного с другим процессом. Для этого нужно воспользоваться функцией OpenProcess (если конечно мы сами его не создавали, тк CreateProcess в структуре PROCESS_INFORMATION вернет описатели созданного процесса и его первичного потока). HANDLE hProc; hProc = OpenProcess(PROCESS_VM_READ, NULL, PID); где PID - идентификатор процесса. Обрати внимание что перед этим необходимо установить привелегию seDebugPrivilege иначе читать нельзя будет, об этом читай здесь. далее используешь этот описатель в ReadProcessMemory: ReadProcessMemory(hProc, lpBaseAddress, ...); где lpBaseAddress - указатель на данные в удаленном потоке (тот самый foo в примере выше). Остальные параметры должны быть понятны.
Столкнулся с проблемой. Нужно прочитать из файла массив целочисленных переменных, как это можно реализовать. файл вида 12 54 65 43 23 23 54 32 65 63 и т.д. числа разделенны пробелом. Спасибо.
Здесь нужно уточнить, что в итоге должно получиться: одномерный массив со всеми числами, или двумерный...
в зависимости от ситуации и способа использования. Очень удобное делать так: сначала пингуеш его - чтобы отсеять те которые в офлайне компы. А потом короткий тестовый запрос на крутой ресурс. хотябы на главную страницу гугля. ну или на свой гейт который даст ответ. И тогда ты можеш смотреть как именно пашет прокси. Но чаще всего хватает уже пинга
Вот функция которая разбивает строку http://www.cplusplus.com/reference/clibrary/cstring/strtok/ а всё остальное стандартно...