Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Wolfas
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 128
1

Добавление *.exe файла из текущей папки

25.09.2011, 20:51. Просмотров 1247. Ответов 4
Метки нет (Все метки)

Доброго времени суток.
Столкнулся с такой проблемой:
Требуется добавить файл 123.exe из текущей директории(из директории, в который и запущена программа) в TScrollBox.
То есть, у меня вылезает сообщение "добавить файл в список", я нажимаю "Да" и файл 123.exe АВТОМАТИЧЕСКИ (никаких OpenDialog) добавляется в TScrollBox.
Delphi
1
ExtractFilePath(Application.ExeName+'123.exe');
Данный код не прокатывает, он не добавляет в ScrollBox.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2011, 20:51
Ответы с готовыми решениями:

Добавление файла в exe-файл с возможностью редактирования
Здравствуйте, есть exe-файл, скомпилированный на делфи, и двоичный файл, так...

Вызов функций одним exe-файлом из другого exe-файла
Попробовал написать две отдельно компилируемые программы на Delphi. Требуется в...

Открыть файл из папки с exe
Требуется открыть файл справки (Help.Chm), который находится в одной папке с...

Как присоединить к exe файлу произвольный файл, а при запуске exe файла открыть его
Есть файл, который представляет из себя набор других файлов ) и есть exe файл,...

Удалить все exe из папки кроме себя
Как это осуществить? fileslist:=tstringlist.create; if...

4
Zombi_sib
365 / 319 / 88
Регистрация: 26.05.2010
Сообщений: 746
Завершенные тесты: 1
25.09.2011, 21:10 2
что конкретно хочешь добавить в TScrollBox, насколько я помню он служит для задания области скролирования на форме в нее можно поместить объекты TControl, а что хотите вы сделать не понятно.
Может хотел использовать TListBox
0
Wolfas
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 128
25.09.2011, 21:20  [ТС] 3
Файлы, любого формата.
Вот полный код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
procedure TfrmFiles.AddFile; 
var
  I: Integer;
  Form: TfrmItem;
  FileName: string;
  lpSize: array [0..255] of Char;
  IDH: TImageDosHeader;
  INH: TImageNtHeaders;
  dwTemp: DWORD;
  IsEXE: Boolean;
begin
  if OpenDialog.Execute then
  begin
    for I := 0 to (OpenDialog.Files.Count - 1) do
    begin
      FileName := OpenDialog.Files[I];
      Form := TfrmItem.Create(frmFiles.ScrollBox);
      with Form do
      begin
        Parent := frmFiles.ScrollBox;
        Height := MinimizedHeight;
 
 
        Label1.Caption := ExtractFileName(FileName);
        Edit2.Text := ExtractFileName(FileName);
 
 
        Form.hFile := CreateFile(pChar(FileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
        fSize := Windows.GetFileSize(hFile, nil);
        Inc(TotalSize, fSize);
        StrFormatByteSize(fSize, lpSize, sizeof(lpSize) - 1);
        Label2.Caption := lpSize;
 
 
        ExtractIcon(FileName, Image1);
 
 
        ComboBoxEx1.ItemIndex := 0;
        ComboBoxEx2.ItemIndex := 2;
 
 
        IsEXE := False;
        ReadFile(Form.hFile, IDH, SizeOf(TImageDosHeader), dwTemp, nil);
        if IDH.e_magic = IMAGE_DOS_SIGNATURE then
        begin
          SetFilePointer(hFile, IDH._lfanew, nil, FILE_BEGIN);
          ReadFile(Form.hFile, INH, SizeOf(TImageNtHeaders), dwTemp, nil);
          if INH.Signature = IMAGE_NT_SIGNATURE then
          begin
            IsEXE := (INH.FileHeader.Characteristics and IMAGE_FILE_DLL = 0);
            Form.Alert := INH.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = 0;
          end;
        end;
 
 
        if not IsEXE then
          Form.ComboBoxEx2.ItemsEx.Delete(3);
 
 
        SetFilePointer(hFile, 0, nil, FILE_BEGIN);
 
 
        Show;
        RefreshStatusBar();
        Application.ProcessMessages;
      end;
 
 
      Inc(nFiles);
    end;
    frmFiles.ScrollBox.Refresh;
  end;
end;
0
deathNC
1892 / 1005 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
26.09.2011, 03:06 4
Цитата Сообщение от Wolfas Посмотреть сообщение
ExtractFilePath(Application.ExeName+'123.exe');
Разумеется, данный код не прокатит! Ведь он не правильный!
Вот как надо получать имя файла "123.exe" из папки с прогой:
Delphi
1
2
3
4
5
6
var
  FileName: String;
begin
  FileName := ExtractFilePath(ParamStr(0)) + '123.exe';
  // тут добавляй значение FileName куда надо - и всё готово!
end;
Добавлено через 1 минуту
Короче - ExtractFilePath(ParamStr(0)) даст тебе как раз путь к папке с прогой...
1
Wolfas
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 128
26.09.2011, 16:21  [ТС] 5
Спасибо!
0
26.09.2011, 16:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2011, 16:21

Добавление номера к имени папки
Всем привет. Подскажите пожалуйста, что я здесь не дописал или сделал...

Добавление папки через OpenDialog
Подскажите пожалуйста, как через OpenDialog добавить в список всю папку...

Добавление имени папки в файл.
Приветствую Вас! Есть необходимость считывать имя папки и записывать её в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru