Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Если не знаете где спросить , спросите здесь!

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C/C++ только в данном разделе

Ответ
 
Опции темы
Старый 13.11.2011, 16:42   #31
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от moloko911Посмотреть сообщение
1)vb
2)Правда то что vb.Net догоняет по всем параметрам Delphi и c++
3)это вопрос!

Делфи и Бейсик ничто перед C

Добавлено через 1 час 24 минуты
Недавно был вопрос, о том как работает Parallel.For
Топик удален, но соображения свои, пожалуй, выложу.

Если вас интересует, какие процессы будут протекать в программе,
То могу предположить,
что создаются и запускаются нити(=потоки, нитями начали называть из-за дословного перевода англ. Thread - нить))
, в каждой из которых выполняются действия, определенные вами в делегате,
который передается функции For. Вполне логично что каждый поток соответствует некоторой итерации(шагу) цикла.

Далее, исходя из того, что PLINQ разрабатывали крутые ребята из мелкософта,
думаю они обустроили и распределение итераций на поток,
поскольку процессоры сейчас хоть и многоядерные, но ресурсы все же небезграничны.
То-бишь службы интегрированных запросов должны подсчитать сколько потоков они могут запустить без ущерба,
распределить итерации между этими потоками, тогда в каждом потоке последовательно выполнится по несколько шагов.

Ну и с потоковой безопасностью они что нибудь должны были запилить, дабы заботливо избавить программеров от ексепшенов,
к примеру по поводу доступа к контролам из левых нитей)

Конкретно в вашем случае, параллельные запросы можно было бы заменить так:
Допустим мы уже написали класс для работы с сокетами - sock, в нем есть функция:
__•отправка - Send(string host, byte[] message, int endPort, int localPort, Action onResponse);
__//первый аргумент - адрес хоста, второй - передаваемый буффер, третий - порт на конечном узле, четвертый - порт на который к нам придет ответ,
__//ну и последний - делегат кэллбэка, действия выполняемого при получении ответа.
•Ну и еще чуть-чуть напряжем фантазию, и представим что есть у нас лист массивов байтов - List<byte[]> messages, которые мы и будем перебирать.
•Определять свободные процессоры мы не будем, и распределять между ними действия тоже, просто переберем массив, что бы казаться умнее скажу - асинхронно).
•Еще каплю воображения - пусть будет у нас глобальная переменная типа int с именем port)
•Ну и есть у нас собственно функция отправки сих сообщений:
Код:
for(int i=0;i<messages.Length;++i)
{
new Thread(()=>
{
sock socket = new sock();
socket.Send("youtube.com", messages[i], 8080, port++, (result)=>
{
this.BeginInvoke(()=>
{
ListBox1.Items.Add(result);
});
});
}.Start();
}
Как вы могли заметить для создания делегата я использую LINQ, но,
что бы полностью заменить интегрированные запросы можно изменить в коде LINQ выражение
(/*arguments*/) => {/*actions*/} следующим образом:


__•Создать функции:
Код:
public void _addToList(string str)
{
ListBox1.Items.Add(str);
}
public void _callBack(string result){
this.BeginInvoke(addToList(result));
}
__•И объявить прототипы и делегаты:
Код:
public delegate void PCallBack(string result);
public delegate void PAddToList(string str);
PCallBack callBack;
PAddToList addToList;
__•Проинициализировать их в конструкторе:
Код:
callBack = _callBack;
addToList = _addToList;
__•Вместо LINQ выражений передавать созданные выше делегаты



__•Воспользоваться т.н. анонимными методами, имеющими конструкцию delegate() {}, довольно схожую с LINQ выражением () => {}; Точно также, как ранее в интегрированных запросах, в круглых скобках указываем аргументы, в фигурных выполняем какие-либо действия
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой

Последний раз редактировалось •theSaboteur•; 13.11.2011 в 18:04. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 13.11.2011, 21:44   #32
 Разведчик
Аватар для Draiget
 
Draiget вызывает надежду
Регистрация: 15.04.2011
Сообщений: 0
Популярность: -36
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Здравствуйте,
Гугл молчит в отношении того как изменить значение с помощью VAMemory на шарпе, по адресу: client.dll+6F42F0 в определенном процессе. Кто нибудь знает?
  Ответить с цитированием
Старый 13.11.2011, 22:33   #33
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от DraigetПосмотреть сообщение
Здравствуйте,
Гугл молчит в отношении того как изменить значение с помощью VAMemory на шарпе, по адресу: client.dll+6F42F0 в определенном процессе. Кто нибудь знает?

Код:
byte buffer = 0x01
VAMemory writer = new VAMemory("client.exe");
writer.WriteByte((IntPtr)writer.getBaseAdress()+(IntPtr)0x6F42F0, buffer);
Вместо WriteByte используешь функцию соответствующую твоему типу данных. Если узаешь какой-то кастомный - переводи в байты и пиши функцией WriteByteArray();
•Прототип функций этой библиотеки
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой

Последний раз редактировалось •theSaboteur•; 13.11.2011 в 22:39.
  Ответить с цитированием
Старый 13.11.2011, 23:11   #34
 Разведчик
Аватар для Draiget
 
Draiget вызывает надежду
Регистрация: 15.04.2011
Сообщений: 0
Популярность: -36
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Хм, что-то он ошибкой срет:

"VAMemory" не содержит определения для "getBaseAdress" и не был найден метод расширения "getBaseAdress", принимающий тип "VAMemory" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)

