Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.01.2011, 21:48
karpanter karpanter вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 7
Репутация: 10
По умолчанию Помогите найти ошибку

необходима прога для автоматической установки Netframework 2.0.,
что она делает:
1) проверяет есть ли Netframework 2.0
если да то на этом ее активность заканчивается, если нет то скачивает с офф сайта.
2) вопрос с установкой решен через батник.
Есть исходники, по ним она должна работать, но я видать что то упустил при компиле пишет GetinetFile never used непойму почему.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Wininet,registry;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function ShellExecute(hWnd: HWnd; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall;
function RunProcess (path, args : String) : THandle;
   var si : TStartupInfo;
       pi : TProcessInformation;
       cmdLine : String;
   Begin
      ZeroMemory(@si, sizeof(si));
      cmdLine :='"' + path + '" ' + args;
      if CreateProcess(nil, PCHAR(cmdLine) ,nil,nil,TRUE, 0 ,nil,nil,si, pi)
      Then Result := pi.hProcess
      Else Result := 0;
   End;
   function GetInetFile(const fileURL, FileName: string): boolean;
const
  BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: file;
  sAppName: string;
begin
  Result := False;
  sAppName := ExtractFileName(Application.ExeName);
  hSession := InternetOpen(PChar(sAppName),
  INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0);
    try
      AssignFile(f, FileName);
      Rewrite(f,1);
      repeat
        InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen);
      until
        BufferLen = 0;
      CloseFile(f);
      Result := True;
    finally
      InternetCloseHandle(hURL);
    end;
  finally
    InternetCloseHandle(hSession);
  end;
end;
  function GetWinDir: string;
var
reg: TRegistry;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion',true);
Result:=reg.ReadString('PathName');
reg.CloseKey;
reg.Free;
end;
procedure InstallNETFramework;
begin
if DirectoryExists(GetWinDir+'\Microsoft.NET\Framework\v2.0.50727')=false then
begin
GetInetFile('http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe',ExtractFilePath(Application.ExeName)+'dotnetfx.exe');
Sleep(1000);
ShellExecute(form1.handle,'open','bat.bat',nil,nil,SW_SHOW);
Sleep(1000000);
RunProcess('moy.exe','');
end;
end;
end;
Ответить с цитированием
  #2  
Старый 29.01.2011, 02:07
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,036
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

не занимайся ерундой.
тебе для своей программы все равно нужен инсталятор. А практически все инсталяторы поддеррживают эту фичу (или путь как сделать это всем известен - гугл в помощь).
Ответить с цитированием
  #3  
Старый 29.01.2011, 10:33
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Скорее всего, он тренируется/эксперементирует.
Я сам пробовал забабахать собственный инсталлятор, так что зря наезжаете.

P.S. И снова извините за бессодержательный коммент.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #4  
Старый 29.01.2011, 11:08
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Поддержу флейм не в тему. Давайте уже поможем человеку, не сложно же.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 29.01.2011, 14:02
karpanter karpanter вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

Жду помощи сенсеев)
Ответить с цитированием
  #6  
Старый 29.01.2011, 15:44
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

К.О. в лице меня намекает, что можно "протрейсить" программу и посмотреть, что где и почему (не)выполняется...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #7  
Старый 29.01.2011, 21:09
karpanter karpanter вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

Намеки это хорошо, но разбирающемуся человеку
Ответить с цитированием
  #8  
Старый 29.01.2011, 21:24
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Эм...

Ну, погугли про брейкпоинты в Delphi...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #9  
Старый 29.01.2011, 23:05
karpanter karpanter вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

Мб кто то посмотрев мой код подправит его и выложит рабочий?)
Ответить с цитированием
  #10  
Старый 30.01.2011, 09:56
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Уважаемый!
Предлагаю такой вариант:
Просто вместо запуска программы нажимай кнопочку F7 до посинения, и запомни строчку, на которой происходит ошибка. Вот её-то нам и сообщите.
Собственно, на это и намекал тебе ув. тов. DJ PhoeniX.

В идеале лучше использовать сначала BreakPoint, а потом F7, но раз ты не знаешь процедуры отладки, то тебе поможет только гугл. Да, это facepalm.

А решать проблему за тебя никто тут не будет, скорее всего. Никто никому тут ничем не обязан. Я бы тебе помог, но я и сам не знаю, в чём проблема.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #11  
Старый 30.01.2011, 13:17
karpanter karpanter вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

[Hint] Unit1.pas(45): Value assigned to 'GetInetFile' never used
[Error] Unit1.pas(90): BEGIN expected but END found
[Error] Unit1.pas(92): Declaration expected but end of file found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Ответить с цитированием
  #12  
Старый 30.01.2011, 13:23
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Цитата:
Сообщение от karpanter
[Hint] Unit1.pas(45): Value assigned to 'GetInetFile' never used
[Error] Unit1.pas(90): BEGIN expected but END found
[Error] Unit1.pas(92): Declaration expected but end of file found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Перевожу:
[Подсказка] строка 45: Значение GetInetFile не используется
[Ошибка] строка 90 требуется BEGIN, но END найдено
[Ошибка] строка 92 Ожидается объявление, но достигнут конец файла
[Фатальная ошибка] не могу скомпилировать проект, использован модуль Unit1.pas
Ответить с цитированием
  #13  
Старый 30.01.2011, 15:32
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Совет: отструктурируй код по-хорошему (по уровням вложенности блоков begin-end), с табуляцией. Сразу станет понятно, где косяк.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #14  
Старый 30.01.2011, 15:36
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Ты где-то напутал с begin-end.
Ищи, брат.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #15  
Старый 30.01.2011, 23:27
karpanter karpanter вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

Незнаю где
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter