Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MyPC (SystemInfo Programm) (https://www.delphipraxis.net/79288-mypc-systeminfo-programm.html)

Mazel 20. Okt 2006 18:46

Re: MyPC (SystemInfo Programm)
 
Ich habe leider kein Notebook aber MyPC sollte schon herausfinden ob mit Akku betrieben und wieviel Prozent vom Akku noch verfügbar sind.

OregonGhost 24. Okt 2006 12:23

Re: MyPC (SystemInfo Programm)
 
Ich habe dein Programm eben mal ausprobiert, es scheint ganz vernünftig zu funktionieren (auch wenn ich nachwievor nicht damit einverstanden bin, dass dein Programm genau wie der Taskmanager 1 MB RAM unterschlägt, im Gegensatz zu den Systemeigenschaften von Windows, dasselbe gilt für die Größe des Paging-Files).

Aber jetzt ein paar Einwände meinerseits:
  • Unter Anzeige steht was von 1280x1024. Das stimmt zwar... aber wo ist mein zweiter Monitor hin? ;)
  • Bei den Datenträgern zeigt dein Programm unter den physikalischen Laufwerken meine vier Kartenleser an. Allerdings gibt es scheinbar keine Möglichkeit, sich anzeigen zu lassen, auf welche Pfade sie abgebildet werden (bei mir in C:\Kartenleser statt auf eigene Laufwerke). Das wäre vielleicht mal interessant, wenn man dein Programm benutzen würde, um einen fremden Rechner zu warten.
  • Ein paar Prozesse haben keinen Pfad. Ich weiß nicht, ob das so gehört, hab mich damit nie auseinandergesetzt. Sind wohl alles Systemprozesse, also alg.exe, csrss.exe, einige Instanzen von svchost.exe usw.
  • Wie bereits mehrfach erwähnt, sind die ganzen Listviews und so recht klein geraten, eine Größenänderung des Fensters wäre daher schon angenehm.
  • Nach welcher Logik sortiert das Programm die Drucker? Mein Standarddrucker, obwohl als erster installiert, steht als letzter. Nach dem Alphabet würde er auch als erster kommen.
Ich wusste übrigens gar nicht, dass Windows ein Programm mitbringt, mit dem man benutzerdefinierte Zeichen in Schriftarten einfügen kann :)

Mazel 27. Okt 2006 12:03

Re: MyPC (SystemInfo Programm)
 
Hi,

Im ersten Post ist die neue Beta "Beta2".
Ich habe ein paar Fehler behoben und bin auf Wünsche eingegangen. Was ich genau geändert habe, steht in ersten Post.

Gruß
Mazel

Flom 30. Okt 2006 19:09

Re: MyPC (SystemInfo Programm)
 
Hallo,
Bei Schriftarten fänd ich eine Anzeige sowie ein Button für die Installation einer neuen Schriftart Sinnvoll

Bei den Datenträgern fänd ich es toll wenn man entweder einen balken mit XX% belegt und XX% frei toll oder aber und auch eine grafik ála Windows

Bei Drucker nimmt er keinen Netzwerkdrucker mit... warum ?

Bei Netzwerk fänd ich es wieder sinnvoll einen Button zum Pingen und zum Netsenden... .

Beim Ram das selbe mit Prozent... .

Jo das wars erst einmal... .

Grüße Flom

Martin K 31. Okt 2006 18:03

Re: MyPC (SystemInfo Programm)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, gefällt mir schon sehr viel besser, Deine neue Version.
Jetzt werden bei mir auch alle Prozesse, wie im Tankmanager, angezeigt :thumb:

Einiges aber noch:
  • Der Prozessor-Name wird immer noch weiter eingerückt angezeigt, oder ist das nur bei mir so? (s. Bild) [Nachtrag:] Vielleicht kannst Du das mit Trim() lösen.
  • Du solltest mal mehr auf richtige Schreibung achten (s. Bild) und das ist mir nur so auf die Schnelle aufgefallen...
  • Du könntest in den Listen auch Symbole noch mit reinbauen (eine ListView hat z.B. die Eigenschaft SmallImages)
    z.B. bei den Programmen zu den Prozessen, den Laufwerken, der Programmliste...
  • [Nachtrag:] Vielleicht könntest Du bei ein paar Sachen noch eine Sortierung via der ersten Zeile, also per Klick auf diese Titelleiste machen (so wie es auch bei Windows ist), so dass man selber entscheiden kann, nach was sortiert werden soll - z.B. bei:
    Schriftarten (dann kann man auch nach 'Auflösung' sortieren), Drucker, Netzwerkadapter, Prozesse / Dienste (also eben alles, wo aufgelistet wird)
  • Der Button "Alles markieren" in der ToolBar hat keinen Hint
  • Die Hilfe kann man nicht aus dem Programm heraus abrufen
Ansonsten sieht das alles ganz gut aus! :thumb:

rantanplan99 31. Okt 2006 19:03

Re: MyPC (SystemInfo Programm)
 
Liste der Anhänge anzeigen (Anzahl: 1)
siehe Screenshot, die mit rot markierten Einträge.
  • Prozessor Architektur kann nicht ermittelt werden? Wieso? Ist doch eindeutig bei einem Athlon64 oder?
  • Der Eintrag bei Familie sieht .. äh .. komisch aus *g*
  • Sehr krumme L2 Cache Größe
  • L2 Cache Speed mit 0 ???

CPU ist ein Athlon64 3200+ Socket 939 .. das is zumindest korrekt *g*

Nachtrag: Äh wieso lässt sich das Info-Fenster denn nicht verschieben??

Mazel 31. Okt 2006 21:10

Re: MyPC (SystemInfo Programm)
 
Beta3 ist im ersten Beitrag zu finden.

Die Hilfe sollte eigentlich über das Programm zu öffnen sein, bei mir funktioniert es zumindest.

@rantanplan99:
Ich habe es jetzt so gemacht, dass hinter 3 Informationen des Prozessors Zahlen sind die für die im Array gelagerten Strings stehen. Eigentlich gibt es im Array für Architektur kein "nicht anwendbar", ich weis nicht wo MyPC das aufgreift. Wenn du mir ein neues ScrennShot zeigts, könnte ich den Fehler finden.

Gruß
Mazel

MagicAndre1981 31. Okt 2006 22:06

Re: MyPC (SystemInfo Programm)
 
Zitat:

Zitat von Martin K
  • Der Prozessor-Name wird immer noch weiter eingerückt angezeigt, oder ist das nur bei mir so? (s. Bild)

das liegt an Intel, die den Branstring rechtsbündig in ihre CPU eindampfen :zwinker: Sollte aber leicht zu lösen soll :stupid:

Hador 31. Okt 2006 22:08

Re: MyPC (SystemInfo Programm)
 
Zuerst einmal: Sehr schönes Tool :thumb:

Dann aber doch noch drei Anmerkungen:
  • Es werden nicht alle logischen Laufwerke aufgelistet (z.B. keine Linux-Partitionen)
  • Schön wären mehr Infos zu den Physikalischen Laufwerken
  • Wozu ist der Punkt Netzwerk -> Computer gut? Dort steht bei mir nichts.
  • Wofür stehen beim Prozessor die eingeklammerten Zahlen bspw. hinter Architektur, Statusoder Familie?

EDIT:
Und es wäre schön das Listview nach einer bestimmten Spalte sortieren zu können (z.B. laufende Prozesse und die nicht gestarteten, ...)

rantanplan99 1. Nov 2006 10:35

Re: MyPC (SystemInfo Programm)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Neuer Screenshot angehängt.

Jetzt hagelt es aber Fehler beim starten die ich erst alle wegklicken muss (siehe Screenshot2)

Mazel 1. Nov 2006 14:01

Re: MyPC (SystemInfo Programm)
 
Ok, Mit den Prozessortypen werde ich mich nochmal genauer auseinander setzen, damit die Anzeige korrekt ist.
Zitat:

Zitat:

Der Prozessor-Name wird immer noch weiter eingerückt angezeigt, oder ist das nur bei mir so? (s. Bild)
das liegt an Intel, die den Branstring rechtsbündig in ihre CPU eindampfen Sollte aber leicht zu lösen soll
Wie kann ich das Problem lösen? Ich habe es schon mit Trim() versucht aber es scheint keinen Erfolg zu haben.

Zitat:

Wozu ist der Punkt Netzwerk -> Computer gut? Dort steht bei mir nichts.
Wenn im Netztwerk bzw. in der selben Arbeitsgruppe mehrere Computer sind, werden sie dort angezeigt.

Gruß
Mazel

Martin K 1. Nov 2006 17:40

Re: MyPC (SystemInfo Programm)
 
Zitat:

Zitat von Mazel
Ok, Mit den Prozessortypen werde ich mich nochmal genauer auseinander setzen, damit die Anzeige korrekt ist.
Zitat:

Zitat:

Der Prozessor-Name wird immer noch weiter eingerückt angezeigt, oder ist das nur bei mir so? (s. Bild)
das liegt an Intel, die den Branstring rechtsbündig in ihre CPU eindampfen Sollte aber leicht zu lösen soll
Wie kann ich das Problem lösen? Ich habe es schon mit Trim() versucht aber es scheint keinen Erfolg zu haben.

Jetzt wird es bei mir richtig formatiert angezeigt :thumb:

Aber wozu sind jetzt diese Zahlen in Klammern dahinter?
z.B. Status in Betrieb/volle Leistung (3)

Zitat:

Zitat von Mazel
Die Hilfe sollte eigentlich über das Programm zu öffnen sein, bei mir funktioniert es zumindest.

Sorry, klar funktioniert das!
War mein Fehler: ich hatte nur die Exe entpackt, nicht aber die Hilfedatei :wall:

Wäre nett, wenn Du diese zwei Sachen noch machen könntest:
Zitat:

Zitat von Martin K
  • Du könntest in den Listen auch Symbole noch mit reinbauen (eine ListView hat z.B. die Eigenschaft SmallImages)
    z.B. bei den Programmen zu den Prozessen, den Laufwerken, der Programmliste...
  • Vielleicht könntest Du bei ein paar Sachen noch eine Sortierung via der ersten Zeile, also per Klick auf diese Titelleiste machen (so wie es auch bei Windows ist), so dass man selber entscheiden kann, nach was sortiert werden soll - z.B. bei:
    Schriftarten (dann kann man auch nach 'Auflösung' sortieren), Drucker, Netzwerkadapter, Prozesse / Dienste (also eben alles, wo aufgelistet wird)

So, und nun nochmal zur Rechtschreibung: :wink:
Text rechts neben der ToolBar: keine erweiterten Informationen
Allgemein -> Betriebssystem: Versionsnummer
Programmliste: Leistung fas ??? (ansonsten hab ich da die Beschreibungen jetzt nicht alle durchgelesen...)
Text hier neben der Toolbar: ... die Liste ist systemabhängig
Netzwerk -> Status: Netzwerkstatus
Prozessor: Modell (wenn schon, dann bitte auch alles in Deutsch :wink: )

Ich will jetzt nicht unhöflich sein, das Programm ist gut und wird immer besser, aber solche Rechtschreibfehler stören mich einfach... :oops:

Übrigens:
Als ich einmal auf Netzwerk -> Status geklickt habe, kam ständig die Meldung:
Zitat:

---------------------------
MyPC
---------------------------
Listenindex überschreitet das Maximum (0)
---------------------------
OK
---------------------------
Als ich die dann alle weggeklickt hatte, war es aber wieder normal :gruebel:

Mazel 1. Nov 2006 19:26

Re: MyPC (SystemInfo Programm)
 
Die Zahlen hinter den Angaben für Status, Familie oder Architektur hab ich für rantanplan99 gemacht, damit ich schauen kann wo der Fehler liegt, wird in der Beta 4 nicht mehr da sein. Ebenso die Rechtschreibfehler. Ich werde die Programmliste selber nocheinmal durchgehen, denn die musste ich mühsam per Hand schreiben (die Beschreibung).

Außerdem wird das Sortieren und die SmallIcons für die Programmliste enthalten sein. Dazu werde ich auch noch die Prozessortypen erweitern.

Bis Sonntag habe ich leider keine Zeit, aber ich werde versuchen jede freie Minute daran zu arbeiten ;)

Gruß
Mazel

Thanatos81 1. Nov 2006 20:52

Re: MyPC (SystemInfo Programm)
 
Wird ja wirklich immer besser :thumb: Nur das Sammeln der Infos zu einigen Punkten dauert halt doch recht lang, deswegen wollte ich nochmal an die Sanduhr beim Datensammeln erinnern, auch wenn es nur eine Kleinigkeit ist ;-)

Eine weitere Möglichkeit wäre noch, bereits gesammelte Daten zu cachen, auch wenn man die Seite wechselt und diese nur bei einem Klick auf Aktualisieren zu erneuern.

Mazel 2. Nov 2006 11:54

Re: MyPC (SystemInfo Programm)
 
Die Daten zu cachen wär ein Möglichkeit bei Informationen, die nicht aktualiesiert werden müssen wie Das Betriebssystem (als Beispiel). Ich werde mal schauen wie ich das mache, und die Sanduhr wird ihren Platz finden ;).

Gruß
Mazel

Luckie 2. Nov 2006 12:48

Re: MyPC (SystemInfo Programm)
 
Nein, ich würde stattdessen das ganze in einen Thread auslagern.

Mazel 19. Nov 2006 12:48

Re: MyPC (SystemInfo Programm)
 
Hallo Leute,

Ich habe heute eine neue Version (BETA 4) hochgeladen die einige Erweiterungen beinhaltet. Unter anderem habe ich SmallImages und eine bessere Sortierung hinzugefügt. Nun könnt ihr also die neue Version testen und Fehler melden. ;)

Gruß
Mazel

Martin K 19. Nov 2006 23:30

Re: MyPC (SystemInfo Programm)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hut ab :thumb:
Es wird immer besser!

Eine Frage:
wie hast Du den grauen Pfeil da oben beim Sortieren der ListView (denke mal, es ist eine) hingemacht?
Mit Canvas gezeichnet oder gibt es da eine bessere Möglichkeit?

Mal was zu den Icons:
Sehr gut geworden!
Aber noch ein paar Vorschläge:
- unter Prozesse fehlt bei manchen der Pfad und daher auch das Icon.
Tipp: wenn nur der Dateiname da steht, z.B. calc.exe könntest Du über die EnvironmentVariable Path und mithilfe von FileExists evtl. den Pfad herausfinden.
- unter Dienste fehlen ziemlich viele Icons. Evtl. müsstest Du, um an den Pfad des Icons heran zu kommen, Parameter aus dem Pfad herausfiltern und Anführungsstriche entfernen, dazu gab es hier mal einen ganz guten Code.

Aber einen Fehler gab es dann doch noch:
Ich klicke auf Systemverzeichnisse und es kommt zur AV (s. Anhang).
Wenn ich die Meldung wegklicke, bleibt der Cursor als Sanduhr.

Ach ja:
Warum sind bei installierte Dateityen keine Icons :stupid: ?

Ansonsten:
Top :thumb:

Muetze1 20. Nov 2006 00:53

Re: MyPC (SystemInfo Programm)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Gutes Programm, folgende Dinge dazu:

1. Beim Klick auf die Programmliste gibt es eine AV (siehe Anhang)
2. Ich habe ein DualMon System, also habe ich 2 Monitore mit zwei Auflösungen. Dies wird bisher noch nicht berücksichtigt. Willst du einen Code haben um die Grafikkartennamen (vom Treiber) und den Monitornamen zu bekommen an den Ausgängen?
3. L2 Cache und L2 Cache Geschwindigkeit sind bei mir beide einfach nur 0. Wenn du eine 0 hast, dann verstecke doch einfach die Ausgabe. Lieber weniger anzeigen als Müll...

SirThornberry 20. Nov 2006 07:56

Re: MyPC (SystemInfo Programm)
 
unter Allgemein->Benutzer steht "registriert" und dann "ja". Das ist allerdings falsch. Ich hab Windows aktiviert aber keinesfalls registriert.

Mazel 20. Nov 2006 14:46

Re: MyPC (SystemInfo Programm)
 
Hallo,

ich weis leider nicht warum diese Fehler auftauchen bei der Programmliste und Verzeichnisliste. Ich frage voher ab, ob das Programm oder das Verzeichnis existiert, über FileExists oder DirectoryExists, nur wenn vorhanden, auflisten. Die Programme habe ich in einem Array und die Verzeichnisse lese ich über SHGetSpecialFolderLocation aus. Da muss der Fehler stecken:
Delphi-Quellcode:
{--[GetSpecialDir]-------------------------------------------------------------}
const
// als Beispiel ein paar Systemverzeichnisse

 CSIDL_COMMON_APPDATA = $0023;
 CSIDL_COMMON_DESKTOPDIRECTORY = $0019;
 CSIDL_COMMON_DOCUMENTS = $002E;
 CSIDL_COMMON_FAVORITES = $001F;

function GetSpecialDir(CSIDL: Integer): String;
var
 PIDL          : PItemIDList;
 Path          : PChar;

begin
 SHGetSpecialFolderLocation(Main.Handle, CSIDL, PIDL);
 GetMem(Path, MAX_PATH);
 SHGetPathFromIDList(PIDL, Path);
 Result := Path;
 FreeMem(Path);
end;

// hier das Anzeigen
for i := 0 to 34 do
 begin
  If DirectoryExists(GetSpecialDir(SYSTEM_CSIDL_DIRS[i])) then
   begin
    Item := Main.LVwInfos.Items.Add;
    Item.Caption := SYSTEM_STRING_DIRS[i];
    Item.SubItems.Add(GetSpecialDir(SYSTEM_CSIDL_DIRS[i]));
   end;
 end;
Bei mein Vaters Rechner kommt der Fehler beim Autostartverzeichniss aber warum, weis ich nicht.

Nun zum registriert sein oder nicht registriert sein. ;)
Diesen Wert lese ich aus der Registry aus. Dort scheint zu stehen, dass Windows registriert ist.
Delphi-Quellcode:
HKLM\SOFTWARE\Microsoft\Windows( NT)\CurrentVersion\';
und den Wert von RegDone.
Ich prüfe ob der Wert von RegDone = '' oder nicht, wenn es so ist, dann ist es nicht registriert sonst ist es registiert.

Zu den Icons: ja, leider Fehlen bei manchen die Pfad, ähnlich auch bei den Dateitypen, da muss ich noch die Anführungstriche und andere Zeichen entfernen um den genauen Pfad zu ermitteln.
Zitat:

Ich habe ein DualMon System, also habe ich 2 Monitore mit zwei Auflösungen. Dies wird bisher noch nicht berücksichtigt. Willst du einen Code haben um die Grafikkartennamen (vom Treiber) und den Monitornamen zu bekommen an den Ausgängen?
Leider konnte ich in der Zeit nicht alles schaffen, aber ein Code der mir helfne könnte, kannst du mir durchaus geben. Wär schön.

Gruß
Mazel

Muetze1 20. Nov 2006 17:46

Re: MyPC (SystemInfo Programm)
 
Ok, kurzer Code dazu:

Delphi-Quellcode:
Procedure TForm1.FillMonitorList;
Var
  Cntr       : Cardinal;
  Info       : TDisplayDevice;
  AdapterName : PChar;
  OldPos     : Integer;
Const
  DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = $00000001;
  DISPLAY_DEVICE_MULTI_DRIVER       = $00000002;
  DISPLAY_DEVICE_PRIMARY_DEVICE     = $00000004;
  DISPLAY_DEVICE_MIRRORING_DRIVER   = $00000008;
  DISPLAY_DEVICE_VGA                = $00000010;
Begin
  lbMonitorList.Items.Add('------------------ Displays ----------------');

  Cntr := 0;
  Info.cb := SizeOf(Info);
  While EnumDisplayDevices(Nil, Cntr, Info, 0) Do
  Begin
    lbMonitorList.Items.Add('* Device '+IntToStr(Cntr)+':');
    lbMonitorList.Items.Add('   DeviceName : '+Info.DeviceName);
    lbMonitorList.Items.Add('   DeviceString: '+Info.DeviceString);

    OldPos := lbMonitorList.Items.Add('   StateFlags:  ');

    If ( Info.StateFlags And DISPLAY_DEVICE_ATTACHED_TO_DESKTOP ) = DISPLAY_DEVICE_ATTACHED_TO_DESKTOP Then
      lbMonitorList.Items.Add('     + Display Device Attached To Desktop')
    Else
      lbMonitorList.Items.Add('     - Display Device Attached To Desktop');

    If ( Info.StateFlags And DISPLAY_DEVICE_MULTI_DRIVER ) = DISPLAY_DEVICE_MULTI_DRIVER Then
      lbMonitorList.Items.Add('     + Display Device Multi Driver')
    Else
      lbMonitorList.Items.Add('     - Display Device Multi Driver');

    If ( Info.StateFlags And DISPLAY_DEVICE_PRIMARY_DEVICE ) = DISPLAY_DEVICE_PRIMARY_DEVICE Then
      lbMonitorList.Items.Add('     + Display Device Primary Device')
    Else
      lbMonitorList.Items.Add('     - Display Device Primary Device');

    If ( Info.StateFlags And DISPLAY_DEVICE_MIRRORING_DRIVER ) = DISPLAY_DEVICE_MIRRORING_DRIVER Then
      lbMonitorList.Items.Add('     + Display Device Mirroring Driver')
    Else
      lbMonitorList.Items.Add('     - Display Device Mirroring Driver');

    If ( Info.StateFlags And DISPLAY_DEVICE_VGA ) = DISPLAY_DEVICE_VGA Then
      lbMonitorList.Items.Add('     + Display Device VGA')
    Else
      lbMonitorList.Items.Add('     - Display Device VGA');


    AdapterName := StrAlloc(SizeOf(Info.DeviceName));
    Try
      StrCopy(AdapterName, Info.DeviceName);
      EnumDisplayDevices(AdapterName, 0, Info, 0);
      lbMonitorList.Items.Insert(OldPos, '   Monitorname : ' + Info.DeviceString);
    Finally
      StrDispose(AdapterName);
    End;

    Inc(Cntr);
  End;
End;
lbMonitorList = TListBox

Und man möge mir verzeihen, aber es ist ein alter Code. Dadurch stehen dort noch Dinge wie StrAlloc() und StrDispose(). Das könntest du bei dir gleich abändern...

Martin K 23. Nov 2006 20:21

Re: MyPC (SystemInfo Programm)
 
Zu Deinem Code oben, zum Auslesen der Ordnerverzeichnisse:
Ich glaube das liegt daran, dass Path als Result zurückgegeben wird und danach freigegeben wird.
Evtl. könnten dadurch Exceptions entstehen.

Hier mal, wie ich es gemacht habe:
Delphi-Quellcode:
function GetShellPath(const CSIDL: Byte): String;
var pidl: PItemIdList; Malloc: IMalloc;
begin
  if (SHGetMalloc(Malloc)=S_OK) and SUCCEEDED(SHGetSpecialFolderLocation(0,CSIDL,pidl)) then
  try
    SetLength(Result,MAX_PATH+1);
    if SHGetPathFromIDList(pidl,PChar(Result)) and (PChar(Result)<>'') then
      Result:=IncludeTrailingPathDelimiter(PChar(Result))
    else
      Result:='';
  finally
    Malloc.Free(pidl);
  end
  else
    Result:='';
end;
Dann noch einen Code hierzu:
Zitat:

Zitat von Martin K
Aber noch ein paar Vorschläge:
- unter Prozesse fehlt bei manchen der Pfad und daher auch das Icon.
Tipp: wenn nur der Dateiname da steht, z.B. calc.exe könntest Du über die EnvironmentVariable Path und mithilfe von FileExists evtl. den Pfad herausfinden.
- unter Dienste fehlen ziemlich viele Icons. Evtl. müsstest Du, um an den Pfad des Icons heran zu kommen, Parameter aus dem Pfad herausfiltern und Anführungsstriche entfernen, dazu gab es hier mal einen ganz guten Code.

Die folgende Funktion entfernt die Parameter, die nach einer Leertaste folgen können bzw. auch die "Anführungszeichen", expandiert die %Umgebungsvariablen%, und findet eine ausführbare Datei mittels der Umgebungsvariablen Path und PathExt.

Wenn die Datei nicht gefunden wurde, wird ein leerer String zurückgegeben, ansonsten der vollständige Dateiname.
Delphi-Quellcode:
function GetExecFileName(const Command: String): String;

  function ExpandEnvironmentPath(const Path: String): String;
  begin
    SetLength(Result,ExpandEnvironmentStrings(PChar(Path),nil,0));
    ExpandEnvironmentStrings(PChar(Path),PChar(Result),Length(Result));
    Result:=PChar(Result);
  end;

var b: Boolean; i,j: Integer; s: String; Path, PathExt: TStrings;
begin
  s:=Trim(ExpandEnvironmentPath(Command));
  if (s='') or FileExists(s) then
    Result:=s
  else
  begin
    i:=1;
    b:=False;
    while (i<=Length(s)) and ((s[i]<>' ') or b) do
    begin
      if s[i]='"' then
        b:=not b;
      Inc(i);
    end;
    s:=Trim(StringReplace(Copy(s,1,i-1),'"','',[rfReplaceAll]));
    if (s='') or FileExists(s) then
      Result:=s
    else
    begin
      Path:=TStringList.Create;
      PathExt:=TStringList.Create;
      try
        Path.Delimiter:=PathSep;
        Path.DelimitedText:=GetEnvironmentVariable('Path');
        Path.Append(ExpandEnvironmentPath('%UserProfile%'));
        Path.Append(ExpandEnvironmentPath('%SystemDrive%'));
        PathExt.Delimiter:=PathSep;
        PathExt.DelimitedText:=LowerCase(GetEnvironmentVariable('PathExt'));
        if PathExt.Count>0 then
          for i:=0 to Pred(PathExt.Count) do
            if FileExists(ChangeFileExt(s,PathExt[i])) then
            begin
              Result:=ChangeFileExt(s,PathExt[i]);
              Exit;
            end;
        if Path.Count>0 then
          for j:=0 to Pred(Path.Count) do
          begin
            if FileExists(IncludeTrailingPathDelimiter(Path[j])+s) then
            begin
              Result:=IncludeTrailingPathDelimiter(Path[j])+s;
              Exit;
            end
            else
            if PathExt.Count>0 then
              for i:=0 to Pred(PathExt.Count) do
                if FileExists(ChangeFileExt(IncludeTrailingPathDelimiter(Path[j])+s,PathExt[i])) then
                begin
                  Result:=ChangeFileExt(IncludeTrailingPathDelimiter(Path[j])+s,PathExt[i]);
                  Exit;
                end;
          end;
        Result:='';
      finally
        Path.Free;
        PathExt.Free;
      end;
    end;
  end;
