Rumah pembangunan bahagian belakang tutorial php PHP借用$cmd运行程序后,怎么关闭

PHP借用$cmd运行程序后,怎么关闭

Jun 13, 2016 pm 01:12 PM
notepad quot windows

PHP借用$cmd运行程序后,如何关闭?
我想用PHP运行某exe程序(不要CRON等计划程序,PHP里还有其他内容。这里方便测试,以记事本为例),在其打开3秒后,执行关闭。
如何操作?
是否可以调用任务管理器将其关闭?求解决代码。谢谢。

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php $cmd = 'C:\WINDOWS\system32\notepad.exe';
system($cmd);
sleep(3);
//$cmd1 = 'C:\WINDOWS\system32\taskmgr_original.exe';
//system($cmd1);
?>
Salin selepas log masuk


------解决方案--------------------
PHP code

<?php $handle = popen('C:\WINDOWS\system32\notepad.exe', "r");
pclose($handle);
?>
<br><font color="#e78608">------解决方案--------------------</font><br>popen ― 打开进程文件指针<br><br>说明<br>resource popen ( string $command , string $mode )<br>打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。  <br><br>返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用 pclose() 来关闭。此指针可以用于 fgets(),fgetss() 和 fwrite()。  <br><br>如果出错返回 FALSE。  <br><br>Note:  <br><br>如果需要双向支持,使用 proc_open()。  <br><br><br><br>Example #1 popen() 例子<br><br><?php <br />$handle = popen("/bin/ls", "r");<br>?>  <br><br>Note:  <br><br>如果未找到要执行的命令,会返回一个合法的资源。这看上去很怪,但有道理。它允许访问 shell 返回的任何错误信息:  <br><br><?php <br />error_reporting(E_ALL);<br><br>/* 加入重定向以得到标准错误输出 stderr。 */<br>$handle = popen('/path/to/spooge 2>&1', 'r');<br>echo "'$handle'; " . gettype($handle) . "\n";<br>$read = fread($handle, 2096);<br>echo $read;<br>pclose($handle);<br>?>  <br><br><br>
<br><font color="#e78608">------解决方案--------------------</font><br>
Salin selepas log masuk
探讨
PHP code

$handle = popen('C:\WINDOWS\system32\notepad.exe', "r");
pclose($handle);
?>

------解决方案--------------------
popen返回的是notepad.exe在php环境下的进程指针,这个指针只能用于读取和输出数据给notepad,pclose关闭的只是这个指针而不是notepad本身.

我也不清楚如何关闭notepad,但是我想应该从windows的编程基础中查找如何获取任务管理器中的进程,然后用system函数去调用windows的关闭程序
------解决方案--------------------
popen是单向的,用proc_open吧
试试看
PHP code
/**
 * windows only
 */
$descriptorspec = array(   
    0 => array("pipe", "r"), 
    1 => array("pipe", "w")
);
$cwd = 'C:\WINDOWS\system32';
$process = proc_open('notepad.exe', $descriptorspec, $pipes, $cwd);
$s          = proc_get_status( $process );//得到的信息都是父进程cmd.exe的状态,而非子进程notepad.exe的.所以不能直接kill掉这个process id
sleep( 3 );
exec('taskkill /PID '.$s['pid'] . ' /T'); //树型删除,删除所有父进程与对应的子进程.原来以为子进程id必定大于父进程,写了一通代码,后来发现不是,且找到了这个命令
proc_close( $process ); <div class="clear">
                 
              
              
        
            </div>
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1659
14
Tutorial PHP
1259
29
Tutorial C#
1233
24
Cara menaip notepad secara automatik Cara menaip notepad secara automatik Apr 16, 2025 pm 08:06 PM

Notepad sendiri tidak mempunyai fungsi susun atur automatik. Kami boleh menggunakan editor teks pihak ketiga, seperti teks yang tinggi, untuk melaksanakan langkah-langkah berikut untuk mencapai tipografi automatik: 1. Pasang dan buka editor teks. 2. Buka fail yang perlu ditaip secara automatik. 3. Cari dan pilih fungsi susun atur automatik. 4. Editor secara automatik akan menaip teks. 5. Anda boleh menyesuaikan peraturan susun atur yang diperlukan. Tipografi automatik dapat menjimatkan masa dan memastikan konsistensi teks dan profesionalisme.

Cara Menggunakan Notepad Cara Menggunakan Notepad Apr 16, 2025 pm 08:09 PM

Notepad adalah editor teks percuma untuk Windows, yang menawarkan pelbagai ciri seperti: 1) sintaks yang menonjolkan, 2) autocomplete, 3) rakaman makro, 4) sambungan plug-in, 5) antara muka dan tetapan yang disesuaikan.

Boleh kod vs dijalankan di Windows 8 Boleh kod vs dijalankan di Windows 8 Apr 15, 2025 pm 07:24 PM

Kod VS boleh dijalankan pada Windows 8, tetapi pengalaman mungkin tidak hebat. Mula -mula pastikan sistem telah dikemas kini ke patch terkini, kemudian muat turun pakej pemasangan kod VS yang sepadan dengan seni bina sistem dan pasangnya seperti yang diminta. Selepas pemasangan, sedar bahawa beberapa sambungan mungkin tidak sesuai dengan Windows 8 dan perlu mencari sambungan alternatif atau menggunakan sistem Windows yang lebih baru dalam mesin maya. Pasang sambungan yang diperlukan untuk memeriksa sama ada ia berfungsi dengan betul. Walaupun kod VS boleh dilaksanakan pada Windows 8, disyorkan untuk menaik taraf ke sistem Windows yang lebih baru untuk pengalaman dan keselamatan pembangunan yang lebih baik.

Cara menjalankan python dengan notepad Cara menjalankan python dengan notepad Apr 16, 2025 pm 07:33 PM

Running Python Code di Notepad memerlukan Python Executable dan NPPExec plug-in untuk dipasang. Selepas memasang Python dan menambahkan laluannya, konfigurasikan perintah "python" dan parameter "{current_directory} {file_name}" dalam plug-in nppexec untuk menjalankan kod python melalui kunci pintasan "f6" dalam notepad.

Cara memformat json di notepad Cara memformat json di notepad Apr 16, 2025 pm 07:48 PM

Gunakan pemalam JSON Viewer di Notepad untuk memformat fail JSON dengan mudah: Buka fail JSON. Pasang dan aktifkan pemalam JSON Viewer. Pergi ke "Plugins" & gt; "JSON Viewer" & gt; "Format JSON". Sesuaikan tetapan lekukan, cawangan, dan penyortiran. Memohon pemformatan untuk meningkatkan kebolehbacaan dan pemahaman, dengan itu memudahkan pemprosesan dan penyuntingan data JSON.

Bagaimana menyelesaikan masalah hubungan yang kompleks di Laravel? Gunakan komposer! Bagaimana menyelesaikan masalah hubungan yang kompleks di Laravel? Gunakan komposer! Apr 17, 2025 pm 09:54 PM

Dalam pembangunan Laravel, berurusan dengan hubungan model yang kompleks selalu menjadi cabaran, terutama ketika datang ke hubungan multi-level. Baru-baru ini, saya menghadapi masalah ini dalam projek yang berurusan dengan hubungan model pelbagai peringkat, di mana hubungan tradisional hasNythrough gagal memenuhi keperluan, mengakibatkan pertanyaan data menjadi kompleks dan tidak cekap. Selepas beberapa penjelajahan, saya dapati perpustakaan Staudenmeir/milik-ke-melalui, yang mudah dipasang dan menyelesaikan masalah saya melalui komposer.

Cara menjalankan luhur setelah menulis kod Cara menjalankan luhur setelah menulis kod Apr 16, 2025 am 08:51 AM

Terdapat enam cara untuk menjalankan kod di Sublime: melalui hotkeys, menu, sistem membina, baris arahan, menetapkan sistem binaan lalai, dan arahan membina adat, dan menjalankan fail/projek individu dengan mengklik kanan pada projek/fail. Ketersediaan sistem membina bergantung kepada pemasangan teks luhur.

Apr 16, 2025 pm 07:39 PM

Walaupun Notepad tidak dapat menjalankan kod Java secara langsung, ia dapat dicapai dengan menggunakan alat lain: menggunakan pengkompil baris arahan (Javac) untuk menghasilkan fail bytecode (fileName.class). Gunakan Java Interpreter (Java) untuk mentafsir bytecode, laksanakan kod, dan output hasilnya.

See all articles