Autor Zpráva
Lodhart
Profil *
Zdravím,
mám aplikaci napsanou v C++ a windows gadget a potřeboval bych najít způsob jak zareagovat na kliknutí v Gadgetu např. na tlačítko. Našel jsem způsob pomocí WCF ale to je C# a o tom nemam ani páru. Napadlo mě jěště posílat v Javascriptu zpravy na localhost a určitý port a v aplikaci to chytat, ale nevím jestli takhle Javascript umí používat sockety.

Za jakékoli nápady děkuji. L.
Chamurappi
Profil
Reaguji na Lodharta:
nevím jestli takhle Javascript umí používat sockety
Umí vysílat HTTP požadavky na libovolný port (takže zapomeň na nějaký vlastní komunikační protokol). Na webu je běžně omezena komunikace na doménu a tuším, že i na port, ale gadgety limit na doménu nemají, proto by jim neměl vadit ani netradiční port v localhostu. Zkus si nastavit IIS nebo Apache, aby poslouchali na jiném čísle portu, a pak XMLHttpRequestem v gadgetu načíst http://localhost:číslo/něco a uvidíš…

najít způsob jak zareagovat na kliknutí v Gadgetu např. na tlačítko
Ještě by asi šlo zaregistrovat si ve Windowsu vlastní protokol. Podobně, jako to dělá třeba Skype se svým callto:.
Lodhart
Profil *
Tak jsem si do aplikace přidal funkci, která zachytává zprávy na určitém portu. Takový malý server. Problém ovšem je, že pokud z IE pošlu pomocí XmlHTTPRequest nějakou zprávu, server po přijetí neukončí přijímání a stále vyčkává. Pokud zkusím poslat z IE jinou zprávu vyvolá to samozřejmě chybu. Nejsem si ale jistý, jestli mám sekvenci kódu v JS dobře.

// var http = new XMLHttpRequest();
http = new ActiveXObject("Microsoft.XMLHTTP");
    
var url = "http://localhost:8001/";
var params = "search=idxxx";

function param() {
//Send the proper header information along with the request  
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.send(params);
http.close;
}

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: