Einzelnen Beitrag anzeigen

trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Application Error 0xc0000142

  Alt 11. Jul 2007, 10:33
Hi reli,

bei Google hab ich schon gesucht, die beiden Fehler, die du mir gelinkt hast sind die 0xc0000022 und nicht 0xc0000142, deswegen dachte ich nicht, dass das passt, werds aber mit dem Kunden mal durch spielen.

So, hier n bisl Quältext, aber ehrlich gesagt denke ich nicht, dass das einen weiter bringt *g*:

Delphi-Quellcode:
procedure TFrmServerConfig.FormCreate(Sender: TObject);
begin
  if FileExists(GetDataPath+'System.fdb') then
  begin
    DMSystem.dbSystemZeos.Database := GetDataPath+'System.fdb';
    try
      DMSystem.dbSystemZeos.Connect;
    except
      Application.Terminate;
    end;
  end
  else
    Application.Terminate;

  MPGetLanguage(); // Sprache aus System.fdb auslesen (füllt Array aSprache)
  MPSetLanguage(Self); //Verpasst den Komponenten die richtigen Text/Caption Propertys

  slPlugins := TStringList.Create;

  bActivated := false;
  sLicenseHolder := aSprache[1379];
  iMaxUser := 0;
end;
Delphi-Quellcode:
procedure TFrmServerConfig.FormShow(Sender: TObject);
var
  prgInfo: TmpllPrgInfo;
  bridgeone: mybridge1;
  tsplugin: IMPPluginInterface;
  sMPServerINI : string;
  ConfigINi : TIniFile;
  sDatenPfad : string;
begin


  TForm(Sender).Left:= (Screen.Width - TForm(Sender).Width)div 2;
  TForm(Sender).Top:= ((Screen.Height -TForm(Sender).Height) div 2)-14;


  bridgeone := mybridge1.Create;
  mplicense := TMPLicense.Create(bridgeone, mybridge2.Create());
  prginfo.prgtyp := cPrg_MPFEUER;
  prginfo.prglite := 0;

  if (bridgeone.getField4 <> '') and (StrToInt(bridgeone.getField4) > cUser_Einzel) and (StrtoInt(bridgeone.getField4) < cUser_Max) then
  begin
    prginfo.prguser := StrToInt(bridgeone.getField4);
  end
  else
    prginfo.prguser := cUser_3;

  sMPServerINI := GetDataPath+'MPServer.ini';
  ConfigIni := TIniFile.Create(sMPServerINI);
  sDatenpfad := ConfigIni.ReadString('UNC_PATH', 'Datapath', '');
  if COPY(sDatenpfad, Length(sDatenpfad), 1) <> '\then
    sDatenpfad := sDatenpfad+'\';

   tsplugin := MPPluginLoaderLib.LoadIt(sDatenPfad+'Plugins\');


  prginfo.prgversion := cVers_30;

  if tsplugin <> nil then
  begin
    if tsplugin.getPluginType = pTManufacturer then
    begin
      prginfo.prgPlugin := cPlugin_plugin;
      slPlugins.Add(tsplugin.getPluginName+' (V '+tsplugin.getPluginVersion+')');
    end
    else
      prgInfo.prgPlugin := cPlugin_no;
  end
  else
    prgInfo.prgPlugin := cPlugin_no;


  prginfo.prgAVL := false;
  mplicense.setProgrammVersion(prginfo);

  mplicense.setdefaultLicense(pDefaultLicense);

  btnClients.Click;
  btnUebersicht.Click;
end;
Delphi-Quellcode:
function GetDataPath(): string;
var
    rRegisrty: TRegistry;
  begin
    rRegisrty := TRegistry.Create(KEY_READ);
    rRegisrty.RootKey := HKEY_LOCAL_MACHINE;

      if rRegisrty.KeyExists('SOFTWARE\MP-SOFT-4-U\' + pPrgname + '\Services') then
      begin

        rRegisrty.OpenKey('SOFTWARE\MP-SOFT-4-U\' + pPrgname + '\Services', false);
        Result := rRegisrty.ReadString('AppDataPath');
      end
      else begin
        Result := '';
      end;
end;
Delphi-Quellcode:
procedure TFrmServerConfig.btnClientsClick(Sender: TObject);
type
  PPInAddr = ^PInAddr;
var
  ConfigIni : TIniFile;
  sMPServerINI : string;
  WSA : TWSAData;
  PHEn : PHostEnt;
  Addr : PPInAddr;
  ConnectionStream: TMemoryStream;
  sConnectionAnswer : string;

begin

  lblBereich.Caption := '['+TJvNavPanelButton(Sender).Caption+']';
  SetScrollBox(sbClients);


  if not ServiceRunning(nil, PAnsiChar('MPService')) then
  begin
    lblClients.Caption := aSprache[1485];
    lblAktClients.Visible := false;
    exit;
  end;

     MPServerConnect;
    GetConnections();

    ConnectionThread := TConnectionThread.Create(True);
    with ConnectionThread do
    begin
      Priority := tpNormal;
      FreeOnTerminate := True;
      ConnectionClient := MPServerTCPClient;
      Resume;
    end;
end;
Delphi-Quellcode:
procedure TFrmServerConfig.btnUebersichtClick(Sender: TObject);
begin
  try
    ConnectionThread.Suspend;
  except
  end;

  lblBereich.Caption := '['+btnUebersicht.Caption+']';
  SetScrollBox(sbStart);
  if ServiceRunning(nil, PChar('MPService')) then
  begin
    lblServiceStatus.Caption := aSprache[1462];
    btnServiceStatus.Caption := aSprache[1461];
    pnlServerStatus.Color := $00A2D896;

    MPServerConnect;
    GetServerInformation;

    lblStatusLizenznehmerWert.Caption := sLicenseHolder;
    if bActivated then
      lblStatusLizenzWert.Caption := aSprache[1492]+' - '+IntToStr(iMaxUser)+' '+aSprache[772]
    else
      lblStatusLizenzWert.Caption := aSprache[1495]+' ('+IntToStr(iDemoDays)+'/30) - '+IntToStr(iMaxUser)+' '+aSprache[772]
  end
  else
  begin
    lblServiceStatus.Caption := aSprache[1463];
    btnServiceStatus.Caption := aSprache[1460];
    pnlServerStatus.Color := $005E5DE3;

    lblStatusLizenznehmerWert.Caption := '';
    lblStatusLizenzWert.Caption := '';
  end;

  lbPlugins.Items.Clear;

  if slPlugins.Count = 0 then
    lbPlugins.Items.Add(aSprache[1516])
  else
    lbPlugins.Items := slPlugins;



  try
    ConnectionThread.Resume;
  except
  end;
end;
Und hier noch der Thread:

Delphi-Quellcode:
procedure TConnectionThread.Execute;
var
  sReadLine: string;
begin
  with ConnectionClient.IOHandler do
  begin
    while Connected do
    begin
      sReadLine := ReadLn;
      if StringDecrypt(sReadLine) = 'ConnectionChangethen
      begin
        Synchronize(GetConnections);
      end;
    end;
  end;
end;

procedure TConnectionThread.GetConnections;
begin
  FrmServerConfig.GetConnections;
end;
Wenn noch was benötigt wird poste ich auch gerne die gesamte pas, aber wie schon gesagt denke ich nicht, dass das was Hilft, da es ja bei all den anderen Kunden einwandfrei funktioniert.
Ich denke eigentlich eher, dass es was auch Windows-Seite ist, hab aber im Netz bisher nur was gefunden von wegen DLL-Problem, bzw. Problem bei Scheduled Tasks oder der cdm.exe.
Das alles wurde dann immer mit dem nächsten SP o.ä. gelöst, also auch nicht wirklich befriedigend.
  Mit Zitat antworten Zitat