Schrift
[thread]5701[/thread]

Windows Systemfunktionen: Wie greif ich die ganzen Infos ab? (Seite 2)



<< |< 1 2 3 >| >> 28 Einträge, 3 Seiten
havi
 2003-09-09 17:51
#49236 #49236
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=Robby,09.09.2003, 12:47]hey, das ist nicht witzig *frechheit* :D[/quote]
Naja, ein klein wenig schon :-)
Robby
 2003-09-09 17:55
#49237 #49237
User since
2003-08-11
409 Artikel
BenutzerIn
[default_avatar]
[quote=havi,09.09.2003, 15:51][quote=Robby,09.09.2003, 12:47]hey, das ist nicht witzig *frechheit* :D[/quote]
Naja, ein klein wenig schon :-)[/quote]
*grummel* :D
Kaum macht man es richtig - schon funktioniert es!
[E|B]
 2003-09-09 23:44
#49238 #49238
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Weiß keiner wie man einen Screensaver startet?
Systemsteuerung > Anzeige > Bildschirmschoner > Vorschau
8)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Crian
 2003-09-10 00:58
#49239 #49239
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Robby,09.09.2003, 09:51]Ähm, sorry. Klar mit Perl...sonst hätte ich es ja im Windows Forum gepostet ;)[/quote]
Da gehört die Frage aber trotzdem hin, schließlich geht es da um Fragen zur Perlprogrammierung auf Windowssystemen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2003-09-10 01:27
#49240 #49240
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Crian,09.09.2003, 22:58][quote=Robby,09.09.2003, 09:51]Ähm, sorry. Klar mit Perl...sonst hätte ich es ja im Windows Forum gepostet ;)[/quote]
Da gehört die Frage aber trotzdem hin, schließlich geht es da um Fragen zur Perlprogrammierung auf Windowssystemen.[/quote]
nö ;-) oder steht im Windows-Forum was von Perl?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-09-10 01:42
#49241 #49241
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Hab ich auch gesehen, deshalb ist der Thread ja noch hier... das war wohl früher mal so...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Robby
 2003-09-10 09:39
#49242 #49242
User since
2003-08-11
409 Artikel
BenutzerIn
[default_avatar]
*verwirr*
Fragen zu Perl -> Perl-Forum
Fragen zu Windows (nicht profgrammierung) -> Windows-Forum

???

Oder etwa nicht?
Kaum macht man es richtig - schon funktioniert es!
Robby
 2003-09-10 10:15
#49243 #49243
User since
2003-08-11
409 Artikel
BenutzerIn
[default_avatar]
mal ein andere Versuch:

ich hab vor Monatenn ein CPP-Programm gefunden, das die CPU-Nutzung anzeigen kann....kann mir jemand sagen was ich
a) an dem Programm ändern muss, dass es den Wert an mein Perl-Programm übergibt (return dbIdleTime funktioniert bisher nicht)
b) wie ich die cpp-exe in meinem Perl-Skript aufrufen muss um den Return Wert zu bekommen...

Jemand eine Idee?

Hier der Code des CPP-Programms:
(ich weiss...eigentlich flasches Forum, aber ich möchte das ergebnis ja mit Perl abgreifen ;) )
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <windows.h>
#include <conio.h>
#include <stdio.h>

#define SystemBasicInformation 0
#define SystemPerformanceInformation 2
#define SystemTimeInformation 3

#define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))

typedef struct
{
DWORD dwUnknown1;
ULONG uKeMaximumIncrement;
ULONG uPageSize;
ULONG uMmNumberOfPhysicalPages;
ULONG uMmLowestPhysicalPage;
ULONG uMmHighestPhysicalPage;
ULONG uAllocationGranularity;
PVOID pLowestUserAddress;
PVOID pMmHighestUserAddress;
ULONG uKeActiveProcessors;
BYTE bKeNumberProcessors;
BYTE bUnknown2;
WORD wUnknown3;
} SYSTEM_BASIC_INFORMATION;

typedef struct
{
LARGE_INTEGER liIdleTime;
DWORD dwSpare[76];
} SYSTEM_PERFORMANCE_INFORMATION;

typedef struct
{
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
} SYSTEM_TIME_INFORMATION;


typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);

PROCNTQSI NtQuerySystemInformation;


void main(void)
{
SYSTEM_PERFORMANCE_INFORMATION SysPerfInfo;
SYSTEM_TIME_INFORMATION SysTimeInfo;
SYSTEM_BASIC_INFORMATION SysBaseInfo;
double dbIdleTime;
double dbSystemTime;
LONG status;
LARGE_INTEGER liOldIdleTime = {0,0};
LARGE_INTEGER liOldSystemTime = {0,0};

NtQuerySystemInformation = (PROCNTQSI)GetProcAddress(
GetModuleHandle("ntdll"),
"NtQuerySystemInformation"
);

if (!NtQuerySystemInformation)
return;

// get number of processors in the system
status = NtQuerySystemInformation(SystemBasicInformation,&SysBaseInfo,sizeof(SysBaseInfo),NULL);
if (status != NO_ERROR)
return;

printf("\nCPU Usage (press any key to exit): ");
while(!kbhit())
{
// get new system time
status = NtQuerySystemInformation(SystemTimeInformation,&SysTimeInfo,sizeof(SysTimeInfo),0);
if (status!=NO_ERROR)
return;

// get new CPU's idle time
status = NtQuerySystemInformation(SystemPerformanceInformation,&SysPerfInfo,sizeof(SysPerfInfo),NULL);
if (status != NO_ERROR)
return;

// if it's a first call - skip it
if (liOldIdleTime.QuadPart != 0)
{
// CurrentValue = NewValue - OldValue
dbIdleTime = Li2Double(SysPerfInfo.liIdleTime) - Li2Double(liOldIdleTime);
dbSystemTime = Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(liOldSystemTime);

// CurrentCpuIdle = IdleTime / SystemTime
dbIdleTime = dbIdleTime / dbSystemTime;

// CurrentCpuUsage% = 100 - (CurrentCpuIdle * 100) / NumberOfProcessors
dbIdleTime = 100.0 - dbIdleTime * 100.0 / (double)SysBaseInfo.bKeNumberProcessors + 0.5;

printf("\b\b\b\b%3d%%",(UINT)dbIdleTime);
}

// store new CPU's idle and system time
liOldIdleTime = SysPerfInfo.liIdleTime;
liOldSystemTime = SysTimeInfo.liKeSystemTime;

// wait one second
Sleep(1000);
}
printf("\n");
}
Kaum macht man es richtig - schon funktioniert es!
havi
 2003-09-10 10:43
#49244 #49244
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Bei Fragen zu C++ ist esskar wohl eine sehr gute Ansprechperson!

Gruss
Robby
 2003-09-10 11:40
#49245 #49245
User since
2003-08-11
409 Artikel
BenutzerIn
[default_avatar]
naja, ein bischen C++ kann ich auch....programmier ja jeden Tag im Geschäft damit ;)

Ich weiß auch dass ich den Wert für die CPU-Auslastung zurück geben muß. Das mach ich mit Return.
Die Hauptfrage ist, wie greif ich den Returnwert in meinem Perl-Programm ab???

So etwa: ???

my $cpu_auslastung = system("CPP-Programm.exe");

(das geht nämlich nicht, hab ich schon getestet.... )
Kaum macht man es richtig - schon funktioniert es!
<< |< 1 2 3 >| >> 28 Einträge, 3 Seiten



View all threads created 2003-09-09 11:18.