Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
SHELL_EXEC lasa fereastra in incarcare si nu face nimic
Last Updated: May 07 2010 16:31, Started by
SINEKT
, Apr 26 2010 11:23
·
0
#1
Posted 26 April 2010 - 11:23
Ce vreau eu sa fac este foarte simplu, cica... Vreau sa rulez un fisier PRF (Profil Outlook) cu Outlook.exe, direct dintr-o pagina PHP.
Comanda este: C:\Progra~1\Micros~2\OFFICE11\outlook.exe /importprf C:\Docume~1\User\Desktop\Profile.prf si functioneaza fara probleme in consola (cmd.exe). Se deschide Microsoft Outlook si importa toate setarile profilului din fisierul PRF aflat pe desktop. Acum, in PHP: <? $x = popen("C:\Progra~1\Micros~2\OFFICE11\outlook.exe /importprf C:\Docume~1\User\Desktop\Profile.prf", "r"); pclose($x); ?> Unde in loc de POPEN am incercat pe rand si SYSTEM, SHELL_EXEC, EXEC, PASSTHRU, toate cu sintaxa corecta, zic eu, si nici unul nu face nimic. In momentul cand rulez scriptul, pagina ramane forever in "loading", se deschid procesele CMD si OUTLOOK, care raman permanent deschise, si atat. Informatiile din fisier NU mi se importa in outlook. Vreo idee la ce se gandeste scriptul asta de uita sa mai faca ce trebuie ? P.S.: Chiar imi cer scuze ca nu am postat la incepatori, dar caseta cu subforumul este asezata foarte aiurea, in asa fel ca seamana cu un banner din ala de reclama si automat mi-a sarit privirea peste el. Chiar am cautat sa postez la incepatori, dar nu am vazut deloc caseta aia... Edited by SINEKT, 26 April 2010 - 11:32. |
#2
Posted 26 April 2010 - 11:29
Si cand rulezi din cmd.exe direct:
C:\Progra~1\Micros~2\OFFICE11\outlook.exe /importprf C:\Docume~1\Dot\Desktop\Profile.prf Nu uita sa se mai inchida singur? |
#3
Posted 26 April 2010 - 11:32
Nu.
Se lanseaza Outlook, importa setarile de profil, iar in consola cursorul imi trece pe urmatoarea linie. Deci ceva de gen: C:\> tastez comanda si rezulta: C:\>C:\Progra~1\Micros~2\OFFICE11\outlook.exe /importprf C:\Docume~1\User\Desktop\Profile.prf apas enter si se lanseaza outlook, care importa cu succes datele. Acum am in consola: C:\>C:\Progra~1\Micros~2\OFFICE11\outlook.exe /importprf C:\Docume~1\User\Desktop\Profile.prf C:\> In fine, adica procesele inca ruleaza amandoua dupa comanda, atat CMD cat si OUTLOOK, numai ca imi face treaba care ma intereseaza pe mine, adica importarea datelor. Edited by SINEKT, 26 April 2010 - 11:36. |
#4
Posted 26 April 2010 - 11:35
Deci ajungi de la starea initiala
C:\> la starea finala a promptului: C:\> fara sa apesi X-ul ferestrei, File->exit, CTRL+C in consola sau orice altceva? Fara sa interactionezi cu outlook in niciun fel? Edited by OriginalCopy, 26 April 2010 - 11:36. |
#6
Posted 26 April 2010 - 11:39
Oops, acum am vazut, tu folosesti stringuri interpretate ("asa") si backslash, nu stringuri neinterpretate ('asa').
|
#7
Posted 26 April 2010 - 11:42
Si asa si asa este exact acelasi lucru, nu imi face, nu imi arata altceva, doar se blocheaza cum am spus.
|
#9
Posted 26 April 2010 - 12:16
Uite ce folosesc eu pt executii externe pe windows:
function _exec($cmd) { $WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Run($cmd, 1,false); return $oExec == 0 ? true : false; } Al treilea parametru din Run specifica daca sa astepte sau nu terminarea executiei programului lansat. API-ul complet pe MSDN |
#10
Posted 26 April 2010 - 15:26
Scuze pentru lipsa de informare, dar... unde anume acolo intra stringul de comanda ? Comanda in sine, de ex. "ping www.google.ro".
|
|
#11
Posted 26 April 2010 - 15:50
Am dat copy cu tot cu functia in care o foloseam. reiau:
$WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Run('ping www.google.ro', 1,false); |
#12
Posted 26 April 2010 - 16:23
Ah, da. Sunt si rupt de oboseala. Banuiam ca acolo era
Bun, sa vad cum ma descurc si cu asta, si cum reusesc sa instalez si ultimele versiuni pe PHP si Apache si mai revin. |
#13
Posted 27 April 2010 - 14:25
Buuun. Am incercat cu sciptul tau, Pac Man. Acelasi lucru, nu se intampla nimic interesant. Imi porneste procesul OUTLOOK.exe, dar nu face nimic. In plus, cand inchid fortat procesul Outlook, imi da:
Fatal error: Maximum execution time of 30 seconds exceeded in D:\EU\Apash\htdocs\exec.php on line 6 Asta cu true in loc de false acolo. Cand e false, nu da eroare, dar in rest la fel. Nu am vreo posibilitate sa mai adaug ceva sa imi scrie si mie ce face mai in detaliu, ca un log ? Ca sa pot macar sa am o mica idee unde se poticneste ? Edited by SINEKT, 27 April 2010 - 14:26. |
#14
Posted 27 April 2010 - 14:29
Ma indoiesc ca e problema lui PHP. Outlook nu se lasă ușor controlat.
PHP nu face nimic deosebit, doar îți lansează procesul în execuție. Dacă sunt opțiuni, ele sunt pentru outlook, iar pentru ajutor cu asta există aria windows. Edited by OriginalCopy, 27 April 2010 - 14:29. |
#15
Posted 27 April 2010 - 14:35
Ti s-a mai zis, dar esti SIGUR ca folosesti ghilimele simple ( ' )? Daca ai ghilimele duble ( " ) orice backslash ( \ ) e considerat 'escape sequence' si iti strica stringul de comanda.
Eventual pune intr-o variabila stringul de comanda si apoi da-i un echo pe ecran sa te asiguri ca este ceea ce trebuie acolo |
|
#16
Posted 27 April 2010 - 23:21
#17
Posted 03 May 2010 - 10:08
Alte idei ? Altceva n-am mai gasit, si in continuare am probleme.
|
#18
Posted 06 May 2010 - 11:09
Incearca asa:
$cmd = str_replace("\\","/",'C:\Progra~1\Micros~2\OFFICE11\outlook.exe /importprf C:\Docume~1\User\Desktop\Profile.prf'); pclose(popen("start /B ". $cmd, "r")); |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users