end;
Beispiel:
Delphi-Quellcode:
GetExecFileName('calc');
liefert:
C:\WINDOWS\system32\calc.exe
zurück.

Mazel 24. Nov 2006 07:24

Re: MyPC (SystemInfo Programm)
 
Danke an Muetze1 und Martin K. Ich werde, sobald ich wieder Zeit dafür habe, die Codes verwenden um eine noch bessere Version zu bauen. :)

Danke nochmal :thumb:

Gruß
Mazel

stonimahoni 24. Nov 2006 08:27

Re: MyPC (SystemInfo Programm)
 
hi..


dein prog gefällt mir sehr gut. alle achtung :thumb: :thumb:

wenn du nun noch schaffst ( sofern du das überhaupt möchtest ), die smart werte und die temps der hdds (aller, zumal everest z.b. das irgendwie nicht schafft - bei aktuellen chips) und der cpu usw auszulesen und anzuzeigen, wird es einen festen platz bei mir einnehmen :)



ps.: den code stellst du nicht noch zur verfügung oder? würde mich echt mal interessieren wie du so diverses gelöst hast


big thx und mfg und vor allem : viel erfolg bei der weiterentwicklung


carsten

Mazel 24. Nov 2006 12:24

Re: MyPC (SystemInfo Programm)
 
Danke für das Feedback :wink:
Zitat:

wenn du nun noch schaffst ( sofern du das überhaupt möchtest ), die smart werte und die temps der hdds (aller, zumal everest z.b. das irgendwie nicht schafft - bei aktuellen chips) und der cpu usw auszulesen und anzuzeigen, wird es einen festen platz bei mir einnehmen
Damit habe ich mich nun noch garnicht beschäftigt, da müsste ich mich ersteinmal einarbeiten.

Zu den Code: Ich kann jedem gerne bestimmte Teile aus meinem Programm geben, das ist kein Problem, nur, wenn ich den gesamten Code veröffentliche ist es nicht mehr Freeware sondern OpenSource, was mir nicht so gefällt. Aber wie gesagt, gerne gebe ich Funktionen oder Prozeduren, einfach fragen.

Gruß
Mazel

RWarnecke 14. Mai 2007 20:34

Re: MyPC (SystemInfo Programm)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
nice Tool. Ich bastel gerade auch an solch einem Tool. Ich probiere mich dabei es auf die Betriebssystem Win2000, Win2003, WinXp und WinVista zum laufen zu bekommen.

Ich habe gerade mal Dein aktuellste Version vom Tool unter Windows XP getestet und habe die folgende Fehlermeldung im Anhang erhalten.

Zitat:

Zitat von Mazel
Zu den Code: Ich kann jedem gerne bestimmte Teile aus meinem Programm geben, das ist kein Problem, nur, wenn ich den gesamten Code veröffentliche ist es nicht mehr Freeware sondern OpenSource, was mir nicht so gefällt. Aber wie gesagt, gerne gebe ich Funktionen oder Prozeduren, einfach fragen.

Dazu würde mich eigentlich nur interessieren, wie Du die Speicherauslastung von den Processen ausliest und mir da eventuelle einen Tipp geben könntest. Ich bastel nämlich gerade an einem gleichen Programm. Unter .NET Framework habe ich es mittlerweile geschafft mit C#. Schreibe mir doch bitte einfach eine kurze PN, wie Du es gemacht hast, mit eventuellen Quellen, Links etc.

Danke für Deine Mühen im vorraus.

Mazel 15. Mai 2007 12:10

Re: MyPC (SystemInfo Programm)
 
Danke dir für die Info.

Der Fehler bei den Systemverzeichnisen existiert schon lange, und ich habe bisher keine Zeit gefunden, den Fehler zu beheben, jetzt aber werde ich mich wieder an die Arbeit machen.

Zu deiner Frage, die Informationen des Speichers lese ich über das WMI Interface aus. Ich habe dir dazu eine PN geschickt mit einem Beispiel Programm, der aus Codefragmenten meines Programmes besteht.

Gruß
Mazel

RWarnecke 20. Mai 2007 11:40

Re: MyPC (SystemInfo Programm)
 
Hi,

ich habe noch einen kleinen Fehler gefunden. Wird Dein Programm auf einem Rechner ausgeführt, welcher mehr als 2GB physikalischen Arbeitsspeicher beistzt, werden nur 2GB angezeigt.

Mazel 20. Mai 2007 12:08

Re: MyPC (SystemInfo Programm)
 
Oh, danke.

Das ist scheinbar bisher noch keinem aufgefallen. Ich denke mal dass das Programm welche getestet haben, die mehr als 2 GB haben.

Nun gut, ich werde mich darum kümmern, aber extra 1 GB zu meinem noch dazu kaufen werde ich nicht. :wink:

Gruß
Mazel

Mazel 28. Mai 2007 14:52

Re: MyPC (SystemInfo Programm)
 
