2

IdHTTP と IdFTP を使用してプログラムを作成しましたが、問題があります。Windows XP 32 ビット (Delphi XE4 を使用) で書きましたが、exe ファイル (Project1.exe) は正常に動作します。Windows 7 64 ビットで開こうとすると、コンピューターでエラーが発生します。

写真:クリック

「パスまたは指定されたファイルにアクセスできません。権限が不足している可能性があります」という意味です。このエラーは今まで見たことがありません。ここでは、ソース コードを含むフォルダーの写真を見ることができます。

どうすれば問題を解決できますか?

コードは次のとおりです。

function downloadSrc(var aUrl:ansiString):ansiString;
begin
 with tIdHttp.create(nil) do begin        //Create Indy http object
  request.userAgent:=INET_USERAGENT;      //Custom user agent string
  redirectMaximum:=INET_REDIRECT_MAX;     //Maximum redirects
  handleRedirects:=INET_REDIRECT_MAX<>0;  //Handle redirects
  readTimeOut:=INET_TIMEOUT_SECS*1000;    //Read timeout msec
  try                                     //Catch errors
   result:=get(aUrl);                     //Do the request
   if url.port='80' then url.port:='';    //Remove port 80 from final URL
   aUrl:=url.getFullURI                   //Return final URL
  except result:='error' end;             //Return an error message if failed
  free                                    //Free the http object
 end
end;

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
if not(DirectoryExists('C:\mk7vrlist')) then
begin
  CreateDir('C:\mk7vrlist');
end;
ComboBox1.Items.BeginUpdate;
 for i := 0 to 59 do
   begin
     ComboBox1.AddItem(IntToStr(40000+i*1000), nil);
   end;
ComboBox1.AddItem('99999', nil);
ComboBox1.Items.EndUpdate;
end;

procedure TForm1.Label5Click(Sender: TObject);
begin
 ShellExecute(self.WindowHandle,'open',PChar('http://www.mk7vrlist.altervista.org'),nil,nil,SW_SHOWNORMAL);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var s:ansiString;
begin
 IdFTP1.Host:= 'mk7vrlist.altervista.org';
 IdFTP1.Username:='mk7vrlist';
 IdFTP1.Password:=pass;
 IdFTP1.Connect;
 s:='http://www.mk7vrlist.altervista.org/databases/test.txt';
 Memo1.Lines.Add(Edit1.Text+':'+ComboBox1.Text+':'+Edit2.Text);
 Memo1.Lines.Add(downloadSrc(s));
 Memo1.Lines.SaveToFile('C:\mk7vrlist\test.txt');
 IdFTP1.ChangeDir('databases/');
 IdFTP1.Put('C:\mk7vrlist\test.txt');
 IdFTP1.Quit;
 IdFTP1.Disconnect;
 Label10.Visible:=True;
 Beep;
end;
4

2 に答える 2

3

アカウントに管理者権限があると仮定して、プログラムのアイコンを右クリックし、「管理者として実行」を呼び出します。プロンプトまたは警告が表示されます。[はい] をクリックします。

問題は 32 ビットから 64 ビットにあるとは思いませんが、XP から Win 7 に移行すると、デフォルトでアクセスがより細かくなります。

右クリックの手順を回避するために、常に管理者として実行するように構成されたショートカットを設定できますが、それでもプロンプト/警告が表示されます。

于 2013-05-26T07:03:38.870 に答える