home *** CD-ROM | disk | FTP | other *** search
-
- =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__
-