Jak zrobić, żeby za pomocą pliku program.HTML i program.JS zrobić uruchamianie programów typu: word, notatnik, firefox.
Nie da się.... javascript nie ma dostępu do plików na dysku - powodem tego jest po prostu wymóg zachowania bezpieczeństwa - inaczej każda strona mogłaby uruchomić dowolny program...
A z [VScript]?
Może napisz co tak naprawdę chcesz osiągnąć... Z przeglądarki/strony przeglądanej z internetu nie uruchomisz nic na dysku.
Znalazłem coś takiego, ale nie działa. :( w ogóle to ja robię, gadżeta systemu Vista. A i czy dało by się to zapisać tak, żeby nie pobierał żadnych informacji z rejestru? Jak tak to może mi ktoś to pomóc zmienić.
var oShell = new ActiveXObject("WScript.Shell");
var path = "";
var i = 0;
var skinpath = "";
function OnLoad()
{
setContentText();
}
function setContentText()
{
var cu = "HKCU\\Software\\XXX\\ABC\\";
var gl = "HKCU\\Software\\XXX\\ABC\\Gadget\\";
var lm32Bit = "HKLM\\SOFTWARE\\XXX\\ABC\\";
var lm64Bit = "HKLM\\SOFTWARE\\Wow6432Node\\XXX\\ABC\\";
try
{
path = oShell.RegRead(lm64Bit + "\\AppDir") + "\\myapp.exe";
}
catch(err)
{
try
{
path = oShell.RegRead(lm32Bit + "\\AppDir") + "\\myapp.exe";
}
catch(err)
{
path = "C:\\Program Files\\XXX\\ABC\\myapp.exe";
}
}
var txt1,txt2
//Set texts according to language choosen
try
{
txt1 = unescape(oShell.RegRead(gl + "gaaa"));
txt2 = unescape(oShell.RegRead(gl + "gbbb"));
}
catch(err)
{
txt1 = "Files";
txt2 = "Copy";
}
tL1.innerText = txt1;
tL2.innerText = txt2;
}
document.onreadystatechange = function()
{
if(document.readyState=="complete")
{
mySetting.load();
setContentText();
}
}
function resizeGadget()
{
if(System.Gadget.docked == true)
{
}
else
{
}
}
function settingsClosed(event)
{
if(event.closeAction == event.Action.commit)
{
mySetting.load();
setContentText();
}
}
var actionID = -1;
function RunSub(idx)
{
actionID = idx;
var parmArray = new Array("-datacd -emptyproject", "-autoplay -copy");
mySetting.load();
if(actionID == 0)
{
System.Shell.execute( path );
}
else
{
var prg = parmArray[actionID-1];
System.Shell.execute( path , prg );
}
Ale czemu potrzebujesz uruchomić coś ze strony WWW? Nie powinien być to program desktopowy?
Gadżety to przecież strona internetowa. Nie wiem w jaki inny sposób można by było uruchamiać program, myślałem że ten plik JS pomożecie mi go zmodyfikować, tak, żeby nie szukał nic w rejestrze, a uruchamiał za pomocą, podanej ścieżki do pliku myapp.exe.
W przypadku tworzenia gadżetów (ale tylko gadżetów) Windows udostępnia odpowiedni obiekt System
: http://msdn.microsoft.com/en-us/library/aa965853(v=VS.85).aspx .
Ale ja tu nie widzę żadnego przykładu, jak to przerobić. :(
Mój problem nie został jeszcze rozwiązany. :/
Dobra, a widział ktoś jakiś gadżet systemu windows, który otwiera program *.exe. Jak tak, to bym prosił o jego wstawienie na forum.
Tzn. chcesz nam powiedzieć, że nie potrafisz przepisać kawałka kodu z MSDN?
Nie. Chcę porównać kilka gadżetów i wyklepać coś sam. :)
A, no, miałem rację. Nie potrafisz czytać dokumentacji po angielsku, nie potrafisz korzystać z google. No cóż, powodzenia w każdym razie.
Jeśli uda ci się odpalić exe za pomocą JS, to wiedz, że znalazłeś błąd w przeglądarce. Z tego co widziałem w JAVIE da się odpalić exe, ale najpierw pojawi się ostrzeżenie, tak żeby użytkownik mógł w razie co to zablokować.
@krwq: tu nie chodzi o normalny JS (bo rzeczywiście, trzeba byłoby znaleźć buga w przeglądarce i napisać odpowiedniego exploita), ale o gadżety Windows Vista/7 - tutaj udostępnione jest specjalne API, które pozwala m.in. na sprawdzenie właściwości systemu i sprzętu czy właśnie uruchomienie programu.
Dlaczego mnie nikt nie słucha. Prosiłem, żeby ktoś mi pomógł przerobić ten kod, ale jak widzę nikt nie jest w stanie. Prosiłem, żeby ktoś wrzucił przykładowy gadget, który uruchamia program. (NIE WAŻNE JAKI, MOŻE BYĆ NAWET URUCHAMIANY PASIANS).
Pomoże mi ktoś?
Zrobiłem błąd literowy. Nie Pasians tylko Pasjans. To taka gra karciana w systemach Windows. Wytłumaczyłem! :)
Egh... rzeczywiście, "gógla" zabrali...
http://windows.microsoft.com/pl-PL/windows/downloads/personalize/gadgets
http://gallery.live.com/liveItemDetail.aspx?li=47360ddb-ba68-4dec-8867-73fe9b0e0634
Dzięki. :D
A może tak zmienić nazwę forum? Np. na 4retarded.net?