Ir para conteúdo
Fórum Script Brasil
  • 0

Alterando Compatibilidade pelo Delphi


Silva~

Pergunta

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 Queiroz
Remover 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

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0
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 compatibilidade

Se este programa funcionava em uma versão anterior do Windows e agora apresenta

problemas, selecione o modo de compatibilidade que corresponde à versão anterior

Ou 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

Link para o comentário
Compartilhar em outros sites

  • 0

Verifiquei ... é 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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
Jhonas , se puder montar o Code para eu entender melhor agradeçeria

De 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 = WIN95

Windows 98 / Windows Me = WIN98

Windows NT 4.0 (Service Pack 5) = NT4SP5

windows 2000 = WIN2000

Mas 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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...