Для getBaseAdress какие библиотеки нужны?

Тип значения у меня 4 байтный. У процесса engine.exe, есть адрес: client.dll+6F42F0, и надо сменить его значение...
  Ответить с цитированием
Старый 14.11.2011, 00:01   #35
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от DraigetПосмотреть сообщение
Хм, что-то он ошибкой срет:

"VAMemory" не содержит определения для "getBaseAdress" и не был найден метод расширения "getBaseAdress", принимающий тип "VAMemory" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)

Для getBaseAdress какие библиотеки нужны?

Тип значения у меня 4 байтный. У процесса engine.exe, есть адрес: client.dll+6F42F0, и надо сменить его значение...

Да, я несколько не верно понял вопрос, getBaseAddress (не помню как точно в этой библиотеке она пишется) возвращает базовый адресс процесса.
Соответственно тебе необходимо вместо него нужно впихнуть адрес этой либы.
Что бы его получить, можно узать IntPtr CreateToolhelp32Snapshot(0x00000008, PID);
Вызывать сие чуда из kernel32.dll
Собственно создаешь структуру MODULEENTRY32, перечисляешь все модули процесса с помощью Module32First Module32Next, проверяешь у каждого модуля поле szModule, пока не встретишь client.dll. У модуля client.dll читаешь поле modBaseAddress.
Далее просто пишешь по полученому адресу+6F42F0, то, что тебе требуется.
Более точно написать не могу - надо студию запускать, проверять... лень)

[Ссылки могут видеть только зарегистрированные пользователи. ]


===================
Нда.. Только что погуглил - оказывается майкрософт все сделал:
Код:
IntPtr getAddr(Process process){
foreach(ProcessModule module in process.Modules){
if(module.ModuleName == "client.dll"){
return module.BaseAddress;
}
}}
Или еще короче, с LINQ
Код:
IntPtr addr = from item in proc.Modules
    where item.ModuleName == "client.dll"
    select item.BaseAddress;
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
  Ответить с цитированием
Старый 14.11.2011, 07:26   #36
 Разведчик
Аватар для Draiget
 
Draiget вызывает надежду
Регистрация: 15.04.2011
Сообщений: 0
Популярность: -36
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Хм, на 1 код он ругается, почему ретурн в ифе, когда должен возвращать значение getAddr(Process); ?

Во 2 случае он ругается на:

IntPtr addr = from item in proc.Modules
where item.ModuleName == "client.dll"
select item.BaseAddress;

- Неявное преобразование типа "System.Collections.Generic.IEnumerable<System.Int Ptr>" в "System.IntPtr" невозможно...
  Ответить с цитированием
