Zurück   Flashforum > Flex und AIR > Adobe AIR

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-10-2010, 09:45   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2010
Beiträge: 4
ClientUserinfo

hallo all

gibt es die möglichkeit in air an die clientinformationen heranzukommen?

computername, clientip, username, domäne usw.

bisher habe ich diese informationen über vbs bzw. js

über activX-objekte bzw. der wscript.shell oder wmi geholt.

activX-objekte funktionieren in air nicht und im internet habe ich noch gar nichts gefunden, bezüglich dieser informationen.

hat von euch jemand eine idee oder eine lösung parat?

gruß blasco
blasco ist offline   Mit Zitat antworten
Alt 24-10-2010, 17:35   #2 (permalink)
Neuer User
 
Registriert seit: Oct 2010
Beiträge: 4
keiner eine idee?
blasco ist offline   Mit Zitat antworten
Alt 25-10-2010, 14:29   #3 (permalink)
Koda ;)
 
Benutzerbild von badnoob
 
Registriert seit: Oct 2010
Ort: Hannover
Beiträge: 213
hi,
ip und domaene wuesste ich nichts direktes. was mir da einfallen wuerde, waere ne native app zu suchen, die dir das auf cmd rausschmeisst. dann kannst du das mit air prima auslesen.

fuer user und pc-namen hab ich mal was gebastelt. ich behaupte mal, dass du dir die wichtigen stellen selbst raussuchen kannst gerade wenig zeit dass zu kuerzen.
PHP-Code:
private function getHashString():void
        
{
            var 
arrTmp:Array = File.userDirectory.nativePath.split(File.separator);
            
this.strUsername    arrTmp[int(arrTmp.length 1)];
            
            if(
NativeProcess.isSupported)
            {
                
this.strHostname '';

                var 
OS                    :String                        flash.system.Capabilities.os;
                var    
fileHostname        :File;
                var 
procInfoHostname    :NativeProcessStartupInfo    = new NativeProcessStartupInfo();
                var 
procHostname        :NativeProcess                = new NativeProcess();
                    
procHostname.addEventListener(NativeProcessExitEvent.EXIT, this.hostnameHandler);
                    
procHostname.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATAthis.hostnameHandler);
                var 
arrRootDirs    :Array;
                var 
i            :int;
                var 
aLen        :int;
                var 
curDir        :File;
                var 
arrSubDirs    :Array;
                var 
j            :int;
                var 
subLen        :int;
                var 
subDir        :File;
                var 
sysDir        :File;
                var 
blnFileFound:Boolean;
                
                if(
OS.indexOf('Windows') !== int(1))
                {
                    
/**
                     * now select which Windows is supported
                     * only XP, Vista, 7
                     */
                    
if(OS.indexOf('XP')        === int(1)
                    && 
OS.indexOf('Vista')    === int(1)
                    && 
OS.indexOf('7')        === int(1))
                    {
                        
Alert.show(ApplicationErrors.APP_ERR_0001'System unsupported'Alert.OK, (MainApplication.objMainApp.stage as Sprite), this.exitApplication);
                        return;
                    }
                    
                    
/**
                     * First, do the easy way
                     */
                    
fileHostname = new File('C:'File.separator +'Windows'File.separator +'System32'File.separator +'HOSTNAME.EXE');
                    if(
fileHostname.exists === true)
                    {
                        
/**
                         * Wow, everything's fine, we can read the hostname
                         */
                        
procInfoHostname.executable    fileHostname;
                        
procHostname.start(procInfoHostname);
                    }
                    else
                    {
                        
arrRootDirs    File.getRootDirectories();
                        
i            int(1);
                        
aLen        arrRootDirs.length;
                        
        
rootDirLoopWin:    while(++!== aLen)
                        {
                            
curDir        arrRootDirs[i] as File;
                            
                            
arrSubDirs    curDir.getDirectoryListing();
                            
j            int(1);
                            
subLen        arrSubDirs.length;
                            
                            while(++
!== subLen)
                            {
                                
subDir arrSubDirs[j];
                                
                                if(
subDir.isDirectory === true)
                                {
                                    
sysDir = new File(subDir.nativePath File.separator 'System32');
                                    if(
sysDir.exists && sysDir.isDirectory)
                                    {
                                        break 
rootDirLoopWin;
                                    }
                                }
                            }
                        }
        
                        
fileHostname = new File(sysDir.nativePath File.separator 'HOSTNAME.EXE');
                        
procInfoHostname.executable    fileHostname;
                        
procHostname.start(procInfoHostname);
                    }
                }
                else if(
OS.indexOf('Linux') !== int(1)
                ||        
OS.indexOf('Mac')    !== int(1))
                {
                    
/**
                     * Again, do the easy way first
                     */
                    
fileHostname = new File('/bin/hostname');
                    if(
fileHostname.exists === true)
                    {
                        
/**
                         * Wow, everything's fine, we can read the hostname
                         */
                        
procInfoHostname.executable    fileHostname;
                        
procHostname.start(procInfoHostname);
                    }
                    else
                    {
                        
arrRootDirs    = ['/sbin''/usr/sbin''/usr/bin''/usr/local/bin''/usr/local/sbin'];
                        
i            int(1);
                        
aLen        arrRootDirs.length;
                        
                        while(++
!== aLen)
                        {
                            
curDir        arrRootDirs[i] as File;

                            if(
curDir.isDirectory === false) continue;

                            
fileHostname = new File(curDir.nativePath File.separator +'hostname');
                            
                            if(
fileHostname.exists === true)
                            {
                                
procInfoHostname.executable    fileHostname;
                                
procHostname.start(procInfoHostname);
                                
blnFileFound true;
                                break;
                            }
                        }
                        
                        if(
blnFileFound === false)
                        {
                            
Alert.show(ApplicationErrors.APP_ERR_0002'Unhandled Error');
                        }
                    }
                }
                else
                {
                    
Alert.show(ApplicationErrors.APP_ERR_0001'System unsupported'Alert.OK, (MainApplication.objMainApp.stage as Sprite), this.exitApplication);
                }    
            }
        }
        
        
        private function 
hostnameHandler(evt:Event):void
        
{
            if(
evt.type === ProgressEvent.STANDARD_OUTPUT_DATA)
            {
                var 
sO:IDataInput = (evt.target as NativeProcess).standardOutput;

                while(
sO.bytesAvailable)
                {
                    
this.strHostname += sO.readUTFBytes(sO.bytesAvailable);
                }
            }
            else
            {
                if((
evt as NativeProcessExitEvent).exitCode !== 0)
                {
                    
Alert.show(evtthis.strHostname,'Error trying to get hostname');
                }
                else
                {
                    var 
proc:NativeProcess evt.target as NativeProcess;
                        
proc.closeInput();
                        
proc.removeEventListener(ProgressEvent.STANDARD_OUTPUT_DATAthis.hostnameHandler);
                        
proc.removeEventListener(NativeProcessExitEvent.EXIT, this.hostnameHandler);

                    
this.strHostname this.strHostname.replace('\n''').replace('\r''');
                    
this.createUser_and_Hostname_Hash();
                }
            }
        } 
wenn du noch was findest, wie man domaene und ip rausbekommt, lass es mich wissen - kanns auch gebrauchen
badnoob ist offline   Mit Zitat antworten
Alt 25-10-2010, 17:58   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2010
Beiträge: 4
hallo

vielen dank für deine hilfe und den code

in was ist das geschrieben? AS

also kann man mit AIR andere apps starten?
blasco ist offline   Mit Zitat antworten
Alt 25-10-2010, 19:23   #5 (permalink)
Koda ;)
 
Benutzerbild von badnoob
 
Registriert seit: Oct 2010
Ort: Hannover
Beiträge: 213
ja, is AS3. du kannst mit AIR saemtliche nativen programme starten, sofern der nutzer dem bei der installation zustimmt.
badnoob ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:45 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele