我正在嘗試創建一個可由php調用的客戶端應用程序,並在執行時終止某些程序。我試圖爲此開發一個exe文件,但我不能通過PHP在客戶端調用exe文件。有什麼其他格式的應用程序可以開發,可以通過php調用?我可以開發一個Windows服務並通過PHP調用它嗎?我可以要求用戶下載並安裝任何東西。不過,我不能使用JavaScript來實現這一點。使用服務器端語言調用客戶端應用程序PHP
回答
我設法解決了這個問題,但我不確定它是否適用於任何可能遇到此問題的人。
我在php中設置了一個cookie,並檢查客戶端計算機中該cookie的值。
在我的情況下,我逼迫客戶使用XULRunner作爲他們的瀏覽器客戶端,因此只有一個存在的Cookie位置。如果瀏覽器不固定,所有瀏覽器的所有位置都需要單獨處理。
以下是我使用在客戶端的計算機應用程序的代碼: -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
namespace beforeSEBstart
{
class Program
{
static void Main(string[] args)
{
// Create a timer that polls once every 5 seconds
string appdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
Console.WriteLine(appdata);
string curFile = [email protected]"\ETH Zuerich\xul_seb\Profiles\cookies.sqlite-wal";
System.IO.File.WriteAllText(curFile, string.Empty);
var timer = new System.Threading.Timer(TimerProc, null, 5000, 5000);
Console.WriteLine("Polling every 5 seconds.");
Console.WriteLine("Press Enter when done:");
Console.ReadLine();
timer.Dispose();
}
static int TickCount = 0;
static void TimerProc(object state)
{
++TickCount;
Boolean found = false;
Console.WriteLine("tick {0}", TickCount);
string appdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
Console.WriteLine(appdata);
string curFile = appdata + @"\ETH Zuerich\xul_seb\Profiles\cookies.sqlite-wal";
string line;
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");
//Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");
Stream stream = File.Open(curFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader file = new StreamReader(stream);
while ((line = file.ReadLine()) != null)
{
if (line.Contains("SEBClose2"))
{
found = true;
}
}
if (found)
{
Console.WriteLine("String exists in the file.");
System.Diagnostics.Process.Start("ConsoleApplication1.exe");
foreach (System.Diagnostics.Process myProc in System.Diagnostics.Process.GetProcesses())
{
if (myProc.ProcessName == "beforeSEBstart.vshost" || myProc.ProcessName == "beforeSEBstart")
{
myProc.Kill();
}
};
}
else
{
Console.WriteLine("String does not exist in the file.");
}
file.Close();
}
}
}
對於服務器端,我只是成立了一個在PHP命名SEBclose2 cookie時客戶按下退出鍵。
我要稍微改一下你的問題,以確保我的理解:
我可以使用PHP腳本在服務器上調用用戶(客戶端)計算機上的EXE?
如果這是你的問題,那麼答案是:
號還有其他的方法,但他們一般不會授權網站和客戶端或特殊情況下非常嚴格的子集之外的工作。
但是,您在您的問題狀態我可以要求用戶下載並安裝任何東西。如果用戶可以從您的網站上下載一個文件(可執行文件),然後在他們的計算機上運行它,那麼似乎是什麼問題呢?
我無法想像任何人在他們正確的想法想要發生... – frosty
@Frosty我同意你的意見。有一些內部網應用程序可以在計算機上使用(或安裝)文件(HTA和趨勢科技的辦公掃描Web安裝時會想到)。 – PenguinCoder
我可以讓客戶端下載exe文件,但該exe文件必須在網站上單擊按鈕後執行。 – user1439090
- 1. 服務器客戶端應用程序
- 2. 客戶端/服務器應用程序
- 3. 客戶端 - 服務器應用程序
- 4. 使用PHP和Python的客戶端服務器應用程序
- 5. C#服務器客戶端應用程序(一個服務器多客戶端)
- 6. 客戶端到服務器端調用
- 7. 客戶端(Android應用程序) - 服務器(Java應用程序)
- 8. Web服務客戶端應用程序
- 9. 遊戲客戶端/服務器語言
- 10. Web服務客戶端編程語言
- 11. 使用qt的多客戶端/服務器tcp應用程序
- 12. 使用INDY開發客戶端服務器應用程序
- 13. 使用C#和SQL的客戶端服務器應用程序
- 14. 使用Griffon和Spring的客戶端 - 服務器應用程序
- 15. 使用Java EE服務器的Android客戶端應用程序
- 16. 開發Android客戶端應用程序使用BigBlueButton服務器
- 17. 與C++服務器/客戶端應用程序的端口
- 18. ASP MVC 3服務器端WP7客戶端應用程序
- 19. Flex構建客戶端和服務器端的應用程序
- 20. 服務器端VS客戶端MVC的Web應用程序
- 21. Android服務器端客戶端應用程序會話問題
- 22. 語言相關 - 客戶端服務器應用程序的含義是什麼?
- 23. jboss客戶端 - 服務器應用程序。併發用戶
- 24. C客戶端在服務器客戶端應用程序中的進程ID
- 25. 服務器端客戶端程序C
- 26. 使用Java和德比服務器的服務器客戶端應用程序
- 27. 客戶端 - 使用Dart作爲客戶端和Go語言作爲服務器的服務器模型
- 28. 何時爲客戶端服務器應用程序使用不同的端口?
- 29. 服務器的客戶端應用程序的Android客戶端VS僅
- 30. C客戶端服務器應用程序中的多個客戶端
您想運行您在客戶端計算機上編寫的應用程序嗎?不是服務器? – frosty
是的。我可以讓他們下載它,但我不知道如何從服務器端調用它。 – user1439090