Silva~ Postado Setembro 20, 2009 Denunciar Share Postado Setembro 20, 2009 (editado) Como eu posso alterar a compartibilidade de um programa pelo delphi ? Por Exemplo de Windows 95 para Windows 2000 , saco ? E tipo eu quero antes disso , ver se o programa esta em modo de windows 95 , se não estiver mudar para Windows 2000 ? Agadeço desde já , pela ajuda Editado Setembro 20, 2009 por Jonathan Queiroz Remover palavra "ajuda" do título do tópico (Jonathan) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RafaelemeNt Postado Setembro 21, 2009 Denunciar Share Postado Setembro 21, 2009 Como eu posso alterar a compartibilidade de um programa pelo delphi ?Olá amigo..sinceramente, não entendi sua pergunta. Poderia explicar mais detalhadamente seu problema, ou pelo menos o que você pretende fazer? Quanto mais informações você der, mais fácil fica de tentarmos ajudar.Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Silva~ Postado Setembro 21, 2009 Autor Denunciar Share Postado Setembro 21, 2009 Alterar pelo delphi o modo de compartibilidade de um programava em propriedades > Compartibilidade O normal e ser Windows 96.então eu gostaria de alterar do 96 para 2000 pelo delphientendeu ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 24, 2009 Denunciar Share Postado Setembro 24, 2009 Como eu posso alterar a compartibilidade de um programa pelo delphi ? Por Exemplo de Windows 95 para Windows 2000 , saco ?Amigo ... não é compartibilidade e sim compatibilidadeSe este programa funcionava em uma versão anterior do Windows e agora apresentaproblemas, selecione o modo de compatibilidade que corresponde à versão anteriorOu seja, é uma maneira de fazer o seu executável que rodava no windows XP rodar no windows Vista.Não sei se é possivel pelo delphi, mas depois dou uma verificada ... ok ?abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 25, 2009 Denunciar Share Postado Setembro 25, 2009 Verifiquei ... é possivel sim montar um rotina para alterar o modo de compatibilidade do executavel atraves do delphientretanto, se esta rotina estiver dentro do seu executavel, o mesmo não rodará até que voce altere o modo de compatibilidade por fora, atraves do próprio windows. abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Setembro 25, 2009 Denunciar Share Postado Setembro 25, 2009 Mas então é facil de resolver.... cria um programa a parte e poe o atalho na area de trabalho!, o que esse programa faz?....Altera a compatibilidade do outro programa e em seguida o abre... só o jhonas postar o código :rolleyes: ....Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Silva~ Postado Setembro 25, 2009 Autor Denunciar Share Postado Setembro 25, 2009 Jhonas , se puder montar o Code para eu entender melhor agradeçeriaDe que jeito poderia ser feito isso então ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 26, 2009 Denunciar Share Postado Setembro 26, 2009 Jhonas , se puder montar o Code para eu entender melhor agradeçeriaDe que jeito poderia ser feito isso então ?O código fica assim:unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses Registry; procedure SetRegistryData(RootKey: HKEY; Key, Value: string; RegDataType: TRegDataType; Data: variant); var Reg: TRegistry; s: string; begin Reg := TRegistry.Create(KEY_WRITE); try Reg.RootKey := RootKey; if Reg.OpenKey(Key, True) then begin try if RegDataType = rdUnknown then RegDataType := Reg.GetDataType(Value); if RegDataType = rdString then Reg.WriteString(Value, Data) else if RegDataType = rdExpandString then Reg.WriteExpandString(Value, Data) else if RegDataType = rdInteger then Reg.WriteInteger(Value, Data) else if RegDataType = rdBinary then begin s := Data; Reg.WriteBinaryData(Value, PChar(s)^, Length(s)); end else raise Exception.Create(SysErrorMessage(ERROR_CANTWRITE)); except Reg.CloseKey; raise; end; Reg.CloseKey; end else raise Exception.Create(SysErrorMessage(GetLastError)); finally Reg.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin SetRegistryData(HKEY_CURRENT_USER,'\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', 'C:\MinhaPasta\MeuProg.exe',rdString,'WIN95'); end; end.OBS: Onde está escrito 'WIN95' vai o nome sistema operacional que será emulado exemplo:Windows 95 = WIN95Windows 98 / Windows Me = WIN98Windows NT 4.0 (Service Pack 5) = NT4SP5windows 2000 = WIN2000Mas como disse... é possivel sim montar um rotina para alterar o modo de compatibilidade do executavel atraves do delphi entretanto, se esta rotina estiver dentro do seu executavel, o mesmo não rodará até que voce altere o modo de compatibilidade por fora, atraves do próprio windows. abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Silva~ Postado Outubro 5, 2009 Autor Denunciar Share Postado Outubro 5, 2009 [Error] Unit1.pas(330): Undeclared identifier: 'SetRegistryData'So ta dando esse errinho chato ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Outubro 5, 2009 Denunciar Share Postado Outubro 5, 2009 [Error]Unit1.pas(330): Undeclared identifier: 'SetRegistryData'So ta dando esse errinho chato !Não será porque voce esqueceu de colocaruses Registry;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Silva~
Como eu posso alterar a compartibilidade de um programa pelo delphi ?
Por Exemplo de Windows 95 para Windows 2000 , saco ?
E tipo eu quero antes disso , ver se o programa esta em modo de windows 95 , se não estiver mudar para Windows 2000 ?
Agadeço desde já , pela ajuda
Editado por Jonathan QueirozRemover palavra "ajuda" do título do tópico (Jonathan)
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.