AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

programmstart überwachen

Ein Thema von PhilmacFlLy · begonnen am 17. Jan 2008 · letzter Beitrag vom 18. Jan 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: programmstart überwachen

  Alt 17. Jan 2008, 17:28
Das wundert mich ein wenig.
Zitat von Win32-SDK:
If the function fails, the return value is an error value that is less than or equal to 32.
Das heißt für mich, alles ab einschließlich 33 ist ein Erfolg
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
PhilmacFlLy
(Gast)

n/a Beiträge
 
#12

Re: programmstart überwachen

  Alt 17. Jan 2008, 17:37
ka aber jetzt gehts
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#13

Re: programmstart überwachen

  Alt 17. Jan 2008, 18:32
Zitat von DeddyH:
Das heißt für mich, alles ab einschließlich 33 ist ein Erfolg
genau, bis 32 sind es alles verschiedene Fehlercodes und darüber isses ein erfolgreicher Info-Statuscode
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: programmstart überwachen

  Alt 17. Jan 2008, 18:34
So hab ich das auch verstanden. Wieso musste er also die Abfrage ändern? 33 hieße doch: Programm gestartet, alles OK. Vielleicht zeigt uns der TE mal seinen aktuellen Code, da ist bestimmt ein Fehler im Detail
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#15

Re: programmstart überwachen

  Alt 17. Jan 2008, 18:40
Zitat von DeddyH:
Wieso musste er also die Abfrage ändern? 33 hieße doch: Programm gestartet, alles OK. Vielleicht zeigt uns der TE mal seinen aktuellen Code, da ist bestimmt ein Fehler im Detail
so stimmst's
if ShellExecute(33) > 32 then {ok} aber ich vermute jetzt einfach mal sowas wie
if ShellExecute(33) < 34 then {ok} oder ähnlich, was zwar bei Erfolg geht, aber im Fehlerfall auch einen Erfolg meldet
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: programmstart überwachen

  Alt 17. Jan 2008, 18:43
In #8 hatte ich doch einen Ansatz gepostet, evtl. hat er da etwas "verschlimmbessert"

P.S.: Was ist plötzlich mit diesem Thread los, der ist zumindest bei mir plötzlich auf die Schmalspur geraten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
PhilmacFlLy
(Gast)

n/a Beiträge
 
#17

Re: programmstart überwachen

  Alt 18. Jan 2008, 06:33
Zwar glaub ich nicht das ihr den wikrlich sehen wollt weil das iste ine ieziges Cahos aber bitte
Delphi-Quellcode:
unit Starter;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ExtCtrls, ComCtrls, StdCtrls, ShellAPI, jpeg, IniFiles;

type
  THaupt = class(TForm)
    Image1: TImage;
    rbgerman: TRadioButton;
    Image3: TImage;
    rbenglish: TRadioButton;
    Image4: TImage;
    rbspanish: TRadioButton;
    Image5: TImage;
    rbjapanese: TRadioButton;
    Image6: TImage;
    rbrussian: TRadioButton;
    bttclose: TButton;
    bttcontinue: TButton;
    Image2: TImage;
    procedure Image2DblClick(Sender: TObject);
    procedure rbrussianClick(Sender: TObject);
    procedure rbjapaneseClick(Sender: TObject);
    procedure rbspanishClick(Sender: TObject);
    procedure rbenglishClick(Sender: TObject);
    procedure rbgermanClick(Sender: TObject);
    procedure bttcloseClick(Sender: TObject);
    procedure bttcontinueClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Haupt: THaupt;
  pfads, pfadj, pfadg, pfade, pfadr: String;

implementation

uses PassWord;

{$R *.dfm}

procedure THaupt.bttcloseClick(Sender: TObject);
begin
application.Terminate;
end;

procedure THaupt.bttcontinueClick(Sender: TObject);
var ini: TIniFile;
    iSuccess: Integer;
