我使用 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;
最佳答案
假设您的帐户具有管理权限,请右键单击程序的图标,然后调用“以管理员身份运行” - 您将收到提示/警告 - 单击"is"。
我不认为问题出在 32->64 位上,而是从 XP 到 Win 7,默认情况下,Win 7 对访问更加严格。
您可以设置一个快捷方式,配置为始终以管理员身份运行它,以避免右键单击步骤,但您仍然会收到提示/警告。
关于delphi - 无法在 Windows 7 上运行 win32 exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16754773/