Старый 14.11.2011, 09:22   #37
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от DraigetПосмотреть сообщение
Хм, на 1 код он ругается, почему ретурн в ифе, когда должен возвращать значение getAddr(Process); ?

Во 2 случае он ругается на:

IntPtr addr = from item in proc.Modules
where item.ModuleName == "client.dll"
select item.BaseAddress;

- Неявное преобразование типа "System.Collections.Generic.IEnumerable<System.Int Ptr>" в "System.IntPtr" невозможно...

Человечек, да вам не чтение памяти нада, вам элементарные основы надо учить, если вы не можете сделать сами
1) элементарное приведение типов:
int res=25;
MessageBox.Show(res);//ошибка здесь будет так как типы не приведены!

2) return находится только в процедурах и должен возвращать приведенный тип данных!!!
string lol()
{
int res=5;
return res;//будет ошибка на непреведенный тип(правильно return res.ToString());
}
void lol()
{
///
return...//Всегда будет ошибка, так как неуправляемая функция не возвращает ничего!
}

Последний раз редактировалось Hermein; 14.11.2011 в 09:27.
  Ответить с цитированием
Старый 14.11.2011, 13:41   #38
 Разведчик
Аватар для Draiget
 
Draiget вызывает надежду
Регистрация: 15.04.2011
Сообщений: 0
Популярность: -36
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от HermeinПосмотреть сообщение
2) return находится только в процедурах и должен возвращать приведенный тип данных!!!
string lol()
{
int res=5;
return res;//будет ошибка на непреведенный тип(правильно return res.ToString());
}
void lol()
{
///
return...//Всегда будет ошибка, так как неуправляемая функция не возвращает ничего!
}

Я это и имел ввиду, я знаю про воиды (static int\string etc.) достаточно.

Цитата:
Хм, на 1 код он ругается, почему ретурн в ифе, когда должен возвращать значение getAddr(Process); ?

Просто не совсем корректно сформулировал вопрос. В функции getAdr, ретурн не там, такой код верный:

PHP код:
IntPtr getAddr(Process process)
        {
            
IntPtr test = (IntPtr)0x006F4274;
            foreach (
ProcessModule module in process.Modules)
            {
                if (
module.ModuleName == "client.dll")
                {
                    
test module.BaseAddress;
                }
            }
            return 
test;
        } 
Он хоть ошибок не вызывает. Но я все равно никак не получается сделать чтобы он брал адресс типа: client.dll+0x*

Я не силен в редактировании памяти, только начал изучать в гугле, но там статьи с использованием VAMemory только для таких адресов, как: 0x* в моем случае client.dll+0x*, я не знаю как перевести адрес client.dll в формат 0x*, мне это не кажется возможным. (Convert.To*() - не катит)

Добавлено через 53 минуты
Если делать так:


Код:
        IntPtr getAddr()
        {
            Process myProcess = new Process();
            ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("hl2.exe");
            myProcess.StartInfo = myProcessStartInfo;

            IntPtr test = (IntPtr)0x6F42F0;
            
            foreach (ProcessModule module in myProcess.Modules)
            {
                if (module.ModuleName == "client.dll")
                {
                    test = module.BaseAddress;
                }
            }

            return test;
        }

        

        private void button1_Click(object sender, EventArgs e)
        {
            
            

            VAM = new VAMemory("hl2");
            VAM.WriteByte(getAddr() + (IntPtr)0x6F42F0, 2);
          
        }
Тогда он ругается на:

Оператор "+" не может применяться к операндам типа "System.IntPtr" и "System.IntPtr"

Как быть?

Добавлено через 1 час 47 минут
Самый оптимальный вариант, только он походу не ищет адрес длл-ки, или ищет но очень криво. Если раскоменитить:
Код:
//MessageBox.Show(Convert.ToString("DLL: " + (IntPtr)getAddr() + "\nAdress (0x6F42F0): " + (IntPtr)0x6F42F0));
Он выводит: DLL: 0 & Adress: 7291632


Код:
 IntPtr getAddr()
        {
            Process[] ProcessList = System.Diagnostics.Process.GetProcessesByName("hl2");

            IntPtr BaseAddress = IntPtr.Zero;
            if (ProcessList.Length > 0)
            {
                Process MYPROCESS = ProcessList[0];
                foreach (System.Diagnostics.ProcessModule Module in MYPROCESS.Modules)
                {
                    if (Module.ModuleName == "client.dll")
                        BaseAddress = Module.BaseAddress;
                }
            }
            else
            {
                MessageBox.Show("hl2.exe not started","Error");
            }
                return BaseAddress;
        }

        

        private void button1_Click(object sender, EventArgs e)
        {
  
            VAM = new VAMemory("hl2");
            VAM.WriteByte((IntPtr)getAddr() + 0x6F42F0, 2);
            //MessageBox.Show(Convert.ToString("DLL: " + (IntPtr)getAddr() + "\nAdress (0x6F42F0): " + (IntPtr)0x6F42F0));         
        }
Why?

Последний раз редактировалось Draiget; 14.11.2011 в 15:29. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 14.11.2011, 22:55   #39
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Draiget, во-первых давайте не будем придираться к мелочам реализации.
Во-вторых client.dll переводить ни во что не надо.
Вам надо прочитать поле BaseAddress экземпляра класса ProcessModule,
соответствующего вашей client.dll.
То-бишь вы перебираете модули процесса, находите в нем тот страшный модуль,
поле которого ModuleName соответствует "client.dll",
адресом модуля будет содержимое поля BaseAddress! К нему вы просто добавляете нужный оффсет и читаете/пишете по этому адресу.
Написал небольшой, малость кривоватый пример:
[Ссылки могут видеть только зарегистрированные пользователи. ]
ВТ не выкладываю, поскольку это архив, да и исходники собственно говоря безвредны)

Добавлено через 11 минут
Да, и по поводу "криво ищет", вы это о чем? О том что указатель отображается в десятичной сс?
И еще поправочка
Ну а что касается сложения IntPtr, то это как раз "мелочи реализации", мне не хотелось включать студию, проверять код, поэтому я несколько опечатался) к Хэндлу(т.е. IntPtr) вполне можно прибавить обычный int (который собственно является оффсетом). А что бы все выглядело эдак по-красивому, ООП'шно, словом выпендрежно, можно написать IntPtr.Add(IntPtr pointer, int offset);
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой

Последний раз редактировалось •theSaboteur•; 15.11.2011 в 16:02. Причина: Исправлена опечатка
  Ответить с цитированием
Старый 15.11.2011, 13:38   #40
 Разведчик
Аватар для Draiget
 
Draiget вызывает надежду
Регистрация: 15.04.2011
Сообщений: 0
Популярность: -36
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от •theSaboteur•Посмотреть сообщение
Что-то вы насчет ретурн'ов замудрили, возвращать лучше сразу как найдешь модуль клиент.длл, к чему проходить лишние айтемы множества?
Код:
IntPtr getAddr(Process process)
        {
            IntPtr test = (IntPtr)0x006F4274;
            foreach (ProcessModule module in process.Modules)
            {
                if (module.ModuleName == "client.dll")
                {
                     return module.BaseAddress;
                }
            }
        }
[/more]

Этот код не работает:

"Test.Form1.getAddr(System.Diagnostics.Process )": не все ветви кода возвращают значение

ИМХО ретурн кривой.
А так, спасибо за пример, вот только мне-бы это переделать в поиск процесса именно с именем "text.exe", и именно с модулем "client.dll", а так все прекрасно. Попробую сам нагуглить, но если поможете, напишите.
  Ответить с цитированием
Старый 15.11.2011, 15:10   #41
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Ну все верно если не находит то нечего и возвращать
Код:
IntPtr getAddr(Process process)
        {
            IntPtr test = (IntPtr)0x006F4274;
var res=null;
            foreach (ProcessModule module in process.Modules)
            {
                if (module.ModuleName == "client.dll")
                {
                     res= module.BaseAddress;
                }
            }
return res;
        }
  Ответить с цитированием
Старый 15.11.2011, 15:13   #42
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от DraigetПосмотреть сообщение
Этот код не работает:

"Test.Form1.getAddr(System.Diagnostics.Process )": не все ветви кода возвращают значение

ИМХО ретурн кривой.
А так, спасибо за пример, вот только мне-бы это переделать в поиск процесса именно с именем "text.exe", и именно с модулем "client.dll", а так все прекрасно. Попробую сам нагуглить, но если поможете, напишите.

Господи.. После цикла надо вписать ретурн налл, или если я не ошибаюсь хэндл null принимать не способен, но можно просто возвратить 0)
Если этого не сделать - не удастся скомпилировать код, поскольку компилятор не будет "знать", что возвратить в случае если результат проверки отрицательный
т.е.
Код:
IntPtr getAddr(Process process)
        {
            IntPtr test = (IntPtr)0x006F4274;
            foreach (ProcessModule module in process.Modules)
            {
                if (module.ModuleName == "client.dll")
                {
                     return module.BaseAddress;
                }
            }
return (IntPtr)0;
        }
Таким образом, сразу как цикл находит модуль client.dll,
функция возвращает значение и, соответственно, прекращает свою работу.
Если такой модуль не встречается, то после цикла возвращается нулевое значение)
В главном модуле твоей программы просто вызываешь эту функцию для определения адреса, проверяешь не равен-ли он нулю, и если адрес валидный пытаешься переписать память)

===============
added: 21:28 15.11.11
===============
Не успел отправить)..

===============
added: 21:38 15.11.11
===============
Мда.. Кто ж так репу загадил?).. И за что, хотелось бы выслушать вашу критику
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой

Последний раз редактировалось •theSaboteur•; 15.11.2011 в 21:45. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 19.11.2011, 04:01   #43
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Понадобилось написать небольшой регистратор для твиттера... но никак не могу разобрать POST запрос на регистрацию...
Код:
string post_data = "authenticity_token=&user%5Bname%5D="+user_name+
                                                 "&user%5Bemail%5D="+user_mail+
                                        "&user%5Buser_password%5D="+user_password+
                                          "&user%5Bscreen_name%5D="+user_nick+
            "&user%5BBremember_me_on_signup%5D=1&user%5Bremember_me_on_signup%5D=&context=front&user%5Bdiscoverable_by_email%5D=1&user%5Bsend_email_newsletter%5D=1";

            string uri = "https://twitter.com/account/create";
            HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create(uri);

            request.KeepAlive = false;
            request.Timeout = 5000;
            request.Method = "POST";

            byte[] postBytes = Encoding.ASCII.GetBytes(post_data);

            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postBytes.Length;
            Stream requestStream = request.GetRequestStream();

            requestStream.Write(postBytes, 0, postBytes.Length);
            requestStream.Close();
Так я отправляю свой запрос... но акк не создается...
Возможные ошибки:
1) Кодировка запроса (пробовал разные, не помогло, возможно что то не проверилось из за капчи)
2) сервер проверяет не только 1 запрос, а еще и куки который выдается на странице регистрации...
возможно что то упустил кроме этого...
  Ответить с цитированием
Старый 20.11.2011, 14:04   #44
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Цитата:
Сообщение от SinyssПосмотреть сообщение
Возможные ошибки:

Ошибка 1-у тебя вообще запрос не отправляется!
HttpWebResponse response = (HttpWebResponse)request.GetResponse();//отправляем запрос
  Ответить с цитированием
Старый 20.11.2011, 15:09   #45
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Если не знаете где спросить , спросите здесь!

Извиняюсь, случайно вырезал тот кусочек кода,
Код:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            new StreamReader(response.GetResponseStream()).ReadToEnd();
            listBox5.Items.Add(response.StatusCode);  // нечто вроде лога...
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обсуждение] Если не знаете где спросить , спросите здесь! тема №2. object Баги игр ВКонтакте 199 01.02.2012 20:52
Если вы ненашли тему где спросить...спросите здесь!(часть вторая) HellFire Свободное обсуждение 290 02.10.2010 11:26
Если не знаете где спросить , спросите здесь! тема №1 AsPin Баги игр ВКонтакте 56 22.06.2010 13:42

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 16:35.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net