void MacAPIWindows::GetlistProcess(){ ProcessSerialNumber psn = { 0, kNoProcess }; qDebug()<< GetNextProcess(&psn); ProcessInfoRec info; qDebug()<<&psn; OSErr error = GetProcessInformation(&psn,&info); qDebug()<<info.processName;}
0 0x7fff5fbffa98 0x0
macx { LIBS += -framework CoreFoundation -framework Carbon LIBS += -framework LDAP DEFINES += MAC_BOOK_PROVIDER DEFINES += LDAP_PROVIDER}
OSErr error = GetProcessInformation(&psn,&info);
ProcessInfoRec infoRec;infoRec.processInfoLength = sizeof(ProcessInfoRec);infoRec.processName = NULL;infoRec.processAppSpec = NULL; if (GetProcessInformation(¤tProcessPSN, &infoRec) == noErr)...
C++ (Qt)unsigned char pName[257];ProcessInfoRec infoRec;infoRec.processInfoLength = sizeof(ProcessInfoRec);infoRec.processName = pName;infoRec.processAppSpec = NULL; if (GetProcessInformation(¤tProcessPSN, &infoRec) == noErr) { pName[pName[0] + 1] = 0; // pascal string to C qDebug() << (char *) (pName + 1); }
C++ (Qt) ProcessSerialNumber psn = { 0, kNoProcess }; qDebug()<< GetNextProcess(&psn); unsigned char pName[257]; unsigned int type; ProcessInfoRec infoRec; infoRec.processInfoLength = sizeof(ProcessInfoRec); infoRec.processName = pName; infoRec.processAppRef = NULL; // возвращает путь к файлу, тип возращаемого знач. FSRefPtr infoRec.processType = type; // возвращает тип приложения "APPL" или "appe" , тип возвращ. знач. UInt32 if (GetProcessInformation(&psn, &infoRec) == noErr) { qDebug() << (char *) (pName + 1); qDebug()<<type; }
C++ (Qt)QString MacAPIWindows::uniCFStrToQStr(const FSRefPtr cfString){ QChar qchar; QString qString(""); int lenCF=(int)CFStringGetLength(cfString); // возвращает длину строки for (int i=0;i<lenCF;i++) { qchar=((ushort)CFStringGetCharacterAtIndex(cfString,(CFIndex)i)); // получает символ из строки qString=qString+qchar; } return qString;}
C++ (Qt)UInt32 type = 'appl';OSType type2 = 'TEXT';
C++ (Qt) if (GetProcessInformation(&psn, &infoRec) == noErr) { qDebug() << (char *) (pName + 1);
C++ (Qt)union Type{ UInt32 pType2; char bytes[4];}; void MacAPIWindows::GetlistProcess(){ unsigned char pName[257]; char pPath[257]; ProcessSerialNumber psn = { 0, kNoProcess }; ProcessInfoRec infoRec; infoRec.processInfoLength = sizeof(ProcessInfoRec); infoRec.processAppRef = NULL; infoRec.processName = pName; infoRec.processLocation = pPath; OSErr error; do { error = GetNextProcess(&psn); if (GetProcessInformation(&psn, &infoRec) == noErr && IsProcessVisible(&psn)) { pName[pName[0] + 1] = 0; qDebug() << (char *) (pName + 1); qDebug() << pPath<<"!"; } Type type; type.pType2 = infoRec.processType; qDebug()<<type.bytes[3]<<type.bytes[2]<<type.bytes[1]<<type.bytes[0]; } while(error != procNotFound); }
C++ (Qt) do { error = GetNextProcess(&psn); if (GetProcessInformation(&psn, &infoRec) == noErr && infoRec.processMode == 4832) { pName[pName[0] + 1] = 0; qDebug() << (char *) (pName + 1); qDebug() << (char *) infoRec.processLocation<<"!"; } Type type; type.pType2 = infoRec.processType; qDebug()<<type.bytes[3]<<type.bytes[2]<<type.bytes[1]<<type.bytes[0]; } while(error != procNotFound);