PHP借用$cmd运行程序后,怎么关闭
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); ?>
------解决方案--------------------
- 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>
------解决方案--------------------
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>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











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.

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.

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.

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.

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.

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.

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.

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.
