无法在Windows 7上运行win32 exe

时间:2013-05-25 23:15:52

标签: delphi

我使用IdHTTP和IdFTP编写了一个程序,但是我遇到了问题。我在Windows XP 32位(使用Delphi XE4)上编写它,exe文件(Project1.exe)工作正常。当我尝试在Windows 7 64位上打开它时,计算机给我一个错误。

图片:click

这意味着“您无法访问路径或指定的文件。可能您没有足够的权限”。我以前从未见过这个错误。在这里,您可以看到包含源代码的文件夹的图片。

如何解决我的问题?

以下是代码:

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;

2 个答案:

答案 0 :(得分:3)

假设您的帐户具有管理权限,请右键单击您的程序图标,然后调用“以管理员身份运行” - 您将收到提示/警告 - 单击是。

我不相信问题是32-> 64位,而是从XP到Win 7,默认情况下更具体的是访问。

您可以设置一个始终配置为管理员的快捷方式,以避免右键单击步骤,但仍会收到提示/警告。

答案 1 :(得分:0)

  
    

CreateDir('C:\ mk7vrlist)

  

普通用户没有对c:\

的访问权限

做这样的事情(伪代码):

CreateDir('%TEMP%\ mk7vrlist)