begin
  ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Einstellungen.ini');
  pfads := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Spanisch','Nichts eingetragen');
  pfade := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Englisch','Nichts eingetragen');
  pfadr := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Russisch','Nichts eingetragen');
  pfadg := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Deutsch','Nichts eingetragen');
  pfadj := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Japanisch','Nichts eingetragen');
  ini.free;
    if rbspanish.Checked = true
    then
      begin iSuccess := ShellExecute(Handle, 'open', PChar(pfads), nil, nil, SW_NORMAL);
        if
          iSuccess < 34
        then
          MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR)
        else
          application.Terminate
      end
    else
      if rbenglish.Checked = true
      then
        begin iSuccess := ShellExecute(Handle, 'open', PChar(pfade), nil, nil, SW_NORMAL);
          if
            iSuccess < 34
          then
            MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR)
          else
            application.Terminate
        end
      else
        if rbgerman.Checked = true
        then
          begin iSuccess := ShellExecute(Handle, 'open', PChar(pfadg), nil, nil, SW_NORMAL);
            if
              iSuccess < 34
            then
              MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR)
            else
              Application.Terminate
            end
        else
          if rbjapanese.Checked = true
          then
            begin iSuccess := ShellExecute(Handle, 'open', PChar(pfadj), nil, nil, SW_NORMAL);
              if
                iSuccess < 34
              then
                MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR)
              else
                application.Terminate
              end
          else
              if rbrussian.Checked = true
              then
                begin iSuccess := ShellExecute(Handle, 'open', PChar(pfadr), nil, nil, SW_NORMAL);
                  if
                   iSuccess < 34
                  then
                    MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR)
                  else
                    application.Terminate
                end

end;

procedure THaupt.rbgermanClick(Sender: TObject);
begin
 bttcontinue.Enabled := true;
 bttcontinue.Caption := 'Weiter';
 bttclose.Caption := 'Schließen';
end;

procedure THaupt.rbenglishClick(Sender: TObject);
begin
  bttcontinue.Enabled := true;
  bttcontinue.Caption := 'Continue';
  bttclose.Caption := 'Close';
end;

procedure THaupt.rbspanishClick(Sender: TObject);
begin
  bttcontinue.Enabled := true;
  bttcontinue.Caption := 'Ulterior';
  bttclose.Caption := 'Concluir';
end;

procedure THaupt.rbjapaneseClick(Sender: TObject);
begin
 bttcontinue.Enabled := true;
end;

procedure THaupt.rbrussianClick(Sender: TObject);
begin
 bttcontinue.Enabled := true;
end;


procedure THaupt.Image2DblClick(Sender: TObject);
begin
 PasswordDlg.showmodal;
end;

end.
Und sag jetzt bloß nix wegen den If then else schleifen mir is das mit case einfach nicht mehr eingefallen wie das zu machen ist. Achja und es funktioniert auch im Fehlerfall (d.h. Er bringt ne Fehlermeldung)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: programmstart überwachen

  Alt 18. Jan 2008, 07:10
Das sieht soweit OK aus, da verwundert es mich schon, dass die 33 nicht funktioniert.

[edit] Wäre hier eine RadioGroup nicht angebrachter als ein Haufen CheckBoxen? Außerdem fände ich es so übersichtlicher:
Delphi-Quellcode:
var ini: TIniFile;
    iSuccess: Integer;
    sPfad: string;
begin
  sPfad := '';
  ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Einstellungen.ini');
  if rbspanish.Checked then
    sPfad := ini.ReadString('Pfad','Spanisch','Nichts eingetragen')
  else if rbenglish.Checked then
    sPfad := ini.ReadString('Pfad','Englisch','Nichts eingetragen')
  else if rbgerman.Checked then
    sPfad := ini.ReadString('Pfad','Deutsch','Nichts eingetragen')
  else if rbjapanese.Checked then
    sPfad := ini.ReadString('Pfad','Japanisch','Nichts eingetragen')
  else if rbrussian.Checked then
    sPfad := ini.ReadString('Pfad','Russisch','Nichts eingetragen');
  ini.free;
  if sPfad <> 'then
    begin
      iSuccess := ShellExecute(Handle, 'open', PChar(sPfad), nil, nil, SW_NORMAL);
      if iSuccess < 33 then
        MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR)
      else
        application.Terminate
    end;
end;
[/edit]

[edit2] Was soll eigentlich passieren, wenn Du "Nichts eingetragen" erhältst? [/edit2]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
PhilmacFlLy
(Gast)

n/a Beiträge
 
#19

Re: programmstart überwachen

  Alt 18. Jan 2008, 12:21
[edit2] Was soll eigentlich passieren, wenn Du "Nichts eingetragen" erhältst? [/edit2][/quote]

?? was meinst du damit ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: programmstart überwachen

  Alt 18. Jan 2008, 12:27
Angenommen, die CheckBox rbSpanish ist aktiv, in der Ini gibt es aber keinen Eintrag dazu. Dann gibt das ReadString "Nichts eingetragen" zurück
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz