Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 23:07   #11
nls
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вам надо писать так:
Код:
PAnsiChar(AnsiString(Temp+'путь'))
Всё равно не помогло. Гляньте проект, плиз. Он небольшой.
nls вне форума Ответить с цитированием
Старый 27.12.2011, 23:16   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure InjectDll(TargetId: cardinal; DllName: String);
var
  BytesWrite    : cardinal;
  ParamAddr     : pointer;
  pThreadStart  : pointer;
  Hdl           : cardinal;
  hThread       : cardinal;
  hRemoteThread : Cardinal;
begin
  ChangePrivilege('SeDebugPrivilege', True);
  Hdl := OpenProcess(PROCESS_ALL_ACCESS, false, TargetId);
  ParamAddr := VirtualAllocEx(Hdl, nil, Length(DllName)+1, MEM_COMMIT or MEM_RESERVE,PAGE_EXECUTE_READWRITE);//терминал тоже надо.*
  WriteProcessMemory(Hdl,  ParamAddr, PAnsiChar(AnsiString(DllName)), Length(DllName)+1, BytesWrite);//аналогично+именно тут нам нужна строка нужного формата(Ansi)*
  pThreadStart := GetProcAddress(GetModuleHandle('KERNEL32.DLL'),'LoadLibraryA');
  hThread  := CreateRemoteThread(Hdl, nil, 0, pThreadStart, ParamAddr, 0,hRemoteThread);
  WaitForSingleObject(hThread, INFINITE);
  CloseHandle(hThread);
  VirtualFreeEx(Hdl,ParamAddr,0,MEM_RELEASE);//уборка за собою.
  CloseHandle(Hdl);//тоже надо.
end;

function AutoInject(param:pointer):integer;stdcall;//прототип пишем как положено.*
var
   pID: cardinal;
begin
    while True do
    begin
        pID := GetProcessID('notepad.exe');

        if pID <> 0 then
            begin
            Temp := GetEnvironmentVariable('TEMP');
            InjectDll(pID,Temp+'/1.dll');//вы на типы вообще смотрите?*
            Sleep(500);
            PostMessage(Form1.Handle, WM_CLOSE, 0, 0);
            end
            else
        Sleep(500);
    end
  end;
да и вообще не вижу смысла тут создавать потока.

вердикт, не знание основ.
исправления пометил комментариями.(не все исправления критичные(хотя для меня все), звездочка это явные ошибки, остальное огрехи(я считаю критичным))
да и коду многого не хватает на звание отличного.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 27.12.2011 в 23:20.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.12.2011, 23:50   #13
nls
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
исправления пометил комментариями.(не все исправления критичные(хотя для меня все), звездочка это явные ошибки, остальное огрехи(я считаю критичным))
Огромное спасибо за поправки! Сейчас вставил исправленный код и всё заработало как надо.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
да и коду многого не хватает на звание отличного.
Для меня и моих юзеров главное чтобы программа работала и выполняла свою работу. А так учту, конечно.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вердикт, не знание основ.
Тоже согласен!

В общем, проблема решена! Всем спасибо!
nls вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как string перевисти в PAnsiChar? jeki0 Общие вопросы Delphi 8 07.01.2011 18:41
Конвертация String в PAnsiChar в Delphi vandrouny Помощь студентам 5 28.10.2010 22:27
из String в Pansichar пауэрлифтинг Общие вопросы Delphi 10 05.02.2010 02:40
как из string перевести в PAnsiChar Sparky Общие вопросы Delphi 3 29.08.2009 14:12
pansichar to string Toxa Общие вопросы Delphi 16 31.05.2007 13:40