Поиск:

Ответ в темуСоздание новой темы Создание опроса
> EnumChildWindow() - не находит HWND 
:(
    Опции темы
fridkaratel
Дата 22.10.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



блин... я такую же таблицу видел в дебаггере, когда пытался найти таблицу экспорта... smile

и еще - у меня ошибка выдавалась, мол не могу открыть файл... я думал-думал, а оказалось, что я просто директорию не поменял - по умолчанию при cmd стоит ведь "Мои документы", а программу я положил в C:\1... капец, короче... уже скарились мозги вконец...  smile 

Так, вот выкладываю таблицу...
Цитата

Turbo Dump  Version 5.0.16.12 Copyright © 1988, 2000 Inprise Corporation
                      Display of File FT.EXE

EXPORT ord:0048='__tpdsc__ TCCalendar'
EXPORT ord:0138='__tpdsc__ Cspin::TCSpinEdit'
EXPORT ord:0172='__tpdsc__ TPerformanceGraph'
EXPORT ord:0140='__tpdsc__ Cspin::TCSpinButton'
EXPORT ord:0137='__tpdsc__ Cspin::TTimerSpeedButton'
EXPORT ord:0070='__tpdsc__ Cdiroutl::TCDirectoryOutline'
EXPORT ord:0091='__tpdsc__ TCGauge'
EXPORT ord:0203='__tpdsc__ TTrayIcon'
EXPORT ord:0013='__linkproc__ About::Finalize'
EXPORT ord:0012='__linkproc__ About::Initialize'
EXPORT ord:0051='__linkproc__ Ccalendr::Finalize'
EXPORT ord:0050='__linkproc__ Ccalendr::Initialize'
EXPORT ord:0072='__linkproc__ Cdiroutl::Finalize'
EXPORT ord:0071='__linkproc__ Cdiroutl::Initialize'
EXPORT ord:0093='__linkproc__ Cgauges::Finalize'
EXPORT ord:0092='__linkproc__ Cgauges::Initialize'
EXPORT ord:0144='__linkproc__ Cspin::Finalize'
EXPORT ord:0143='__linkproc__ Cspin::Initialize'
EXPORT ord:0005='__linkproc__ Da_option::Finalize'
EXPORT ord:0004='__linkproc__ Da_option::Initialize'
EXPORT ord:0017='__linkproc__ Dl_go::Finalize'
EXPORT ord:0016='__linkproc__ Dl_go::Initialize'
EXPORT ord:0009='__linkproc__ Ext_mem1::Finalize'
EXPORT ord:0008='__linkproc__ Ext_mem1::Initialize'
EXPORT ord:0023='__linkproc__ Frm_bootromstartcmdretry::Finalize'
EXPORT ord:0022='__linkproc__ Frm_bootromstartcmdretry::Initialize'
EXPORT ord:0025='__linkproc__ Frm_com_option::Finalize'
EXPORT ord:0024='__linkproc__ Frm_com_option::Initialize'
EXPORT ord:0021='__linkproc__ Frm_formatoption::Finalize'
EXPORT ord:0020='__linkproc__ Frm_formatoption::Initialize'
EXPORT ord:0003='__linkproc__ Main::Finalize'
EXPORT ord:0002='__linkproc__ Main::Initialize'
EXPORT ord:0011='__linkproc__ Ok_wnd::Finalize'
EXPORT ord:0010='__linkproc__ Ok_wnd::Initialize'
EXPORT ord:0174='__linkproc__ Perfgrap::Finalize'
EXPORT ord:0173='__linkproc__ Perfgrap::Initialize'
EXPORT ord:0019='__linkproc__ Rb_go::Finalize'
EXPORT ord:0018='__linkproc__ Rb_go::Initialize'
EXPORT ord:0015='__linkproc__ Rb_option::Finalize'
EXPORT ord:0014='__linkproc__ Rb_option::Initialize'
EXPORT ord:0007='__linkproc__ Tboot_1::Finalize'
EXPORT ord:0006='__linkproc__ Tboot_1::Initialize'
EXPORT ord:0205='__linkproc__ Trayicon::Finalize'
EXPORT ord:0204='__linkproc__ Trayicon::Initialize'
EXPORT ord:0209='Cdiroutl::TCDirectoryOutline::'
EXPORT ord:0052='__fastcall Cdiroutl::TCDirectoryOutline::TCDirectoryOutline(Classes::TComponent *)'
EXPORT ord:0208='Cdiroutl::TCDirectoryOutline::APointer'
EXPORT ord:0053='__fastcall Cdiroutl::TCDirectoryOutline::AssignCaseProc()'
EXPORT ord:0054='__fastcall Cdiroutl::TCDirectoryOutline::BuildOneLevel(long)'
EXPORT ord:0056='__fastcall Cdiroutl::TCDirectoryOutline::BuildSubTree(long)'
EXPORT ord:0055='__fastcall Cdiroutl::TCDirectoryOutline::BuildTree()'
EXPORT ord:0057='__fastcall Cdiroutl::TCDirectoryOutline::Change()'
EXPORT ord:0058='__fastcall Cdiroutl::TCDirectoryOutline::Click()'
EXPORT ord:0059='__fastcall Cdiroutl::TCDirectoryOutline::CreateWnd()'
EXPORT ord:0067='Cdiroutl::TCDirectoryOutline::CurDir()'
EXPORT ord:0065='__fastcall Cdiroutl::TCDirectoryOutline::DriveToInt(char)'
EXPORT ord:0060='__fastcall Cdiroutl::TCDirectoryOutline::Expand(int)'
EXPORT ord:0062='__fastcall Cdiroutl::TCDirectoryOutline::ForceCase(const System::AnsiString&)'
EXPORT ord:0068='__fastcall Cdiroutl::TCDirectoryOutline::GetChildNamed(const System::AnsiString&, long)'
EXPORT ord:0227='Cdiroutl::TCDirectoryOutline::InvalidIndex'
EXPORT ord:0061='__fastcall Cdiroutl::TCDirectoryOutline::Loaded()'
EXPORT ord:0228='Cdiroutl::TCDirectoryOutline::RootIndex'
EXPORT ord:0063='__fastcall Cdiroutl::TCDirectoryOutline::SetDirectory(System::AnsiString)'
EXPORT ord:0064='__fastcall Cdiroutl::TCDirectoryOutline::SetDrive(char)'
EXPORT ord:0066='__fastcall Cdiroutl::TCDirectoryOutline::SetTextCase(Cdiroutl::TTextCase)'
EXPORT ord:0069='__fastcall Cdiroutl::TCDirectoryOutline::WalkTree(const System::AnsiString&)'
EXPORT ord:0213='Cspin::TCSpinButton::'
EXPORT ord:0094='__fastcall Cspin::TCSpinButton::TCSpinButton(Classes::TComponent *)'
EXPORT ord:0142='__fastcall Cspin::TCSpinButton::~TCSpinButton()'
EXPORT ord:0096='__fastcall Cspin::TCSpinButton::AdjustSize(int&, int&)'
EXPORT ord:0103='__fastcall Cspin::TCSpinButton::BtnClick(System::TObject *)'
EXPORT ord:0102='__fastcall Cspin::TCSpinButton::BtnMouseDown(System::TObject *, Controls::TMouseButton, System::Set<Classes::Classes__1, 0, 6>, int, int)'
EXPORT ord:0095='__fastcall Cspin::TCSpinButton::CreateButton()'
EXPORT ord:0141='__fastcall Cspin::TCSpinButton::Dispatch(void *)'
EXPORT ord:0109='__fastcall Cspin::TCSpinButton::GetDownGlyph()'
EXPORT ord:0107='__fastcall Cspin::TCSpinButton::GetUpGlyph()'
EXPORT ord:0101='__fastcall Cspin::TCSpinButton::KeyDown(unsigned short&, System::Set<Classes::Classes__1, 0, 6>)'
EXPORT ord:0106='__fastcall Cspin::TCSpinButton::Loaded()'
EXPORT ord:0097='__fastcall Cspin::TCSpinButton::SetBounds(int, int, int, int)'
EXPORT ord:0110='__fastcall Cspin::TCSpinButton::SetDownGlyph(Graphics::TBitmap *)'
EXPORT ord:0104='__fastcall Cspin::TCSpinButton::SetFocusBtn(Cspin::TTimerSpeedButton *)'
EXPORT ord:0108='__fastcall Cspin::TCSpinButton::SetUpGlyph(Graphics::TBitmap *)'
EXPORT ord:0105='__fastcall Cspin::TCSpinButton::WMGetDlgCode(Messages::TWMNoParams&)'
EXPORT ord:0100='__fastcall Cspin::TCSpinButton::WMKillFocus(Messages::TWMKillFocus&)'
EXPORT ord:0099='__fastcall Cspin::TCSpinButton::WMSetFocus(Messages::TWMSetFocus&)'
EXPORT ord:0098='__fastcall Cspin::TCSpinButton::WMSize(Messages::TWMSize&)'
EXPORT ord:0212='Cspin::TCSpinEdit::'
EXPORT ord:0111='__fastcall Cspin::TCSpinEdit::TCSpinEdit(Classes::TComponent *)'
EXPORT ord:0112='__fastcall Cspin::TCSpinEdit::~TCSpinEdit()'
EXPORT ord:0130='__fastcall Cspin::TCSpinEdit::CMEnter(Messages::TWMNoParams&)'
EXPORT ord:0126='__fastcall Cspin::TCSpinEdit::CMExit(Messages::TWMNoParams&)'
EXPORT ord:0129='__fastcall Cspin::TCSpinEdit::CheckValue(long)'
EXPORT ord:0117='__fastcall Cspin::TCSpinEdit::CreateParams(Controls::TCreateParams&)'
EXPORT ord:0118='__fastcall Cspin::TCSpinEdit::CreateWnd()'
EXPORT ord:0139='__fastcall Cspin::TCSpinEdit::Dispatch(void *)'
EXPORT ord:0123='__fastcall Cspin::TCSpinEdit::DownClick(System::TObject *)'
EXPORT ord:0113='__fastcall Cspin::TCSpinEdit::GetChildren(void __fastcall __closure(*)(Classes::TComponent *), Classes::TComponent *)'
EXPORT ord:0121='__fastcall Cspin::TCSpinEdit::GetMinHeight()'
EXPORT ord:0127='__fastcall Cspin::TCSpinEdit::GetValue()'
EXPORT ord:0116='__fastcall Cspin::TCSpinEdit::IsValidChar(char)'
EXPORT ord:0114='__fastcall Cspin::TCSpinEdit::KeyDown(unsigned short&, System::Set<Classes::Classes__1, 0, 6>)'
EXPORT ord:0115='__fastcall Cspin::TCSpinEdit::KeyPress(char&)'
EXPORT ord:0119='__fastcall Cspin::TCSpinEdit::SetEditRect()'
EXPORT ord:0128='__fastcall Cspin::TCSpinEdit::SetValue(long)'
EXPORT ord:0122='__fastcall Cspin::TCSpinEdit::UpClick(System::TObject *)'
EXPORT ord:0125='__fastcall Cspin::TCSpinEdit::WMCut(Messages::TWMNoParams&)'
EXPORT ord:0124='__fastcall Cspin::TCSpinEdit::WMPaste(Messages::TWMNoParams&)'
EXPORT ord:0120='__fastcall Cspin::TCSpinEdit::WMSize(Messages::TWMSize&)'
EXPORT ord:0211='Cspin::TTimerSpeedButton::'
EXPORT ord:0131='__fastcall Cspin::TTimerSpeedButton::TTimerSpeedButton(Classes::TComponent *)'
EXPORT ord:0132='__fastcall Cspin::TTimerSpeedButton::~TTimerSpeedButton()'
EXPORT ord:0133='__fastcall Cspin::TTimerSpeedButton::MouseDown(Controls::TMouseButton, System::Set<Classes::Classes__1, 0, 6>, int, int)'
EXPORT ord:0134='__fastcall Cspin::TTimerSpeedButton::MouseUp(Controls::TMouseButton, System::Set<Classes::Classes__1, 0, 6>, int, int)'
EXPORT ord:0136='__fastcall Cspin::TTimerSpeedButton::Paint()'
EXPORT ord:0135='__fastcall Cspin::TTimerSpeedButton::TimerExpired(System::TObject *)'
EXPORT ord:0207='TCCalendar::'
EXPORT ord:0026='__fastcall TCCalendar::TCCalendar(Classes::TComponent *)'
EXPORT ord:0027='__fastcall TCCalendar::Change()'
EXPORT ord:0041='__fastcall TCCalendar::ChangeMonth(int)'
EXPORT ord:0028='__fastcall TCCalendar::Click()'
EXPORT ord:0030='__fastcall TCCalendar::DaysPerMonth(int, int)'
EXPORT ord:0031='__fastcall TCCalendar::DaysThisMonth()'
EXPORT ord:0049='__fastcall TCCalendar::Dispatch(void *)'
EXPORT ord:0032='__fastcall TCCalendar::DrawCell(int, int, const Types::TRect&, System::Set<Grids::Grids__3, 0, 2>)'
EXPORT ord:0033='__fastcall TCCalendar::GetCellText(int, int)'
EXPORT ord:0037='__fastcall TCCalendar::GetDateElement(int)'
EXPORT ord:0029='__fastcall TCCalendar::IsLeapYear(int)'
EXPORT ord:0043='__fastcall TCCalendar::NextMonth()'
EXPORT ord:0044='__fastcall TCCalendar::NextYear()'
EXPORT ord:0042='__fastcall TCCalendar::PrevMonth()'
EXPORT ord:0045='__fastcall TCCalendar::PrevYear()'
EXPORT ord:0035='__fastcall TCCalendar::SeTCCalendarDate(System::TDateTime)'
EXPORT ord:0034='__fastcall TCCalendar::SelectCell(int, int)'
EXPORT ord:0038='__fastcall TCCalendar::SetDateElement(int, int)'
EXPORT ord:0039='__fastcall TCCalendar::SetStartOfWeek(short)'
EXPORT ord:0040='__fastcall TCCalendar::SetUseCurrentDate(bool)'
EXPORT ord:0036='__fastcall TCCalendar::StoreCalendarDate()'
EXPORT ord:0046='__fastcall TCCalendar::UpdateCalendar()'
EXPORT ord:0047='__fastcall TCCalendar::WMSize(Messages::TWMSize&)'
EXPORT ord:0210='TCGauge::'
EXPORT ord:0073='__fastcall TCGauge::TCGauge(Classes::TComponent *)'
EXPORT ord:0090='__fastcall TCGauge::AddProgress(long)'
EXPORT ord:0074='__fastcall TCGauge::GetPercentDone()'
EXPORT ord:0075='__fastcall TCGauge::Paint()'
EXPORT ord:0079='__fastcall TCGauge::PaintAsBar(Graphics::TBitmap *, const Types::TRect&)'
EXPORT ord:0081='__fastcall TCGauge::PaintAsNeedle(Graphics::TBitmap *, const Types::TRect&)'
EXPORT ord:0078='__fastcall TCGauge::PaintAsNothing(Graphics::TBitmap *, const Types::TRect&)'
EXPORT ord:0080='__fastcall TCGauge::PaintAsPie(Graphics::TBitmap *, const Types::TRect&)'
EXPORT ord:0077='__fastcall TCGauge::PaintAsText(Graphics::TBitmap *, const Types::TRect&)'
EXPORT ord:0076='__fastcall TCGauge::PaintBackground(Graphics::TBitmap *)'
EXPORT ord:0082='__fastcall TCGauge::SeTCGaugeKind(TCGaugeKind)'
EXPORT ord:0086='__fastcall TCGauge::SetBackColor(Graphics::TColor)'
EXPORT ord:0084='__fastcall TCGauge::SetBorderStyle(Forms::TFormBorderStyle)'
EXPORT ord:0085='__fastcall TCGauge::SetForeColor(Graphics::TColor)'
EXPORT ord:0088='__fastcall TCGauge::SetMaxValue(long)'
EXPORT ord:0087='__fastcall TCGauge::SetMinValue(long)'
EXPORT ord:0089='__fastcall TCGauge::SetProgress(long)'
EXPORT ord:0083='__fastcall TCGauge::SetShowText(bool)'
EXPORT ord:0214='TPerformanceGraph::'
EXPORT ord:0145='__fastcall TPerformanceGraph::TPerformanceGraph(Classes::TComponent *)'
EXPORT ord:0147='__fastcall TPerformanceGraph::~TPerformanceGraph()'
EXPORT ord:0162='__fastcall TPerformanceGraph::DataPoint(Graphics::TColor, long)'
EXPORT ord:0164='__fastcall TPerformanceGraph::DisplayPoints(long)'
EXPORT ord:0167='__fastcall TPerformanceGraph::FirstY()'
EXPORT ord:0146='__fastcall TPerformanceGraph::GetBandCount()'
EXPORT ord:0148='__fastcall TPerformanceGraph::Initialize(long)'
EXPORT ord:0165='__fastcall TPerformanceGraph::LastY(int)'
EXPORT ord:0168='__fastcall TPerformanceGraph::NextY(int)'
EXPORT ord:0149='__fastcall TPerformanceGraph::Paint()'
EXPORT ord:0160='__fastcall TPerformanceGraph::PaintBar(Graphics::TColor, long, long)'
EXPORT ord:0161='__fastcall TPerformanceGraph::PaintLine(Graphics::TColor, long, long)'
EXPORT ord:0166='__fastcall TPerformanceGraph::ReallocHistory()'
EXPORT ord:0171='__fastcall TPerformanceGraph::Replay()'
EXPORT ord:0156='__fastcall TPerformanceGraph::RoundUp(long, long)'
EXPORT ord:0163='__fastcall TPerformanceGraph::ScrollGraph()'
EXPORT ord:0152='__fastcall TPerformanceGraph::SetBackColor(Graphics::TColor)'
EXPORT ord:0151='__fastcall TPerformanceGraph::SetForeColor(Graphics::TColor)'
EXPORT ord:0157='__fastcall TPerformanceGraph::SetGradient(long)'
EXPORT ord:0150='__fastcall TPerformanceGraph::SetGraphKind(TGraphKind)'
EXPORT ord:0153='__fastcall TPerformanceGraph::SetGridSize(long)'
EXPORT ord:0158='__fastcall TPerformanceGraph::SetGridlines(bool)'
EXPORT ord:0159='__fastcall TPerformanceGraph::SetPenWidth(long)'
EXPORT ord:0155='__fastcall TPerformanceGraph::SetScale(long)'
EXPORT ord:0154='__fastcall TPerformanceGraph::SetStepSize(long)'
EXPORT ord:0170='__fastcall TPerformanceGraph::ShiftY()'
EXPORT ord:0169='__fastcall TPerformanceGraph::Update()'
EXPORT ord:0215='TTrayIcon::'
EXPORT ord:0175='__fastcall TTrayIcon::TTrayIcon(Classes::TComponent *)'
EXPORT ord:0176='__fastcall TTrayIcon::~TTrayIcon()'
EXPORT ord:0200='__fastcall TTrayIcon::ApplicationHookProc(Messages::TMessage&)'
EXPORT ord:0190='__fastcall TTrayIcon::DoClick()'
EXPORT ord:0191='__fastcall TTrayIcon::DoDblClick()'
EXPORT ord:0188='__fastcall TTrayIcon::DoMessage(Messages::TMessage&)'
EXPORT ord:0193='__fastcall TTrayIcon::DoMouseDown(Controls::TMouseButton, System::Set<Classes::Classes__1, 0, 6>, int, int)'
EXPORT ord:0192='__fastcall TTrayIcon::DoMouseMove(System::Set<Classes::Classes__1, 0, 6>, int, int)'
EXPORT ord:0194='__fastcall TTrayIcon::DoMouseUp(Controls::TMouseButton, System::Set<Classes::Classes__1, 0, 6>, int, int)'
EXPORT ord:0195='__fastcall TTrayIcon::DoOnAnimate(System::TObject *)'
EXPORT ord:0186='__fastcall TTrayIcon::EndSession()'
EXPORT ord:0184='__fastcall TTrayIcon::GetAnimate()'
EXPORT ord:0182='__fastcall TTrayIcon::GetAnimateInterval()'
EXPORT ord:0202='__fastcall TTrayIcon::GetHandle()'
EXPORT ord:0178='__fastcall TTrayIcon::Loaded()'
EXPORT ord:0196='__fastcall TTrayIcon::Minimize()'
EXPORT ord:0177='__fastcall TTrayIcon::Notification(Classes::TComponent *, Classes::TOperation)'
EXPORT ord:0197='__fastcall TTrayIcon::Restore()'
EXPORT ord:0185='__fastcall TTrayIcon::SetAnimate(bool)'
EXPORT ord:0183='__fastcall TTrayIcon::SetAnimateInterval(int)'
EXPORT ord:0201='__fastcall TTrayIcon::SetDefaultIcon()'
EXPORT ord:0181='__fastcall TTrayIcon::SetHide(bool)'
EXPORT ord:0180='__fastcall TTrayIcon::SetHint(System::AnsiString)'
EXPORT ord:0199='__fastcall TTrayIcon::SetIconIndex(int)'
EXPORT ord:0179='__fastcall TTrayIcon::SetVisible(bool)'
EXPORT ord:0187='TTrayIcon::ShiftState()'
EXPORT ord:0189='__fastcall TTrayIcon::ShowMenu()'
EXPORT ord:0198='__fastcall TTrayIcon::Update()'
EXPORT ord:0226='_COM_Option'
EXPORT ord:0220='_Form_About'
EXPORT ord:0217='_Form_DA_Option'
EXPORT ord:0222='_Form_DL_GO'
EXPORT ord:0219='_Form_OK'
EXPORT ord:0223='_Form_RB_GO'
EXPORT ord:0221='_Form_RB_Option'
EXPORT ord:0224='_FormatOption'
EXPORT ord:0216='_MainForm'
EXPORT ord:0001='__GetExceptDLLinfo'
EXPORT ord:0206='___CPPdebugHook'
EXPORT ord:0218='_ext_mem1Form'
EXPORT ord:0225='_frm_BromStartCmdRetry'

PM   Вверх
dumb
Дата 22.10.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



такое ощущение, что это программа, демонстрирующая возможности компонентов с закладки Samples...   у этой проги полезная функциональность есть вообще? smile
PM MAIL   Вверх
fridkaratel
Дата 22.10.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



smile да. У меня даже от нее исходники есть, правда 2001 года... от второй версии, а эта уже 4-й... smile

И дальше - больше, поэтому необходимо как-то научиться ей управлять, т.к. контролы меняться не так сильно будут, а вот функционал - сильно...

если есть необходимость  - могу дать ссылку для скачивания программы...
PM   Вверх
dumb
Дата 22.10.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(fridkaratel @  22.10.2007,  20:36 Найти цитируемый пост)
если есть необходимость
необходимость может быть только у тебя. у нас же - только любопытство и желание/нежелание помочь. smile

Цитата(fridkaratel @  22.10.2007,  20:36 Найти цитируемый пост)
могу дать ссылку для скачивания программы...
давно надо было.
PM MAIL   Вверх
586
Дата 22.10.2007, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



DLL
Код
#include <windows.h>
#include <vcl.h>
#include "CGAUGES.h"

#pragma argsused

// этими объектами можно управлять, как своими
// при изменении свойств объектов могут возникнуть проблемы с синхронизацией
// при чтении должно быть все нормально
TForm *MainForm=NULL;
TCGauge *CGauge1=NULL;

void Init()
{
  TForm **pForm=(TForm**)GetProcAddress(GetModuleHandle(NULL), "_MainForm");
  if(pForm==NULL)
  {
    /* ERROR: export not found */
  }
  else
  {
    MainForm=*pForm;
    if(MainForm==NULL)
    {
      /* ERROR: form is not accessible */
    }
    else
    {
      CGauge1=(TCGauge*)MainForm->FindComponent("CGauge1");
      if(CGauge1==NULL)
      {
        /* ERROR: CGauge not found */
      }
      else
      {
        CGauge1->Progress=50;  // for test
      }
    }
  }
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
{
    switch(dwReason)
    {
    case DLL_PROCESS_ATTACH:
        Init();
        break;
    }

    return 1;
}


программа-стартер
Код
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

HMODULE hRemoteModule=NULL;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;

  bool bSuccess=false;

  memset(&si, 0, sizeof(si));
  si.cb=sizeof(si);

  if(!CreateProcess(NULL, "..\\__test2\\project1.exe", 0, 0, FALSE, 0, 0, 0, &si, &pi))
  {
    ShowMessage(SysErrorMessage(GetLastError()));
  }
  else
  {
    DWORD res=WaitForInputIdle(pi.hProcess, 10000);    // 10 secs
    if(res==WAIT_TIMEOUT)
    {
      if(MessageBoxA(Handle, "Превышен предел ожидания. Уничтожить процесс?", 0, MB_YESNO | 16)==IDYES)
        TerminateProcess(pi.hProcess, 0);
    }
    else
    {
      String DllPath=ExtractFilePath(ExcludeTrailingBackslash(ExtractFilePath(Application->ExeName)));
      DllPath+="\\__test1\\project2.dll";
      LPVOID p=VirtualAllocEx(pi.hProcess, 0, DllPath.Length()+1, MEM_COMMIT, PAGE_READWRITE);
      if(!p)
      {
        ShowMessage("Can't Write Memory To Process: "+SysErrorMessage(GetLastError()));
      }
      else
      {
        if(!WriteProcessMemory(pi.hProcess, p, DllPath.c_str(), DllPath.Length()+1, NULL))
        {
           ShowMessage("Can't write to process memory");
        }
        else
        {
          FARPROC fp=GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
          if(!fp)
          {
            ShowMessage("Can't get address of kernel32.dll!LoadLibraryA");
          }
          else
          {
            HANDLE hThread=CreateRemoteThread(pi.hProcess, 0, 0, (LPTHREAD_START_ROUTINE)fp, (LPVOID)p, 0, NULL);
            if(!hThread)
            {
              ShowMessage("Can't create remote thread: "+SysErrorMessage(GetLastError()));
            }
            else
            {
              res=WaitForSingleObject(hThread, 10000);  // wait 10 secs

              if(res==WAIT_TIMEOUT)
              {
                if(MessageBoxA(Handle, "Поток завис. Завершить его?", 0, 16 | MB_YESNO)==IDYES)
                {
                  TerminateThread(hThread, 0);
                }
              }

              GetExitCodeThread(hThread, (LPDWORD)&hRemoteModule);
              if(hRemoteModule) bSuccess=true;
              else ShowMessage("Инициализация DLL в удалённом процессе завершена с ошибкой");
              CloseHandle(hThread);
            }  // hThread
          } // (!fp)
        } // write process memory
        VirtualFreeEx(pi.hProcess, p, DllPath.Length()+1, MEM_FREE);
      }  // virtual alloc
    }  // WaitForInputIdle(...) == WAIT_TIMEOUT

    CloseHandle(pi.hThread);
    CloseHandle(pi.hProcess);
  } // CreateProcess

  if(bSuccess) ShowMessage("Операция успешно завершена :)");
}

PM   Вверх
fridkaratel
Дата 23.10.2007, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



я могу дать и исходники тоже... ;) просто смысла не вижу особого - там все, практически, по-другому, версия ведь аж 2.0... smile

блин... не могу теперь ссылку на программу найти smile как быть? куда можно закачать? а то малький лимит размера прикрепленного файла... а он в архиве весит ~400 Кб...

Добавлено через 10 минут и 53 секунды
вот ссылка для скачивания с другого форума:
http://unlock.in.ua/forum/showpost.php?p=5&postcount=1

вот еще есть, правда версию не знаю:
http://siriust.ru/index_p.php?fid=2916

вот вроде как самая последняя версия... ;) Лучше ее скачать, а потом уже остальные, если  желание будет smile
http://profimobile.ru/list-files/view.php?...4&dir_id=82

А предложенный код уже можно пробовать? или это для ознакомления, чтобы с чего-то начать?
PM   Вверх
586
Дата 23.10.2007, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Цитата(fridkaratel @  23.10.2007,  05:18 Найти цитируемый пост)
это для ознакомления, чтобы с чего-то начать

да
PM   Вверх
fridkaratel
Дата 23.10.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



есть проблема... создаю New Application -> Other -> DLL Wizard, вставляю код в юнит, компилирую, потом создаю стартер и его запускаю... при нажатии на кнопку запускается программа, но стартер выдает ошибку: "Инициализация DLL в удалённом процессе завершена с ошибкой".

1. Правильно ли я создаю DLL? просто у тебя BOOL WINAPI DllMain, а у меня int WINAPI DllMain
2. Что делать?
PM   Вверх
dumb
Дата 23.10.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(fridkaratel @  23.10.2007,  14:10 Найти цитируемый пост)
Что делать?
судя по тому, что ты не смог разобраться с этим примером(а надо было лишь соблюсти правильность имен .exe/.dll), то тебе остается только просить кого-то сделать готовый механизм, так как этот пример нужно еще обработать напильником - добавить, как минимум, возможность взаимодействия(ipc) между dll и запускающей программой.
PM MAIL   Вверх
fridkaratel
Дата 23.10.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



в том то и дело, что я изменил имена всех программ и подключаемого DLL

Стартер - starter.exe
Модуль DLL - control.dll
Программа, которой необходимо управлять - ft.exe

Все это я поместил в папку C:\1, соответственно, измнил все пути на этот, чтобы не делать ExtractFilePath и т.п. вещей, и чтобы не запутаться в путях...

Но в итоге запускается по нажатию кнопки только программа, а модуль не подключается... я даже просмотрел список DLL, использующихся программой ft.exe
Выдается сообщение, которое я написал выше...

Так как быть ? smile

PS: а ничего страшного, если я вместо int WINAPI MAIN поставил твое значение - BOOL WINAPI MAIN?
PM   Вверх
586
Дата 23.10.2007, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Цитата(fridkaratel @  23.10.2007,  15:22 Найти цитируемый пост)
 а ничего страшного, если я вместо int WINAPI MAIN поставил твое значение - BOOL WINAPI MAIN? 

норм. Это одно и тоже.
Цитата(586 @  22.10.2007,  20:58 Найти цитируемый пост)
GetExitCodeThread(hThread, (LPDWORD)&hRemoteModule);
              if(hRemoteModule) bSuccess=true;
              else ShowMessage("Инициализация DLL в удалённом процессе завершена с ошибкой");

Тут идёт проверка, что вернула фунуция LoadLibraryA. Причина ошибки скорее из-за:
1. указан не правильный путь
2. DllMain вернула 0.


PM   Вверх
fridkaratel
Дата 23.10.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



проблема была в строке:
String DllPath=ExtractFilePath(ExcludeTrailingBackslash(ExtractFilePath(Application->ExeName)));

я сомневался и хотел почистить ее на c:\1, но решил, что тут идет какое-то специальное вычисление пути...
оказалось, что просто удаляет последний путь, то есть вместо c:\1\2 напишет c:\1.. smile

Все ок - работает ;)

Спасибо...

Только почему при наведении курсора на кнопку закрытия окна появляются сообщения "ОК"?

И как отслеживать изменение TCGauge?

PS: как я рад smile уже получается управлять, причем неплохо управлять... уже и на этом большое спасибо, жаль прав нет плюсики ставить, т.е. благодарить...
PM   Вверх
fridkaratel
Дата 24.10.2007, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



так, теперь необходимо не установить какие-либо параметры контролов, а получить при обновлении... какие здесь будут варианты? создать TTimer, который будет через определенное время посылать команды МП или создать TApplicationEvent, который будет перехватывать все сообщения? может есть еще что сделать можно?

PS: чувствую, что конец уже не за горами - и тема будет разобрана полностью 
PM   Вверх
586
Дата 24.10.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



А в чём конкретно проблемы? В динамическом создании TApplicationEvents? TTimer?
Я не знаю, как отследить изменение TCGauge. В exe-шнике экспортируется ф-ция __fastcall SetProgress(long). Можно попробовать её перехватить. 
Цитата(fridkaratel @  24.10.2007,  06:17 Найти цитируемый пост)
 или создать TApplicationEvent, который будет перехватывать все сообщения? 

Какие сообщения? CGauge же графический компонент, а не оконный. Если только другого характера сообщения перехватывать, напр. нажатие кнопки, изменение заголовка окна и т.п.

PS Выложи скрин окна программы, которую ты перехватываешь.

Это сообщение отредактировал(а) 586 - 24.10.2007, 21:30
PM   Вверх
fridkaratel
Дата 25.10.2007, 04:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



Вот... как происходит все:
1. Занести данные в файл, из которого ПСР автоматически подставляет данные в нужные поля
2. Нажать на кнопку Download
3. Получать значение TCGauge снизу

ВОт скрин...

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  __________.png 15,20 Kb
PM   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1114 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.