home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CLIX - Fazer Clix Custa Nix
/
CLIX-CD.cdr
/
mac
/
lib
/
Mac
/
Processes.pm
< prev
next >
Wrap
Text File
|
1998-04-17
|
5KB
|
241 lines
=head1 NAME
Mac::Processes - Macintosh Toolbox Interface to Process Manager
=head1 SYNOPSIS
use Mac::Processes;
while ( ($psn, $psi) = each(%Process) ) {
print "$psn\t", $psi->processName,
" ", $psi->processNumber,
" ", $psi->processType,
" ", $psi->processSignature,
" ", $psi->processSize,
" ", $psi->processMode,
" ", $psi->processLocation,
" ", $psi->processLauncher,
" ", $psi->processLaunchDate,
" ", $psi->processActiveTime,
" ", $psi->processAppSpec, "\n";
}
=head1 DESCRIPTION
Access to Inside Macintosh is essential for proper use of these functions.
Explanations of terms, processes and procedures are provided there.
Any attempt to use these functions without guidance can cause severe errors in
your machine, including corruption of data. B<You have been warned.>
=cut
use strict;
package Mac::Processes::_ProcessInfoMap;
package Mac::Processes;
BEGIN {
use Exporter ();
use DynaLoader ();
use vars qw(@ISA @EXPORT %Process);
@ISA = qw(Exporter DynaLoader);
@EXPORT = qw(
LaunchApplication
LaunchDeskAccessory
GetCurrentProcess
GetFrontProcess
GetNextProcess
GetProcessInformation
SetFrontProcess
WakeUpProcess
SameProcess
ExitToShell
%Process
kNoProcess
kSystemProcess
kCurrentProcess
launchContinue
launchNoFileFlags
launchUseMinimum
launchDontSwitch
launchAllow24Bit
launchInhibitDaemon
modeDeskAccessory
modeMultiLaunch
modeNeedSuspendResume
modeCanBackground
modeDoesActivateOnFGSwitch
modeOnlyBackground
modeGetFrontClicks
modeGetAppDiedMsg
mode32BitCompatible
modeHighLevelEventAware
modeLocalAndRemoteHLEvents
modeStationeryAware
modeUseTextEditServices
modeDisplayManagerAware
);
}
bootstrap Mac::Processes;
tie %Process, q(Mac::Processes::_ProcessInfoMap);
=head2 Constants
=over 4
=item kNoProcess
=item kSystemProcess
=item kCurrentProcess
Special process IDs.
=cut
sub kNoProcess () { 0; }
sub kSystemProcess () { 1; }
sub kCurrentProcess () { 2; }
=item launchContinue
=item launchNoFileFlags
=item launchUseMinimum
=item launchDontSwitch
=item launchAllow24Bit
=item launchInhibitDaemon
Launch flags.
=cut
sub launchContinue () { 0x4000; }
sub launchNoFileFlags () { 0x0800; }
sub launchUseMinimum () { 0x0400; }
sub launchDontSwitch () { 0x0200; }
sub launchAllow24Bit () { 0x0100; }
sub launchInhibitDaemon () { 0x0080; }
=item modeDeskAccessory
=item modeMultiLaunch
=item modeNeedSuspendResume
=item modeCanBackground
=item modeDoesActivateOnFGSwitch
=item modeOnlyBackground
=item modeGetFrontClicks
=item modeGetAppDiedMsg
=item mode32BitCompatible
=item modeHighLevelEventAware
=item modeLocalAndRemoteHLEvents
=item modeStationeryAware
=item modeUseTextEditServices
=item modeDisplayManagerAware
Mode flags in SIZE resource.
=cut
sub modeDeskAccessory () { 0x00020000; }
sub modeMultiLaunch () { 0x00010000; }
sub modeNeedSuspendResume () { 0x00004000; }
sub modeCanBackground () { 0x00001000; }
sub modeDoesActivateOnFGSwitch () { 0x00000800; }
sub modeOnlyBackground () { 0x00000400; }
sub modeGetFrontClicks () { 0x00000200; }
sub modeGetAppDiedMsg () { 0x00000100; }
sub mode32BitCompatible () { 0x00000080; }
sub modeHighLevelEventAware () { 0x00000040; }
sub modeLocalAndRemoteHLEvents () { 0x00000020; }
sub modeStationeryAware () { 0x00000010; }
sub modeUseTextEditServices () { 0x00000008; }
sub modeDisplayManagerAware () { 0x00000004; }
=back
=cut
package Mac::Processes::_ProcessInfoMap;
use Carp;
sub TIEHASH {
my($pack) = @_;
bless \{}, $pack;
}
sub FETCH {
my($self,$psn) = @_;
Mac::Processes::GetProcessInformation($psn);
}
sub FIRSTKEY {
Mac::Processes::GetNextProcess(0);
}
sub NEXTKEY {
my($self,$psn) = @_;
Mac::Processes::GetNextProcess($psn);
}
sub DESTROY {
}
sub STORE { croak "Can't change process info"; }
sub DELETE { croak "Can't DELETE processes yet"; }
package LaunchParam;
sub new {
my $package = shift @_;
my $my = _new();
my ($arg,$value);
while (($arg, $value) = splice(@_, 0, 2)) {
$my->$arg($value);
}
$my;
}
=include Processes.xs
=head1 BUGS/LIMITATIONS
=head1 FILES
=head1 AUTHOR(S)
Matthias Ulrich Neeracher <neeri@iis.ee.ethz.ch> Author
Bob Dalgleish <bob.dalgleish@sasknet.sk.ca> Documenter
=cut
__END__