So, nun gibt es die neue Version, Beta 5, die im allgemeinen ein Generalupdate ist, jedoch ein paar Neuerungen mit sich bringt. So werden zum Beispiel mehr Informationen zum Betriebssystem angezeigt. Funktionen wie CD-ROM Laufwerk öffnen oder Prozess beenden wurden entfernt, da diese doch nicht zum Programm passen.
Ich hoffe es gibt wieder fleißige Tester, die Fehler finden. :-D

Gruß
Mazel

ringli 28. Mai 2007 15:19

Re: MyPC (SystemInfo Programm)
 
Habe das Programm mal ganz kurz unter Vista Ultimate als eingeschränkter Benutzer getestet.

Unter Allgemein --> Betriebssystem steht das mein Windows nicht registriert sei. Das stimmt aber nicht. Oder gibt es einen Unterschied zwischen aktiviert und registriert? :gruebel:

Wenn ich auf Allgemein --> physikalischer Speicher gehe bekomme ich eine Schutzverletzung. Um genau zu sein kommt ungefähr jede Sekunde eine neue Fehlermeldung hinzu. Text der Fehlermeldung:

---------------------------
MyPC
---------------------------
Zugriffsverletzung bei Adresse 0048EC25 in Modul 'MyPC.exe'. Lesen von Adresse 00000008.
---------------------------
OK
---------------------------

RWarnecke 28. Mai 2007 15:48

Re: MyPC (SystemInfo Programm)
 
Hi Marcel,

ich habe Dein Programm getestet. Unter Windows VISTA in einer VMWare funktioniert alles soweit ganz gut und es wird auch richtig angezeigt, soweit ich es beurteilen kann. Wenn VISTA auf einen Rechner installiert ist, werde ich morgen mal testen.
Unter Windows 2000 gibt es drei bzw. vier Probleme.

Das erste Problem ist, dass das Programm noch Systemordner hinzudichtet. Wenn ich dann einen Doppelklick auf das Verzeichnis mache, wird mir das Verzeichnis geöffnet aus dem ich MyPC starte. Ich muss dazu sagen, ich starte es von einem Netzlaufwerk aus.

Beim zweiten Problem weiß ich jetzt nicht ob es nur für Windows 200 gilt oder für die anderen OS auch. Wenn auf den Rechner kein Drucker installiert ist, dann kommt eine Zugriffsverletzung und das Programm kann nur noch über den Taskmanager beendet werden. Das gleiche passiert bei Systemprogramm auch noch. Dort kommt ebenfalls eine Zugriffsverletzung.

Beim vierten oder dritten Problem, wie kann meine Windows 2000 VMWare in der Arbeitsgruppe Workgroup sein und gleichzeitig in Arbeitsgruppe. Ich installiere meine Systeme grundsätzlich in Arbeitsgruppe.D as gleiche habe ich auch unter Windows XP auf meinem Rechner.

Das Speicherproblem, wenn der Arbeitsspeicher über 4GB groß ist, ist auch noch vorhanden.

Beim Auslesen der verschiedenen Netzwerkdaten, ist Dein Programm nicht ansprechbar. Da wäre vielleicht eine Progressbar oder sowas angebracht.

So, nach so viel Kritik, muss ich noch ein Lob aussprechen. Dein Programm ist sehr übersichtlich gestaltet und bietet viel Informationen über das System. Ein Vorschlag meinerseits wäre es nicht schlecht, wenn man das ganze noch in einem Report zusammenfassen könnte, den man dann abspeichern kann und auch eventuell ausdrucken kann.

Edit:
Zitat:

Zitat von ringli
Wenn ich auf Allgemein --&gt; physikalischer Speicher gehe bekomme ich eine Schutzverletzung. Um genau zu sein kommt ungefähr jede Sekunde eine neue Fehlermeldung hinzu. Text der Fehlermeldung:

---------------------------
MyPC
---------------------------
Zugriffsverletzung bei Adresse 0048EC25 in Modul 'MyPC.exe'. Lesen von Adresse 00000008.
---------------------------
OK
---------------------------

Dem kann ich zustimmen, dieses passiert aber nur, wenn das Programm ausgeführt wird als Administrator. Starte ich es so, dann funktioniert die Speicheranzeige.

Mazel 28. Mai 2007 20:38

Re: MyPC (SystemInfo Programm)
 
Zitat:

Das erste Problem ist, dass das Programm noch Systemordner hinzudichtet. Wenn ich dann einen Doppelklick auf das Verzeichnis mache, wird mir das Verzeichnis geöffnet aus dem ich MyPC starte. Ich muss dazu sagen, ich starte es von einem Netzlaufwerk aus.
Welche Ordner werden hinzugedichtet? Theoretisch kann dies nicht sein, denn ich überprüfe mit DirectoryExists, ob das Systemverzeichnis existiert, wenn ja wird es in der Liste hinzugefügt. Ich habe die Systemordner in einem Array was durchgelaufen und auf Existens überprüft wird.
Zitat:

Beim zweiten Problem weiß ich jetzt nicht ob es nur für Windows 200 gilt oder für die anderen OS auch. Wenn auf den Rechner kein Drucker installiert ist, dann kommt eine Zugriffsverletzung und das Programm kann nur noch über den Taskmanager beendet werden. Das gleiche passiert bei Systemprogramm auch noch. Dort kommt ebenfalls eine Zugriffsverletzung.
Zugegeben, ein Fehler meinerseits. Ich habe leider eine Änderung nicht abgespeichert, die die Anzahl der jeweiligen Informationen verwaltet. Sollte jetzt aber nicht mehr da sein.
Zitat:

Beim vierten oder dritten Problem, wie kann meine Windows 2000 VMWare in der Arbeitsgruppe Workgroup sein und gleichzeitig in Arbeitsgruppe. Ich installiere meine Systeme grundsätzlich in Arbeitsgruppe.D as gleiche habe ich auch unter Windows XP auf meinem Rechner.
Ich kann nicht sagen woran das liegt, diese Information lese ich lediglich aus dem Systemresourcen aus.
Zitat:

Das Speicherproblem, wenn der Arbeitsspeicher über 4GB groß ist, ist auch noch vorhanden.
Ich nehme an du meinst 2GB und nicht 4GB. :wink:. Ja, dazu habe ich noch keine Lösung.
Zitat:

Beim Auslesen der verschiedenen Netzwerkdaten, ist Dein Programm nicht ansprechbar. Da wäre vielleicht eine Progressbar oder sowas angebracht.
Die Daten sind doch relativ schnell da. :gruebel:
Zitat:

Wenn ich auf Allgemein --&gt; physikalischer Speicher gehe bekomme ich eine Schutzverletzung. Um genau zu sein kommt ungefähr jede Sekunde eine neue Fehlermeldung hinzu.
Also das die Fehlermeldung sekündlich kommt wäre durch den Timer zu erklären der jede Sekunde neue Daten liefert, jeodch kann ich mir nicht erklären warum der Fehler nur unter Administrator nicht auftaucht. :gruebel:
Zitat:

Ein Vorschlag meinerseits wäre es nicht schlecht, wenn man das ganze noch in einem Report zusammenfassen könnte, den man dann abspeichern kann und auch eventuell ausdrucken kann.
Report ist in Planung, das vorgesehene Icon war schon auf der Form platziert.

Naja, ich werde weiter an dem Programm arbeiten. Bevor es eine Final gibt ist ncoh viel zu tun. :)

Gruß
Mazel

RWarnecke 29. Mai 2007 21:05

Re: MyPC (SystemInfo Programm)
 
Hi Marcel,

je mehr ich unter Windows VISTA teste, desto mehr Ergebnisse bekomme ich raus. Das VISTA auf einer VMWare Workstation 5.5.3 bringt mich noch in die Klappse. :cyclops: :spin2: :roteyes: :nerd: Denn das mit dem physikalischen Speicher kann ich jetzt unter der VMWare und auf einem Rechner garnichtmehr nachvollziehen. :roteyes: Jetzt kommt statt dessen eine Zugriffsverletzung, wenn ich die Option Tastatur aufrufe. :spin2:

Mazel 29. Mai 2007 21:20

Re: MyPC (SystemInfo Programm)
 
Ja, Vista ist recht komisch in seinem Verhalten. Ich weis nicht ob du das Thema um die Registry auslesen gelesen hast? Der Grund für das falsche Anzeigen des Datums auf dem Rechner des Freundes liegt an seinem 64-Bit Rechner. Der Registry-Schlüssel für die CurrentVersion wird in einem anderen Schlüssel umgeleitet. Ich muss also vorher nachfragen, ob das Programm auf ein Wow64 läuft oder nicht um die Umleitung zu umgehen.
Registry lesen unter Vista schlägt fehl

Gruß
Mazel

passsy 30. Mai 2007 14:19

Re: MyPC (SystemInfo Programm)
 
nur so n tipp kannst ja ma versuchen die temperatur sensoren auszulesen xD wünsch dir viel spaß und wenn du es schaffst (ich bezweifel es) dann pm ich dich^^

xxl1 30. Mai 2007 15:22

Re: MyPC (SystemInfo Programm)
 
das Programm schein nur Arbeitsspeicher bis 2GB zu erkennen, oder is das nur bei mir so?
->Bild<-
Gruß xxl1

[edit]
wurde schon erwähnt seh ich grade
[/edit]

Mazel 30. Mai 2007 19:36

Re: MyPC (SystemInfo Programm)
 
Ja das stimmt, wird aber in der nächsten Version nicht mehr fehlerhaft sein. Der Grund ist, dass die einfache Memory-Struktur nicht mehr als 2 GB kann und desshalb eine weitere Struktur verwendet werden muss.
Das sind alles solche Dinge, die durch ausprobieren herausgefunden werden. Schon interessant was man alles noch verändern muss. :)

Gruß
Mazel

Mazel 1. Jun 2007 14:12

Re: MyPC (SystemInfo Programm)
 
Kurz nach dem Genralupdate (Beta 5) kommt die Beta 6, diese soll nun entgültig die letzte Beta sein, zumindest informationsmäßig, da es natürlich nicht ausgeschlossen ist, das noch ein paar Bugs zu finden sind. Diese will ich aber beheben und eine Final auf meiner Website anbieten.

wichtige Änderungen sind die Erkennung von WOW64 um den richtigen Schlüssel in der Registry zu finden, Internet IP auch vor Router und RAM über 2 GB sollte erkannt werden (muss aber von euch getestet werden).

Weiterhin werde ich keine Reportfunktion einbinden, da die meisten Informationen schnell kopiert werden können und nicht jeder alle Informationen gedruckt haben möchte.

Gruß
Mazel


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz