PDA

View Full Version : Aiuto con progetto java in lan aziendale..


Mazza2
28-05-2004, 15:09
dunque.. ho avuto oggi il mio primo progetto di carattere aziendale...non e' molto utile il programma che devo fare cmq... mi accontento visto che quello che sto facendo e' uno stage..allora:


- Devo realizzare un programma java che da un computer che ha diritti di amministratore si connetta ad un pc qualsiasi della rete aziendale e permetta di modificare lo stack tcp, cioe' di modificare i 5 indirizzi che ci sono nella foto che ho messo.

personalmente conosco java benino, anche se per le connessioni non ho studiato molto :D no prob cmq...

ho alcune domande:

1- Utilizzo rmi? o c'e' qualke metodo + rapido?

2- Una domanda un po' cretina: tutti i pc sono in rete connessi ad un gateway... tute le porte sono chiuse tranne la 8080 e un altra che non so...anche la ftp e' chiusa infatti da internet non si riesce a scaricare un tubo:D questo significa che anke tra pc della rete stessa non si possono usare altre porte se non la 8080? o non c'entra niente?

3- I 5 valori saranno chiaramente derivati da alcune chiavi di registro di windows.. Non ho mai fatto cambiamenti al registro di win tramite un programma.. Suggerimenti?


Direi che per oggi puo' bastare..

ciao

kingv
28-05-2004, 15:23
quale foto?

tra i pc e' improbabile che ci siano firewall, dovresti poter usare la porta che vuoi.

cionci
28-05-2004, 15:23
2 - No...i compuer in rete sono liberi di fare ciò che gli pare fra loro...
3 - Riguardo al cambiare l'indirizzo dell'interfaccia tramite registro... E' una cosa veramente molto complessa... Ci avevo già provato...ma ci sono molti parametri in gioco...

Mazza2
28-05-2004, 15:58
si sorry l'immagine e' questa: http://utenti.lycos.it/mazzanti/Immagine.JPG



quelli sono i 5 campi che a scelta si vogliono cambiare...

mi servirebbero suggerimenti su come sviluppare l'architettura del programma... e poi per modificare il registro...

cionci
28-05-2004, 16:06
Ripeto...non è così semplice trovare i valori giusti da modificare... Prima trova questi e poi pensa a come strutturare l'applicazione ;)

cn73
28-05-2004, 16:33
Alla faccia del semplice programmino!! Secondo me lo fanno fare a te perchè nessuno in quell'azienda ci era riuscito :D Classico per gli stagisti...

Comunque per lavorare nel registro di windoew, esistono delle librerie chiamate JNiRegistry(Windows Registry API Native Interface) http://www.trustice.com/java/jnireg/index.shtml

Mazza2
28-05-2004, 20:53
per la connessione? modello client server? socket, rmi?

cionci
28-05-2004, 21:08
Mazza2...intanto vedi se ti riesce di farlo funzionare in locale...l'architettura distribuita non è un problema... Ricordati che c'è anche il problema che questi dati sono modificabili solamente da un amministratore sulla macchina... Quindi devi studiare anche questa cosa...

Mazza2
28-05-2004, 21:09
su java.sun.com non c'e' un package apposito per lavorare sulle chiavi di registro di win?

ho trovato poi sto sito--> http://scand.com/products/jndi2r/docs.asp


in cui pero' credo si paghi per poter modificare le voci di registro...


qualcuno ha mai fatto qualcosa del genere? anche solo per sapere la sequenza di operazioni da fare per connettersi al registro..

Mazza2
28-05-2004, 21:15
Originariamente inviato da cionci
Mazza2...intanto vedi se ti riesce di farlo funzionare in locale...l'architettura distribuita non è un problema... Ricordati che c'è anche il problema che questi dati sono modificabili solamente da un amministratore sulla macchina... Quindi devi studiare anche questa cosa...


questo in locale e' facile (ci metti na password al programma..) ma in distribuito? e' per questo che chiedevo... non so se e' conveniente mettere un piccolo client su tutte le macchine che accetta connessioni su una porta e richiede una password..

cionci
28-05-2004, 21:17
Sai già le chiavi del registro da cambiare ?!?!?

cionci
28-05-2004, 21:18
Originariamente inviato da Mazza2
non so se e' conveniente mettere un piccolo client su tutte le macchine che accetta connessioni su una porta e richiede una password..
Non è un client allora...è un server ;)

Mazza2
28-05-2004, 21:18
no! :D ma le cerco quelle! si tratta solo(spero) di cercare su internet! adesso avevo problemi di + alto livello! (del tipo come strutturare la cosa! ):D :D

Mazza2
28-05-2004, 21:19
Originariamente inviato da cionci
Non è un client allora...è un server ;)

si certo :sofico: sai e' che ho voglia di strafare (e' il primo incarico serio non universitario!) :rolleyes:

cionci
28-05-2004, 21:32
Originariamente inviato da Mazza2
no! :D ma le cerco quelle! si tratta solo(spero) di cercare su internet! adesso avevo problemi di + alto livello! (del tipo come strutturare la cosa! ):D :D
Ti ho detto...cerca prima questa cosa... Non è così semplice come credi !!!
Avevo una macchina con 128 indirizzi IP e mi è toccato rimetterli a mano...

Mazza2
28-05-2004, 21:54
dunque una chiave e' soto hkey_local_machine\system\controlset001\services\ il problema sorge qui.. non conosco bene la struttura del registro... dopo services c'e' una cartella con un nome che e' una guid giusto? cioe' una serie di numeri esadecimali! in questo pc c'e' un certo numero, ma in altri pc cambia di sicuro! come si puo' fare ad arrivare alla chiave?

cionci
28-05-2004, 21:59
Originariamente inviato da Mazza2
come si puo' fare ad arrivare alla chiave?
Fin lì c'ero arrivato anche io ;) Hai capito subito dov'è l'inghippo :)

Mazza2
28-05-2004, 22:05
a ma sticazzi e' un bell'inghippo! nessuno sa niente? magari c'e' una tabella dove sono registrate le guid e le relative sottochiavi? :mc: o almeno spero :muro:

cionci
28-05-2004, 22:08
Aspetta...forse qualcosa ho trovato.... HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards

cionci
28-05-2004, 22:10
Comunque credo che tu debba modificare questa chiave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Mazza2
28-05-2004, 22:36
Originariamente inviato da cionci
Comunque credo che tu debba modificare questa chiave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services


io ho win xp pro... al lavoro ci sono alcune postazioni win xp pro e altre win 2000... spero nn cambi cmq..


in questa chiave--> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip\guid assurda trovo trovo l'ip, il gateway, la subnet mask e nameserver(i due dns separati da virgola)


oki c'e' tutto! rimane il prob della guid uff

Mazza2
28-05-2004, 22:40
ti adoro! la tabella con le guid e' quella nel networkcards!:D :sofico:

Mazza2
29-05-2004, 14:34
qualcuno mi sa indicare un tutorial per usare jndi?

cn73
30-05-2004, 12:54
Originariamente inviato da Mazza2
su java.sun.com non c'e' un package apposito per lavorare sulle

qualcuno ha mai fatto qualcosa del genere? anche solo per sapere la sequenza di operazioni da fare per connettersi al registro..
Scusa, 2 post prima di questo che ho quotato madesso ho scritto:

Comunque per lavorare nel registro di windows, esistono delle librerie chiamate JNiRegistry(Windows Registry API Native Interface) http://www.trustice.com/java/jnireg/index.shtml

Io mi ci sono trovato molto bene...

Mazza2
30-05-2004, 20:29
Originariamente inviato da cn73
Scusa, 2 post prima di questo che ho quotato madesso ho scritto:

Comunque per lavorare nel registro di windows, esistono delle librerie chiamate JNiRegistry(Windows Registry API Native Interface) http://www.trustice.com/java/jnireg/index.shtml

Io mi ci sono trovato molto bene...


si, ho scaricato.. ma non e' che c'e' qualke tutorial? mi servirebbe semplicemente un esempio di connessione al registro di windows e di modifica di una chiave! poi sarei a posto..

non so, magari se hai qualcosa inviamela a:

mazza82@tiscali.it


grazie!

cn73
31-05-2004, 13:18
Aspe ora guardo...però te la pubblico qui, siamo in un forum di pubblica utilità ;)

cn73
31-05-2004, 13:25
La documentazione delle API l'hai trovata? Mi pare fosse nel pacchetto che si scarica...

Io una volta avevo la necessità di ottenere il valore di una chiave del registro di win... e usai questa classe, che miglioreava RegistryKey del package...

package com;

import java.util.Enumeration;
import com.ice.jni.registry.*;

public class WrapperRegistryKey extends RegistryKey
{
protected String keyData;

public WrapperRegistryKey()
{
super();
}

public RegistryKey getRegistryKey(RegistryKey rootKey,
String subKey, String key, String keyData)
{
this.keyData = keyData;
RegistryKey rk = Registry.openSubkey(rootKey,subKey,
RegistryKey.ACCESS_READ);
return searchKey(rk,key);
}

public String getValueString(RegistryKey rk,String valueName)
{
String value = null;

try
{
RegistryValue rv = rk.getValue(valueName);
byte[] bytes = rv.getByteData();
value = new String(bytes);
if(value.substring(0,1).equals("\""))
value = value.substring(1);
int length = value.length();
if(value.substring(length - 1,length).equals("\""))
value = value.substring(0,length -1);
}catch(NoSuchValueException nsve){
System.out.println("NoSuchValueException: " + nsve.getMessage());
}catch(RegistryException re){
System.out.println("RegistryException: " + re.getMessage());
}

return value;
}

protected RegistryKey searchKey(RegistryKey rootKey, String key)
{
RegistryKey rk = null;

try
{
for(Enumeration en = rootKey.keyElements();en.hasMoreElements();)
{
String curKey = (String)en.nextElement();
//System.out.println("Registry sub key: " + curKey);
if(!curKey.equals(key))
{
try
{
RegistryKey curRK = rootKey.openSubKey(curKey);
rk = searchKey(curRK,key);
if(rk != null)
break;
}catch(Exception ex){
System.out.println("Recursive key search--" + curKey +
": " + ex.getMessage());
}
}
else
{
try
{
RegistryKey r = rootKey.openSubKey(key);
if(keyData != null && !keyData.equals(key))
{
System.out.println("Chiave trovata per " + key);
rk = searchKey(r,keyData);
if(rk != null)
{
System.out.println("Chiave trovata " + rk + " per " + keyData);
break;
}
}
else
{
rk = r;
break;
}
}catch(Exception ex){
System.out.println("Recursive key search--" + curKey +
": " + ex.getMessage());
}
}
}
}catch(RegistryException re){
System.out.println("Search Key Exception: " + re.getMessage());
rk = null;
}

return rk;
}
}

Mazza2
31-05-2004, 14:02
si, sono arrivato a leggere le chiavi.. adesso il problema e' modificarle. Innanzitutto vorrei non aver capito male la terminologia quindi:


RegistryKey rootKey = puo' essere ad esempio HKEY_LOCAL_MACHINE


String subKey = e' il path fino alla cartella in cui si trova la chiave


String key: e' il nome del parametro da cambiare (nel mio caso ad es. IPAddress)


String keyData = e' il valore del parametro che devo cambiare (ad es. 172.18.45.23)




per cambiare valore ad una chiave c'e' il metodo setValue( RegistryValue value ).. io creo un RegStringValue (xke registryvalue e' astratta) in questo modo:

RegStringValue valore = new RegStringValue(Registry.HKEY_LOCAL_MACHINE.openSubKey( "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\{80105416-C9FE-403C-AEB4-FD07D6CB6941}","IPAddress" ,"172.56.56.56");


l'ultimo campo e' il valore nuovo che vorrei dare al parametro IPAddress...


dopodiche' faccio: registrykey.setValue(valore);


dove registrykey e' la RegistryKey che corrisponde alla chiave

RegistryKey registrykey = Registry.HKEY_LOCAL_MACHINE.openSubKey( "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\{80105416-C9FE-403C-AEB4-FD07D6CB6941}");


non mi cambia nulla pero'.. :cry:

cn73
31-05-2004, 14:32
Sbaglierai qualcosa nella terminologia...ti riporto un esempio che usavo io (funzionante):


RegistryKey rk = wrk.getRegistryKey(Registry.HKEY_LOCAL_MACHINE, rootkey, subkey, installkey);


L'oggetto wrk è un istanza di WrapperRegistryKey

rootkey-->"SOFTWARE\\Microsoft"
subkey-->"Word"
installkey->,"InstallRoot";


Mi serviva per capire dove era installato word su un client...

Mazza2
31-05-2004, 15:27
oki, il problema del registro e' + o - risolto. Il problema ora si sposta su come connettermi alle diverse macchine aziendali per ottenere i dati che voglio.. Mi e' stato detto che non posso mettere un programmino server su ogni macchina che resta in ascolto su una porta fino a che qualcuno non gli va a chiedere i 5 dati.. E poi c'e' un altro problema: se io dalla mia macchina vado a connettermi con la macchina di uno che non e' amministratore del suo windows, non credo che win mi lasci modificare il registro!.... Dovrei loggarmi in win come amministratore... Avete qualcke consiglio su come strutturare il tutto??

Mazza2
01-06-2004, 07:07
up :D

cionci
01-06-2004, 08:05
Originariamente inviato da Mazza2
Dovrei loggarmi in win come amministratore...
Per fare questo...secondo me la soluzione migliore è fare un servizio...però non so se in Java si possa fare...

Mazza2
01-06-2004, 08:15
Originariamente inviato da cionci
Per fare questo...secondo me la soluzione migliore è fare un servizio...però non so se in Java si possa fare...


aspetto una delucidazione da cn73 o da kingv .. :D


e' un aspetto di java che non conosco purtroppo cosi' come lo era il jndi...

Le uniche porte aperte sono la 80, la 137,135,136(udp)...su queste porte potrei tenere in ascolto un server...ma si possono usare anche se sono di sistema esattamente come si fa per le porte sopra la 1024? grazie!

cionci
01-06-2004, 08:21
La 80 sì...le altre sono già occupate dal sistema operativo...
Sono solo queste perchè c'è un firewall sopra ?

Mazza2
01-06-2004, 09:12
il capo non vuole che lasci il programma in ascolto su altre porte perche' dice che creerei una vulnerabilita' sfruttabile da qualcuno... mi confermi xo che la 80 funziona esattamente come quelle al di sopra della 1024?

Tassadar
01-06-2004, 09:35
Ovvio che funziona, le api per agganciarci un socket sono le medesime :D

quelle al di sotto della 1024 non è che sono usate dal sistema operativo (non tutte quantomeno) ma sono porte destinate a servizi sconosciuti.

Quello della vulnerabilità, è una baggianata.

cionci
01-06-2004, 09:41
Originariamente inviato da Tassadar
Quello della vulnerabilità, è una baggianata.
A meno che non abbiate solo quelle porte chiuse da un firewall allora è davvero una baggianatà... Se un servizio è vulnerabile lo su qualsiasi porta !!!

Mazza2
01-06-2004, 10:01
questo e' quello che ho pensato anche io ieri... cmq... non credo ci siano altri modi per fare quello che devo fare se non lasciare un applicativo in ascolto su una porta in attesa che il client chieda i 5 dati...




aspetto ancora consiglio sulla faccenda di entrare come amministratore in un sitema remoto.. :rolleyes:

Tassadar
01-06-2004, 10:04
si, ma vedi, dipende anche se il servizio è esposto alla rete mondiale e se è un servizio conosciuto, insomma la materia la conosci no? :D

Mazza2
01-06-2004, 10:09
Originariamente inviato da Tassadar
si, ma vedi, dipende anche se il servizio è esposto alla rete mondiale e se è un servizio conosciuto, insomma la materia la conosci no? :D


bhe si + o - il sevizio non e' conosciuto chiaramente da nessuno se non da me e dal mio capo :P

Mazza2
01-06-2004, 10:50
dai su una mano per il login da remoto su un pc win... se riesco a fare questo sono a cavallo! :cool:

Tassadar
01-06-2004, 11:10
hai provato a vedere se c'è documentazione sul terminal service? Puoi anche collegarti via telnet, con tutti i rischi del caso.

Mazza2
01-06-2004, 11:12
un amico ha buttato li' un'idea.. voi che mi dite??


idea: Ora sono poco aggiornato sui win più recenti di win98, ma su xp c'è il tasto esegui come, un po' il sudo di linux, basterebbe che la jvm partisse con quel comando, e avresti tutti i privilegi, ovviamente questo se è un programma client/server.

LukeHack
01-06-2004, 13:43
windows 2000/XP non sono O.S. multiutente,quindi un login da remoto NON esiste,se non usando TERMINAL SERVICE che cmq caccia l'utente locale all'atto della connessione da remoto...

ERGO, devi costruirti un applicativo che,in ascolto su una porta(quella che ti pare), accetti comandi da passare al sistema...
E COSI DIVIENE UNA BAGGIANATA costruire sia il lato client che quello server, che si limiterà a usa l'RMI sul registry,mentre il client non deve fare altro che CONNETTERSI (magari tramite login CHE SOLO TE E IL TUO CAPO CONOSCETE) e dare il via al server per la modifica del registry...
io lo farei cosi :)

LukeHack
01-06-2004, 13:48
Originariamente inviato da Mazza2
Mi e' stato detto che non posso mettere un programmino server su ogni macchina che resta in ascolto su una porta fino a che qualcuno non gli va a chiedere i 5 dati..
ho letto ora sta cosa...
in effetti allora una soluzione c'è... ma devi incorporare del codice C++ dentro java (si può fare); questo codice aggiunto si connette alla macchina remota e consente,tramite login, di ESEGUIRE serivizi e programmi,sfruttando il protocollo netbeui (o cmq quello su cui si poggia la LAN microzozz)...
se ti interessa ti posto il codice in c++ del freschetto

Mazza2
01-06-2004, 13:59
Originariamente inviato da LukeHack
windows 2000/XP non sono O.S. multiutente,quindi un login da remoto NON esiste,se non usando TERMINAL SERVICE che cmq caccia l'utente locale all'atto della connessione da remoto...

ERGO, devi costruirti un applicativo che,in ascolto su una porta(quella che ti pare), accetti comandi da passare al sistema...
E COSI DIVIENE UNA BAGGIANATA costruire sia il lato client che quello server, che si limiterà a usa l'RMI sul registry,mentre il client non deve fare altro che CONNETTERSI (magari tramite login CHE SOLO TE E IL TUO CAPO CONOSCETE) e dare il via al server per la modifica del registry...
io lo farei cosi :)


sto iniziando a capire.. l'unica cosa e': con che comando si esce da win? e poi.. quando la schermata dell'utente torna al login il mio programma server cessa di andare perche' l'utente e' uscito (nel senso il programma server lo mettevo in un jar nella cartella avvio automatico) oppure riesco ancora a dirgli che mi deve rientrare come admin?

scusa se magario le mie domande sono cretine, ma sono aspetti che nn ho ben chiari!

LukeHack
01-06-2004, 14:16
Originariamente inviato da Mazza2
sto iniziando a capire.. l'unica cosa e': con che comando si esce da win? e poi.. quando la schermata dell'utente torna al login il mio programma server cessa di andare perche' l'utente e' uscito (nel senso il programma server lo mettevo in un jar nella cartella avvio automatico) oppure riesco ancora a dirgli che mi deve rientrare come admin?

scusa se magario le mie domande sono cretine, ma sono aspetti che nn ho ben chiari!
la prima domanda non la capisco: in che senso USCIRE?
per quanto riguarda la seconda,ovviamente se i pc della rete spesso fungono senza log (schermata di avvio),allora devi sfruttare le API di winzozz per crearti un servizio... e qui il discorso ricade sul c/c++ (o anche VB) poichè non mi risulta esiste un modo in java (essendo multiplatform) per invocare le API dei sistemi operativi... se non utilizzando JNI (Native Interface)...
dai un'occhiata a questo articolo (http://www.javaworld.com/javaworld/jw-07-1997/jw-07-javadev.html)

Mazza2
01-06-2004, 14:30
Originariamente inviato da LukeHack
la prima domanda non la capisco: in che senso USCIRE?
per quanto riguarda la seconda,ovviamente se i pc della rete spesso fungono senza log (schermata di avvio),allora devi sfruttare le API di winzozz per crearti un servizio... e qui il discorso ricade sul c/c++ (o anche VB) poichè non mi risulta esiste un modo in java (essendo multiplatform) per invocare le API dei sistemi operativi... se non utilizzando JNI (Native Interface)...
dai un'occhiata a questo articolo (http://www.javaworld.com/javaworld/jw-07-1997/jw-07-javadev.html)


la prima domanda era: come si fa a tornare alla schermata di login di windows?

mentre x la seconda non capisco cosa sia un servizio...Una volta che torno alla schermata di login il mio programma server non e' + in esecuzione giusto? quindi non posso + dirgli di entrare come admin...

LukeHack
01-06-2004, 14:51
Originariamente inviato da Mazza2
la prima domanda era: come si fa a tornare alla schermata di login di windows?

mentre x la seconda non capisco cosa sia un servizio...Una volta che torno alla schermata di login il mio programma server non e' + in esecuzione giusto? quindi non posso + dirgli di entrare come admin...
per la prima basta usare un chiamata alla Runtime.getRuntime().exec("shutdown ...."); dove al posto dei .... devi mettere le opzioni di logoff(ora sto con linux non lo posso verificare :P)

per la seconda è semplice: un servizio è tipo l'RPC o Norton AV,ossia un prg che gira in background a prescindere dagli utenti connessi....
quindi se lo installi come servizio (utilizzando l'API CreateAsService se non erro) hai risolto ;)

Mazza2
01-06-2004, 14:58
Originariamente inviato da LukeHack
per la prima basta usare un chiamata alla Runtime.getRuntime().exec("shutdown ...."); dove al posto dei .... devi mettere le opzioni di logoff(ora sto con linux non lo posso verificare :P)

per la seconda è semplice: un servizio è tipo l'RPC o Norton AV,ossia un prg che gira in background a prescindere dagli utenti connessi....
quindi se lo installi come servizio (utilizzando l'API CreateAsService se non erro) hai risolto ;)


la prima parte l'avevo gia' fatta tempo fa per un mio programmino! che idiota che sono! ok sul shutdown dovrei esserci!

per la seconda invece non ho capito... Installo chi come servizio? Il file jar? Come si fa?

LukeHack
01-06-2004, 15:09
Originariamente inviato da Mazza2
la prima parte l'avevo gia' fatta tempo fa per un mio programmino! che idiota che sono! ok sul shutdown dovrei esserci!

per la seconda invece non ho capito... Installo chi come servizio? Il file jar? Come si fa?
te l'ho scritto 4 volte :D
devi usare JNI incorporando del codice C/C++ il quale invocando apposite API (che ora ti link) installa il .jar (usando ovviamente il comando jar) come servizio...

questo è il link per la gestione dei servizi mediante C/C++:
http://www.codeproject.com/system/serviceskeleton.asp

Mazza2
01-06-2004, 15:13
Originariamente inviato da LukeHack
te l'ho scritto 4 volte :D
devi usare JNI incorporando del codice C/C++ il quale invocando apposite API (che ora ti link) installa il .jar (usando ovviamente il comando jar) come servizio...

questo è il link per la gestione dei servizi mediante C/C++:
http://www.codeproject.com/system/serviceskeleton.asp


ok ti ringrazio :D ho un altra domanda pero': scusa ma se installo come servizio il file jar che contiene il lato server del mio programma, a che mi serve jni? Basta avere un file scritto in c o c++ che ti imposta come servizio un file a tua scelta (e io scelgo il jar) e poi e' a posto per sempre! non capisco la necessita' dell'interfacciamento..


p.s. non capisco proprio niente e'? :D :D :sofico:

LukeHack
01-06-2004, 15:22
Originariamente inviato da Mazza2
ok ti ringrazio :D ho un altra domanda pero': scusa ma se installo come servizio il file jar che contiene il lato server del mio programma, a che mi serve jni? Basta avere un file scritto in c o c++ che ti imposta come servizio un file a tua scelta (e io scelgo il jar) e poi e' a posto per sempre! non capisco la necessita' dell'interfacciamento..


p.s. non capisco proprio niente e'? :D :D :sofico:
se tu non hai problemi ad installare su una 30ina di macchine lo stesso programma manualmente ok...

ma non avevi asserito di non poter installare programmi server sulle macchine?
se è cosi,allora jni ti consente di superare sto limite poichè tramite c/c++ puoi,dal tuo pc,eseguire comandi/servizi da remoto...

quindi faccio due ipotesi:

LA PRIMA.
il tuo capo (che a quanto ho letto di informatica ci capisce come io di moda:D)
ha il terrore di installare appl.server sui pc --> JNI e C/C++ sono necessari

LA SECONDA.
il tuo capo (che ora si legge hackerjournal perchè ha capito di essere un lamer:D) non ha problemi nell'installare appl.server su ogni macchina...
----> allora è più semplice,usi del codice C/C++ per registrare un servizio:
quale? questo: jar path/to/tuoprg.jar che rimane in ascolto per eseguire programmi di modifica registry...

ora spero proprio che ti sia chiaro:D ciao!

Mazza2
01-06-2004, 15:30
Originariamente inviato da LukeHack
se tu non hai problemi ad installare su una 30ina di macchine lo stesso programma manualmente ok...

ma non avevi asserito di non poter installare programmi server sulle macchine?
se è cosi,allora jni ti consente di superare sto limite poichè tramite c/c++ puoi,dal tuo pc,eseguire comandi/servizi da remoto...

quindi faccio due ipotesi:

LA PRIMA.
il tuo capo (che a quanto ho letto di informatica ci capisce come io di moda:D)
ha il terrore di installare appl.server sui pc --> JNI e C/C++ sono necessari

LA SECONDA.
il tuo capo (che ora si legge hackerjournal perchè ha capito di essere un lamer:D) non ha problemi nell'installare appl.server su ogni macchina...
----> allora è più semplice,usi del codice C/C++ per registrare un servizio:
quale? questo: jar path/to/tuoprg.jar che rimane in ascolto per eseguire programmi di modifica registry...

ora spero proprio che ti sia chiaro:D ciao!


la seconda! :D

uso il programma per registrare servizi che c'e' al link che mi hai detto.. perche' pero' ci devo scrivere jar prima di pathfilejar ? (oddio non faccio file jar da un po' magari jar e' la parola chiave per farli partire :D )


un altra cosa :D quando sono al login di win, il mio programma java che exec deve fare per dare nome utente e password al sistema ed entrare?


p.s. ti devo una cena :sofico:

LukeHack
01-06-2004, 19:32
Originariamente inviato da Mazza2
la seconda! :D

uso il programma per registrare servizi che c'e' al link che mi hai detto.. perche' pero' ci devo scrivere jar prima di pathfilejar ? (oddio non faccio file jar da un po' magari jar e' la parola chiave per farli partire :D )


un altra cosa :D quando sono al login di win, il mio programma java che exec deve fare per dare nome utente e password al sistema ed entrare?


p.s. ti devo una cena :sofico:
puoi scrivere anche java -jar <nome_e_path_al_jar> se non erro...

per la seconda:
ma cosa dici?:D di quale login parli,se hai un server che ascolta,imposti su QUELLO la login,non sul sistema op. :asd:

per la cena,accetto :sofico:

cionci
01-06-2004, 19:33
Originariamente inviato da Mazza2
un altra cosa :D quando sono al login di win, il mio programma java che exec deve fare per dare nome utente e password al sistema ed entrare?

Se installi il tuo programma come servizio non serve...

Mazza2
02-06-2004, 00:25
Originariamente inviato da cionci
Se installi il tuo programma come servizio non serve...


ah! quindi se c'e' un programma che e' un servizio, va a cambiare delle chiavi di registro anche senza essere loggati come admin??

a quel punto allora non mi serve neanche tornare al login di windows... a che servirebbe se no?

cionci
02-06-2004, 00:45
Originariamente inviato da Mazza2
ah! quindi se c'e' un programma che e' un servizio, va a cambiare delle chiavi di registro anche senza essere loggati come admin??

a quel punto allora non mi serve neanche tornare al login di windows... a che servirebbe se no?
Infatti... Non serve essere loggati come admin perchè bisogna essere admin per installare un servizio...

Mazza2
02-06-2004, 10:33
ho un prob... il servizio lo installo, xo pensavo che ripartisse in automatico dopo ogni riavvio una volta installato... invece devo dargli sempre StartService(NishService,0,NULL);

c'e' un modo per farlo partire sempre in automatico? oppure devo mettere l'exe con StartService(NishService,0,NULL); in esecuzione automatica?

LukeHack
02-06-2004, 13:17
Originariamente inviato da Mazza2
ho un prob... il servizio lo installo, xo pensavo che ripartisse in automatico dopo ogni riavvio una volta installato... invece devo dargli sempre StartService(NishService,0,NULL);

c'e' un modo per farlo partire sempre in automatico? oppure devo mettere l'exe con StartService(NishService,0,NULL); in esecuzione automatica?
supponi che il tuo servizio si chiama pippo...
allora metti in avvio automatico la seguente riga:

net start pippo

Mazza2
02-06-2004, 13:30
mi da un error quando faccio partire il servizio.. io lo installo con questo codice:


void ShowErr();

int main(int argc, char* argv[])
{
SC_HANDLE NishService1,scm;
scm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);
if(!scm)
{
ShowErr();
return 1;
}
NishService1=CreateService(scm,"NishService1",
"Buster's first NT service",
SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
"C:\\Documents and Settings\\Mazza\\Desktop\\free.jar",
0,0,0,0,0);
if(!NishService1)
{
CloseServiceHandle(scm);
ShowErr();
return 1;
}
CloseServiceHandle(NishService1);
CloseServiceHandle(scm);
return 0;
}

void ShowErr()
{
cout << "Error" << "\r\n";
}












e poi per farlo partire:



void ShowErr();

int main(int argc, char* argv[])
{
if(argc<2)
{
cout << "Usage:- StartStopService start|stop\r\n";
return 1;
}
SC_HANDLE NishService1,scm;
scm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);
if(!scm)
{
ShowErr();
return 1;
}
NishService1=OpenService(scm,"NishService1",SERVICE_ALL_ACCESS);
if(!NishService1)
{
CloseServiceHandle(scm);
ShowErr();
return 1;
}
if(strcmp(argv[1],"start")==0)
{
cout << "starting...\r\n";
StartService(NishService1,0,NULL);
}
if(strcmp(argv[1],"stop")==0)
{
cout << "stopping...\r\n";
SERVICE_STATUS m_SERVICE_STATUS;
ControlService(NishService1,SERVICE_CONTROL_STOP,&m_SERVICE_STATUS);
}

CloseServiceHandle(NishService1);
CloseServiceHandle(scm);
return 0;
}

void ShowErr()
{
cout << "Error" << "\r\n";
}


mi viene un error xo.. non ho dimestichezza col c\c++ ... cmq sia il jar se ci faccio doppio click sopra funziona quindi il problema e' solo nel farlo partire come servizio..

LukeHack
02-06-2004, 14:02
invece di "C:\\Documents and Settings\\Mazza\\Desktop\\free.jar",
mettici "java -jar C:\\Documents and Settings\\Mazza\\Desktop\\free.jar",

Mazza2
02-06-2004, 14:16
niente mi rida' error... vi posto il file jar (che non fa altro che aprire il gioco freecel ):D e i due file per farlo partire come servizio...

LukeHack
02-06-2004, 14:18
Originariamente inviato da Mazza2
niente mi rida' error... vi posto il file jar (che non fa altro che aprire il gioco freecel ):D e i due file per farlo partire come servizio...
ok mo provo a vedere col jbuilder se hai errori sul codice

LukeHack
02-06-2004, 16:43
allora,sarai felice ti ho sistemato il tutto :D (e mo la cena la voglio :sofico: )

beccate sto allegato,c'è un .exe col sorgente ,un .ini da lasciare invariato (vi sono le impostazioni del percorso del .jar ecc..) e c'è da spostare il free.jar in c:\
fatto ciò esegui il .exe con l'opzione -i per installare il servizio IN AUTOSTART (:sborone: ) e -u per disinstallarlo

avrai cosi ad ogni riavvio che il free.jar viene eseguito e di conseguenza il freecell.exe comparirà...

poi non dite che non sono buono :D

Mazza2
02-06-2004, 19:00
ti ringrazio :sofico: :sofico:



il file funzia... Ho altre domande xo :D :


1- Il file .ini con CheckProcess = xy i pratica controlla che il processo sia in running ogni xy minuti?

2-Ma che significa che il processo e' in running? nel senso... il programma java che ho fatto si limita ad avviare il gioco freecell e poi termina...Nel task manager di win pero' il processo "XYNTService" rimane...CheckProcess allora controlla che il file jar sia in esecuzione e non che ci sia "XYNTService" tra i processi in esecuzione?


3- Se cambio il path nel file .ini c'e' un'eccezione.. Come mai?






intanto ho imbandito una tavola per la nostra cena :sofico:

http://www.freeway.org/issue10/culture/bord.jpg

LukeHack
02-06-2004, 20:31
Originariamente inviato da Mazza2
ti ringrazio :sofico: :sofico:



il file funzia... Ho altre domande xo :D :


1- Il file .ini con CheckProcess = xy i pratica controlla che il processo sia in running ogni xy minuti?

2-Ma che significa che il processo e' in running? nel senso... il programma java che ho fatto si limita ad avviare il gioco freecell e poi termina...Nel task manager di win pero' il processo "XYNTService" rimane...CheckProcess allora controlla che il file jar sia in esecuzione e non che ci sia "XYNTService" tra i processi in esecuzione?


3- Se cambio il path nel file .ini c'e' un'eccezione.. Come mai?

1. SI
2. ESATTO
3. devi copiare il .jar li dove modifichi il path OVVIAMENTE
:mc: :D

per la cena,conosco un ristorante al centro di bologna che costa molto ma se magna bene,che ne dici:D

Mazza2
03-06-2004, 08:27
Originariamente inviato da LukeHack
1. SI
2. ESATTO
3. devi copiare il .jar li dove modifichi il path OVVIAMENTE
:mc: :D

per la cena,conosco un ristorante al centro di bologna che costa molto ma se magna bene,che ne dici:D


per il .jar, l'avevo spostato... bho adesso riprovo!


ma che centro di bologna! io ti proponevo addirittura la cena che fanno per i premi nobel nel municipio di copenaghen! :sofico:

cionci
03-06-2004, 09:09
Comunque se metti SERVICE_AUTO_START al posto di SERVICE_DEMAND_START il servizio ti parte automatocamente all'avvio di Windows (anche prima che un utente faccia il login)...

Mazza2
04-06-2004, 17:59
Originariamente inviato da LukeHack
ho letto ora sta cosa...
in effetti allora una soluzione c'è... ma devi incorporare del codice C++ dentro java (si può fare); questo codice aggiunto si connette alla macchina remota e consente,tramite login, di ESEGUIRE serivizi e programmi,sfruttando il protocollo netbeui (o cmq quello su cui si poggia la LAN microzozz)...
se ti interessa ti posto il codice in c++ del freschetto



ufffffffffaaaaaaaaaaaaaaaaaa:rolleyes: il capoccia ha scoperto proprio oggi (dico io alle 16 di venerdi'! :cry: ) che vuole il programma non client\server ma solo client installato sulla sua macchina...:cry: :cry: :cry: Io lo uccido :ncomment: :ncomment: (e potrei tanto il mio e' uno stage e non prendo un bel niente :sofico: )..Il client\server era pronto! funzionava! mortacci suoi :muro: :muro:


vabbe' basta rosicare... gli ho detto che ne avrei studiato la fattibilita' e che lunedi' gli avrei saputo dire qualcosa :sofico: (bhe dai mi sono parato il culo :D )...il problema e' che anche per questo programma come per l'altro dovrei rompere le scatole a tutti quelli di questo forum per darmi una mano (soprattutto a LukeHack che ormai e' il mio nuovo guru :D )...a sto punto comincio a guardare l'interfacciamento jni per inserire il codice anche se non so quanto ci vorra'... voi che mi dite ? quanto tempo ci vorra' circa per faer il programmozzo?

cionci
04-06-2004, 18:21
Che intendi solo client ? Chi fa da server ?

Mazza2
04-06-2004, 19:30
vabbe client forse in questo caso e' il modo sbagliato di chiamarlo. Intendo dire che devo potermi connettere dal pc del mio capo in remoto al pc che voglio senza installare software in ascolto su una porta in tutti i pc.

cionci
04-06-2004, 19:44
E' impossibile allora... Sarebbe equivalente a bucare la sicurezza di un computer...
L'unico modo che ti posso suggerire è di sfruttare la condivisione del registro che è abilitabile su ogni macchina... Bisogna avere la password di amministrazione per accederci, ma attenzione ci si può fidare ?

LukeHack
04-06-2004, 20:31
Originariamente inviato da Mazza2
vabbe client forse in questo caso e' il modo sbagliato di chiamarlo. Intendo dire che devo potermi connettere dal pc del mio capo in remoto al pc che voglio senza installare software in ascolto su una porta in tutti i pc.
come dice Cionci,se conosci le passd di admin di TUTTE le macchine è fattibile,sennò devi usare qualche exploit tipo quello di HausofDabus per entrare senza passwd,ma cosi viene una porcheria...sempre che poi non abbiano patchato le ultime falle!

cmq di al tuo capo,da parte mia e penso di tutti, che di informatica non ci capisce un CA@@O!

Mazza2
04-06-2004, 22:19
Originariamente inviato da LukeHack
come dice Cionci,se conosci le passd di admin di TUTTE le macchine è fattibile,sennò devi usare qualche exploit tipo quello di HausofDabus per entrare senza passwd,ma cosi viene una porcheria...sempre che poi non abbiano patchato le ultime falle!

cmq di al tuo capo,da parte mia e penso di tutti, che di informatica non ci capisce un CA@@O!


riferiro'! :D



cmq. tutti i pc sono connessi al dominio. administrator invece non si connette al dominio ma in locale su ogni singola macchina. Abbiamo pero' un altro account admin attivo nel dominio col quale si puo' entrare in qualsiasi macchina con privilegi da amministratore rimanendo nel dominio. si puo' usare questo... cmq dai ragazzi se nn avete voglia di aiutarmi non fa niente, avete fatto gia' moltissimo l'altra volta :)

Mazza2
04-06-2004, 22:23
Originariamente inviato da cionci
E' impossibile allora... Sarebbe equivalente a bucare la sicurezza di un computer...
L'unico modo che ti posso suggerire è di sfruttare la condivisione del registro che è abilitabile su ogni macchina... Bisogna avere la password di amministrazione per accederci, ma attenzione ci si può fidare ?


condividere in rete tutti i registri di tutti i pc? spiega meglio :P:P


p.s. con ci si puo' fidare intendi dire di chi fara' le modifiche allo stack tcp o al fatto che si puo' creare qualke buco alla sicurezza cosi' facendo?

LukeHack
05-06-2004, 00:05
Originariamente inviato da Mazza2
riferiro'! :D



cmq. tutti i pc sono connessi al dominio. administrator invece non si connette al dominio ma in locale su ogni singola macchina. Abbiamo pero' un altro account admin attivo nel dominio col quale si puo' entrare in qualsiasi macchina con privilegi da amministratore rimanendo nel dominio. si puo' usare questo... cmq dai ragazzi se nn avete voglia di aiutarmi non fa niente, avete fatto gia' moltissimo l'altra volta :)
bene allora è fattibile, ti preparo un codice che esegue programmi da remoto con account admin,ovviamente te devi eseguire regedit /s Key.reg...a dopo

LukeHack
05-06-2004, 04:24
ho trovato un codice che fa al caso tuo..e funge pure bene:D
questo come ti dicevo esegue programmi da remoto su una macchina sulla quale hai un account admin colla passwd...
quindi l'idea è semplice,ogni macchina ha una cartella condivisa e il cui contenuto è modificabile... ogni volta che il tuo capo ha bisogno di cambiare ip egli copierà un'opportuna chiave (file .reg) dentro questa cartella remota (appartenente alla macchina il cui ip è da cambiare) ed eseguirà il comando regedit /s c:\keyIP.reg
il formato di questa chiave lo conosci già,i percorsi sono su questo stesso 3D ;)

l'unica cosa che fossi in te, farei, è scrivere un programmino GUI che modifica il .reg col valore che il capo desidera (quindi con un CEdit per esempio...) e poi COPIA il .reg sulla macchina specificata sulla stessa GUI (altro campo CEdit), ossia nella directory condivisa che ti dicevo poc'anzi, poi questo lancierà il programma che ti mando io con magari il comando gia settato (quello specificato nel tag)...tanto hai il codice sorgente !:D ovviamente tutto in VC++

lascia un'email che ti mando il malloppo! ;)
ah, la cena qui diventa sempre più cara :D :oink:

cionci
05-06-2004, 08:48
Ma cosa sfrutta per mandare in esecuzione l'istruzione ?

Mazza2
05-06-2004, 10:52
Originariamente inviato da LukeHack
ho trovato un codice che fa al caso tuo..e funge pure bene:D
questo come ti dicevo esegue programmi da remoto su una macchina sulla quale hai un account admin colla passwd...
quindi l'idea è semplice,ogni macchina ha una cartella condivisa e il cui contenuto è modificabile... ogni volta che il tuo capo ha bisogno di cambiare ip egli copierà un'opportuna chiave (file .reg) dentro questa cartella remota (appartenente alla macchina il cui ip è da cambiare) ed eseguirà il comando regedit /s c:\keyIP.reg
il formato di questa chiave lo conosci già,i percorsi sono su questo stesso 3D ;)

l'unica cosa che fossi in te, farei, è scrivere un programmino GUI che modifica il .reg col valore che il capo desidera (quindi con un CEdit per esempio...) e poi COPIA il .reg sulla macchina specificata sulla stessa GUI (altro campo CEdit), ossia nella directory condivisa che ti dicevo poc'anzi, poi questo lancierà il programma che ti mando io con magari il comando gia settato (quello specificato nel tag)...tanto hai il codice sorgente !:D ovviamente tutto in VC++

lascia un'email che ti mando il malloppo! ;)
ah, la cena qui diventa sempre più cara :D :oink:



dunque ho alcuni dubbi:


1- Da quel che ho capito non vedrei lo stack tcp inziale della macchina, ma lo potrei modificare, chiaramente cambiando i Value della chiave che ho esportato dal pc del capo come voglio e poi eseguendo il comando per installare la chiave coi nuovi valori sul pc che devo modificare..

2- Visual c++... a casa ho visual studio .NET 2003 (che necessita' pero' di framework .net), ma avendo la licenza accademica microzozz posso scaricare visual studio 6 professional che non ho mai usato, ma immagino sia simile al 2003 tranne per il fatto che non usa il framework. in fondo pero' il framework andrebe installato solo sulla macchina del capo quindi non e' un grande spreco... Per la gui e' molto facile con visual studio.. Per la parte di programma in c++, io non ho mai programmato in questo linguaggio, anche se nn credo sia molto diverso da java... Ho una buona conoscenza di c# se puo' essere utile... Non so vediamo..

LukeHack
05-06-2004, 13:54
Originariamente inviato da cionci
Ma cosa sfrutta per mandare in esecuzione l'istruzione ?
ora dò un'occhiata al codice e te lo posto;)

LukeHack
05-06-2004, 13:56
Originariamente inviato da Mazza2
dunque ho alcuni dubbi:


1- Da quel che ho capito non vedrei lo stack tcp inziale della macchina, ma lo potrei modificare, chiaramente cambiando i Value della chiave che ho esportato dal pc del capo come voglio e poi eseguendo il comando per installare la chiave coi nuovi valori sul pc che devo modificare..

2- Visual c++... a casa ho visual studio .NET 2003 (che necessita' pero' di framework .net), ma avendo la licenza accademica microzozz posso scaricare visual studio 6 professional che non ho mai usato, ma immagino sia simile al 2003 tranne per il fatto che non usa il framework. in fondo pero' il framework andrebe installato solo sulla macchina del capo quindi non e' un grande spreco... Per la gui e' molto facile con visual studio.. Per la parte di programma in c++, io non ho mai programmato in questo linguaggio, anche se nn credo sia molto diverso da java... Ho una buona conoscenza di c# se puo' essere utile... Non so vediamo..
per vedere lo stack è una cavolata :) ci sono decine di funzioni che, sia in C che in Java fanno benone sta cosa...

va benissimo anche vstudio.NET,che contiene vc++7
MA STA EMAIL? :eek:

LukeHack
05-06-2004, 14:41
Originariamente inviato da LukeHack
ora dò un'occhiata al codice e te lo posto;)
allora,in pratica il client si connette al pc remoto tramite IPC$ e poi copia dentro al pc remoto un .exe che fa da server,secondo questo codice BOOL CRemoteAdministrator::InstallAndStartRemoteService(CString strRemoteMachineIP)
{
// Open remote Service Manager
SC_HANDLE hSCM = ::OpenSCManager(
strRemoteMachineIP.GetBuffer(0),
NULL,
SC_MANAGER_ALL_ACCESS
);

if (hSCM == NULL)
{
return FALSE;
}


// Maybe it's already there and installed, let's try to run
SC_HANDLE hService =::OpenService(hSCM, SERVICENAME, SERVICE_ALL_ACCESS);

// Creates service on remote machine, if it's not installed yet
if (hService == NULL)
{
hService = ::CreateService(
hSCM,
SERVICENAME,
LONGSERVICENAME,
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
_T("%SystemRoot%\\system32\\")REMOTE_ADMIN_SERVICE_EXE,
NULL,
NULL,
NULL,
NULL,
NULL
);
}


if (hService == NULL)
{
::CloseServiceHandle(hSCM);
return FALSE;
}

// Start service
if (!::StartService(hService, 0, NULL))
{
return FALSE;
}

::CloseServiceHandle(hService);
::CloseServiceHandle(hSCM);

return TRUE;
}

la connessione,come dicevo,avviene tramite IPC$,questo è il codice relativo:BOOL CRemoteAdministrator::EstablishConnection(CString strResource, CString strLogon, CString strRemoteMachineIP, CString strPwd, BOOL bEstablish)
{
::EnterCriticalSection(&g_CriticalSection);

TCHAR szRemoteResource[_MAX_PATH];
DWORD dwRetVal = NO_ERROR;

// Remote resource, \\remote\ipc$, remote\admin$, ...
::sprintf(szRemoteResource, _T("\\\\%s\\%s"), strRemoteMachineIP.GetBuffer(0), strResource.GetBuffer(0));

//
// Disconnect or connect to the resource, based on bEstablish
//
if (bEstablish)
{
NETRESOURCE nr;
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = NULL;
nr.lpRemoteName = (LPTSTR)&szRemoteResource;
nr.lpProvider = NULL;

//Establish connection (using username/pwd)
dwRetVal = ::WNetAddConnection2(
&nr,
strPwd.GetBuffer(0),
strLogon.GetBuffer(0),
FALSE
);
}

Notare la presenza di user e passwd che vengono richieste...
molto carino questo codice, il link ad esso (completo) è QUESTO (http://www.codeproject.com/internet/RemoteAdmin.asp?df=100&forumid=16674)

Mazza2
05-06-2004, 15:17
Originariamente inviato da LukeHack
per vedere lo stack è una cavolata :) ci sono decine di funzioni che, sia in C che in Java fanno benone sta cosa...

va benissimo anche vstudio.NET,che contiene vc++7
MA STA EMAIL? :eek:



la gui in java e' gia' fatta ... pero' forse per l'interfacciamento con il programma che mi dai e' meglio usare c++ cosi' e' + facile...la gui poi con vs.net si fa in 2 sec..


la mail e' mazza82@tiscali.it


grazie! da lunedi' comincio a vedere un po' di fare sto programma del cavolo! e spero sia la volta buona :D

cionci
05-06-2004, 18:45
Comunque quel codice instalal un servizio di amministrazione remota della M$...quindi bene o male "apre" la amcchina a possibili esecuzioni remote (sempre conoscendo username e password)...

Mazza2
05-06-2004, 19:46
Originariamente inviato da cionci
Comunque quel codice instalal un servizio di amministrazione remota della M$...quindi bene o male "apre" la amcchina a possibili esecuzioni remote (sempre conoscendo username e password)...


si, da quel che ci ho capito leggendo il codice, installa il servizio solo la prima volta che ci si connette per variare lo stack tcp e poi lo lascia li'... cmq va bene, cosi' si evita di installare a mano su tutti i pc il programma e poi cmq ci vuole password da admin per entrare...

LukeHack
05-06-2004, 20:40
esatto;)

Mazza2
05-06-2004, 22:12
uhmm, ho dato un occhio veloce ai i vari sorgenti che compongono il programma che mi hai dato e devo dire che il c++ e' davvero sporco! niente a che vedere con java e c# coi quali sono abituato a confrontarmi :eek: Mi ci vorra' un po' per capirci qualcosa :D ... i metodi inline che sono??



p.s. Ma TUTTI i metodi si chiamano c e poi il nome?? ma e' orribile tutto cio'! :eek:

Mazza2
05-06-2004, 22:25
uhm... non trovo il main della parte client.. possibile? ho fatto un search su tutti i sorgenti aperti.. dovrebbe essere nella classe RemoteAdmin oppure RemoteAdministrator :(

LukeHack
05-06-2004, 23:05
Originariamente inviato da Mazza2
uhmm, ho dato un occhio veloce ai i vari sorgenti che compongono il programma che mi hai dato e devo dire che il c++ e' davvero sporco! niente a che vedere con java e c# coi quali sono abituato a confrontarmi :eek: Mi ci vorra' un po' per capirci qualcosa :D ... i metodi inline che sono??



p.s. Ma TUTTI i metodi si chiamano c e poi il nome?? ma e' orribile tutto cio'! :eek:
ALLORA, non cercare di capire IN TUTTO sto codice se non sai niente di VC++, è moolto tosto e non è il caso che impazzisci su questo come PRIMO ESEMPIO.. cerca di capire come funziona, piuttosto, la classe i cui metodi ho postato sopra,sono essi che svolgono il lavoro principale...

per quanto riguada il paragone tra C#,Java e C++ ti dico una cosa:
hai perfettamente ragione;) il Java è veramente semplice e pulito!
il C/C++ è per smanettoni veri, anche se strumenti RAD come kylix o VStudio sono una mano santa:D

LukeHack
05-06-2004, 23:21
Originariamente inviato da Mazza2
uhm... non trovo il main della parte client.. possibile? ho fatto un search su tutti i sorgenti aperti.. dovrebbe essere nella classe RemoteAdmin oppure RemoteAdministrator :(
come non lo trovi?:eek: fai il debug,la prima riga che parte è il main del client!

RemoteAdmin.cpp contiente la seguente riga, CSplashWnd::EnableSplashScreen(TRUE);
CSplashWnd::ShowSplashScreen(CWnd::GetDesktopWindow());
::Sleep(2500);

// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;

// The one and only window has been initialized, so show and update it.
///m_pMainWnd->ShowWindow(SW_SHOWNORMAL);
m_pMainWnd->UpdateWindow();
devi sapere che le MFC sono un Wrapping delle librerie Windows di default, l'istanza m_pMainWnd è quella che controlla la finestra principale, che è stata invocata dalla WinMain classica,solo che tu non la vedi perchè ci pensa il costruttore della MFC a invocare il costruttore padre (la WinMain() appunto)
cmq se fai un debug è meglio cosìì vedi un pò come funge la dinamica;)

Mazza2
06-06-2004, 12:44
uhm... non so se gli dico che ci riesco a farlo, non ho lo sbattimento per stare a smadonnare per altri giorni..:D cmq dai almeno ci provo..

ho una domanda:

se scrivo il codice della gui in c#, posso richiamare le funzioni dei sorgenti che mi hai dato come se fossero funzioni in c#?? cioe' del tipo io nel mio sorgente c# scrivo : estabilishConnection(prametri) come se niente fosse?

Mazza2
06-06-2004, 12:59
void CRemoteAdministrator::AddMachine(CMachineInfo& miMachineInfo)
{
CMachineInfo* pmiMachineInfo = new CMachineInfo;


cosa significa? e' un metodo che mi rida' void, che si chiama AddMachine (cosa c'entra prima CRemoteAdministrator???), che ha come parametro un cosa?? CMachineInfo& e', almeno credo, un metodo della classe MachineInfo.cpp ...non capisco perche' ci siano due file per ogni sorgente uno .c++ e l'altro .h e poi... la leggibilita' e' un optional? se il file che contiene la classe si chiama MachineInfo.. perche' la classe la chiama cMachineInfo?? adoro java che NON lo permette...:D senza una valida base di c++ molte cose mi risultano incomprensibili :rolleyes:

cionci
06-06-2004, 13:47
La classe è CRemoteAdministrator... AddMachine ne è un metodo...

cionci
06-06-2004, 13:47
Originariamente inviato da Mazza2
se scrivo il codice della gui in c#, posso richiamare le funzioni dei sorgenti che mi hai dato come se fossero funzioni in c#?? cioe' del tipo io nel mio sorgente c# scrivo : estabilishConnection(prametri) come se niente fosse?
Non credo...

LukeHack
06-06-2004, 14:09
Originariamente inviato da Mazza2
uhm... non so se gli dico che ci riesco a farlo, non ho lo sbattimento per stare a smadonnare per altri giorni..:D cmq dai almeno ci provo..

ho una domanda:

se scrivo il codice della gui in c#, posso richiamare le funzioni dei sorgenti che mi hai dato come se fossero funzioni in c#?? cioe' del tipo io nel mio sorgente c# scrivo : estabilishConnection(prametri) come se niente fosse?
nei file .h vi sono le DICHIARAZIONI dei metodi,nei corrisp. .cpp le DEFINIZIONI(ossia il codice vero e proprio)...
ti traduco questo: void CRemoteAdministrator::AddMachine(CMachineInfo& miMachineInfo)
{
CMachineInfo* pmiMachineInfo = new CMachineInfo;
AddMachine,appartenente alla classe CRemoteAdministrator(:: ),è un METODO che prende in ingresso il puntatore a miMachineinfo, ossia l'INDIRIZZO FISICO di quella variabile (&, serve a poterci scrivere in pratica)


Per la seconda domanda,si è possibile, col vs.net lo puoi fare, ma non penso ti convenga scomodare un altro linguaggio per UNA GUI,che la puoi fare benissimo in VC++ (quasi banale;) )

cmq se lo vuoi fare,devi costruirti una .dll coi metodi (e le classi) che ti interessano dichiarati __declspec(dllexport) void AddMachine(CMachineInfo& miMachineInfo) e poi ridichiararli nei file .cs del tuo progetto GUI

LukeHack
06-06-2004, 14:20
cmq la sporcizia del C++ (come la chiami tu ;) ) è un vantaggio quando si tratta di deployare al cliente il tuo lavoro finale...infatti essi, da furbi, a volte mi chiedono il codice sorgente compreso nel prezzo (alto devo dire,ma se mi scomodo AGG'CACCIA' I PICCIOLI :D) e io glielo dò,ma è talmente incomprensibile che nessuno di loro ci capisce un'ACCA e per gli upgrade indovina un pò chi richiamano? ;)

Mazza2
06-06-2004, 15:35
Originariamente inviato da LukeHack
cmq la sporcizia del C++ (come la chiami tu ;) ) è un vantaggio quando si tratta di deployare al cliente il tuo lavoro finale...infatti essi, da furbi, a volte mi chiedono il codice sorgente compreso nel prezzo (alto devo dire,ma se mi scomodo AGG'CACCIA' I PICCIOLI :D) e io glielo dò,ma è talmente incomprensibile che nessuno di loro ci capisce un'ACCA e per gli upgrade indovina un pò chi richiamano? ;)


uhm.. questo discorso ce lo ha gia' fatto il nostro prof di ingegneria del software.. :sofico: :sofico: del tipo:


cliente: "ehm... avrei un altro requisito che mi ero dimenticato al momento del contratto.."

io: "nessun problema mi dica.."

cliente: "ecco.. il programma dovrebbe fare anche questo.."

io: "e', le vorrei venire incontro, ma e' una modifica sostanziale, le costera' almeno 1000000000 $$"

in realta' elimino solo un commento.... :sofico: :sofico:

cionci
06-06-2004, 15:47
Mazza2: all'università non hai fatto il C++ ? Alla triennale ?

Mazza2
06-06-2004, 15:54
Originariamente inviato da LukeHack
nei file .h vi sono le DICHIARAZIONI dei metodi,nei corrisp. .cpp le DEFINIZIONI(ossia il codice vero e proprio)...
ti traduco questo: void CRemoteAdministrator::AddMachine(CMachineInfo& miMachineInfo)
{
CMachineInfo* pmiMachineInfo = new CMachineInfo;
AddMachine,appartenente alla classe CRemoteAdministrator(:: ),è un METODO che prende in ingresso il puntatore a miMachineinfo, ossia l'INDIRIZZO FISICO di quella variabile (&, serve a poterci scrivere in pratica)


Per la seconda domanda,si è possibile, col vs.net lo puoi fare, ma non penso ti convenga scomodare un altro linguaggio per UNA GUI,che la puoi fare benissimo in VC++ (quasi banale;) )

cmq se lo vuoi fare,devi costruirti una .dll coi metodi (e le classi) che ti interessano dichiarati __declspec(dllexport) void AddMachine(CMachineInfo& miMachineInfo) e poi ridichiararli nei file .cs del tuo progetto GUI


uhm, daccordo lo faro' in c++ che cosi' non lo rendo ancora + difficile di quello che e'..


dunque la sintassi per un metodo in c++ e':

tiporitorno classeincuic'e'ilmetodo::nomemetodo(lista parametri) ?


sto dando un occhio alla classe RemoteAdminService.. contiene un sacco di metodi per far partire processi sulla macchina alla quale si e' connessi.. le dichiarazioni sono tutte cosi':

void RemoteAdminExecuteProcessThread(void* pParam)



che diavolo e' void* param?? un puntatore a nulla? cioe' void e' un tipo??

in questa classe credo mi convenga creare il mio metodo getStackTcp che prende dalla macchina remota i campi del registro che mi servono..spero ci siano delle primitive in vc++ per fare cio' e che non debba come in java andare a cercare Jndi per interfacciarmi al registro...

Mazza2
06-06-2004, 15:59
trovata la classe Microsoft.Win32.Registry che mi permette di fare quello di cui ho bisogno.. stavo pensando ad una cosa pero': se io compilo con vs2003 .NET mi trasforma il tutto per andare sulla piattaforma .NET che non e' quello che voglio... non e' meglio se prendo vs 6.0 che non era .NET ??

cionci
06-06-2004, 16:03
Deciditi...o usi .Net (Microsoft.Win32.Registry) o sensa .Net (credo che tu lo possa compilare anche su VC.Net senza usare .Net)...

LukeHack
06-06-2004, 16:15
Originariamente inviato da cionci
Deciditi...o usi .Net (Microsoft.Win32.Registry) o sensa .Net (credo che tu lo possa compilare anche su VC.Net senza usare .Net)...
può usare uno dei due a scelta senza problemi, basta che fa uno static link dell'mfcxx.dll e non ci sono problemi di deploy ;)
tanto sto codice usa solo mfc,niente estensioni atl o winzozzeria varia...

LukeHack
06-06-2004, 16:18
Originariamente inviato da cionci
Mazza2: all'università non hai fatto il C++ ? Alla triennale ?
Ottima domanda !
ma tu non sei uno studente di ingegneria informatica? io pure!
Fondamenti di informatica 2 non l'hai fatto? (da voi niubboni del N.O. si dovrebbe chiamare Progettazione del software 2 o na cosa simile...)
LI DA SECOLI CI STA IL C++, che sembra in effetti a te sconosciuto :wtf:

LukeHack
06-06-2004, 16:22
Originariamente inviato da Mazza2

che diavolo e' void* param?? un puntatore a nulla? cioe' void e' un tipo??

void* è un puntatore ad un tipo indefinito

Mazza2
06-06-2004, 17:28
Originariamente inviato da LukeHack
Ottima domanda !
ma tu non sei uno studente di ingegneria informatica? io pure!
Fondamenti di informatica 2 non l'hai fatto? (da voi niubboni del N.O. si dovrebbe chiamare Progettazione del software 2 o na cosa simile...)
LI DA SECOLI CI STA IL C++, che sembra in effetti a te sconosciuto :wtf:



si faccio ing. informatica! sono al terzo anno!

adesso si fanno linguaggi un po' + moderni :D (java e c#)

che matusa che siete! (pero' siete ancora utili a noi giovanotti :sofico: :sofico: )

Mazza2
06-06-2004, 17:30
Originariamente inviato da LukeHack
può usare uno dei due a scelta senza problemi, basta che fa uno static link dell'mfcxx.dll e non ci sono problemi di deploy ;)
tanto sto codice usa solo mfc,niente estensioni atl o winzozzeria varia...


bhe, magari alla fine mi farai sta cosa e'? :D

Luc@s
06-06-2004, 17:30
Originariamente inviato da Mazza2

adesso si fanno linguaggi un po' + moderni :D (java e c#)


Permettimi di dire 2 cosette e scusa l'intrusione.
Il C# è na gran copiata del Java
Il java è nato per semplificare il c++ ma cosi facendo ne toglie molta della sua potenza(l' ereditarietà multipla è ricostruibile, ma i puntatori non sono usabili e si è comunque limitati nell'interazione con l'OS sottostante)
Il C++ non è vecchio come non lo è il C e come tutti e 2 non lo saranno mai
Per esempio, prova a scrivere un OS in Java/C# ......se riesci ti pago ;)
Ovviamente poi ogni linguaggio ha i suoi vantaggi.
Java per le reti ha gia molta roba pronta ed è + orientato al distribbuited e per un app client/server lo preferirei al C/C++.

IMHO (parere di un ragazzo di 16 anni)

cionci
06-06-2004, 17:40
Originariamente inviato da Mazza2
si faccio ing. informatica! sono al terzo anno!

adesso si fanno linguaggi un po' + moderni :D (java e c#)

che matusa che siete! (pero' siete ancora utili a noi giovanotti :sofico: :sofico: )
Guarda che dalle mie parti continuano a fare anche C e C++ ;) C# assolutamente no... Sicuramente la maggior parte dei programmatori, e spero degli insegnanti, storge il naso pensando a C# !!!

Luc@s
06-06-2004, 17:41
Originariamente inviato da cionci
Guarda che dalle mie parti continuano a fare anche C e C++ ;) C# assolutamente no... Sicuramente la maggior parte dei programmatori, e spero degli insegnanti, storge il naso pensando a C# !!!

come ho detto sopra.
Al max si comincia ad usare il Java ma C#/.NET non lo insegna nessuno(per fortuna).

LukeHack
06-06-2004, 17:43
Originariamente inviato da Luc@s
Permettimi di dire 2 cosette e scusa l'intrusione.
Il C# è na gran copiata del Java
Il java è nato per semplificare il c++ ma cosi facendo ne toglie molta della sua potenza(l' ereditarietà multipla è ricostruibile, ma i puntatori non sono usabili e si è comunque limitati nell'interazione con l'OS sottostante)
Il C++ non è vecchio come non lo è il C e come tutti e 2 non lo saranno mai
Per esempio, prova a scrivere un OS in Java/C# ......se riesci ti pago ;)
Ovviamente poi ogni linguaggio ha i suoi vantaggi.
Java per le reti ha gia molta roba pronta ed è + orientato al distribbuited e per un app client/server lo preferirei al C/C++.

IMHO (parere di un ragazzo di 16 anni)
per avere 16 anni hai già capito tutto;)

è uno SCANDALO che non studiate il C++! veramente inquietante come ipotesi,sapere che i miei futuri colleghi non sanno un'ACCA di C!

LukeHack
06-06-2004, 17:43
Originariamente inviato da Mazza2
bhe, magari alla fine mi farai sta cosa e'? :D
ma cosa? :D

Luc@s
06-06-2004, 17:46
Originariamente inviato da LukeHack
per avere 16 anni hai già capito tutto;)

è uno SCANDALO che non studiate il C++! veramente inquietante come ipotesi,sapere che i miei futuri colleghi non sanno un'ACCA di C!

e che studio da 3 anni e qualcosa la ho imparata a forza di fare stupidate( cercare di imparare .net e usare windows le principali) ;)

P.S: io tuo futuro collega( si certo :oink: ) programmo in C/C++ ;)

Mazza2
06-06-2004, 17:57
Originariamente inviato da Luc@s
Permettimi di dire 2 cosette e scusa l'intrusione.
Il C# è na gran copiata del Java
Il java è nato per semplificare il c++ ma cosi facendo ne toglie molta della sua potenza(l' ereditarietà multipla è ricostruibile, ma i puntatori non sono usabili e si è comunque limitati nell'interazione con l'OS sottostante)
Il C++ non è vecchio come non lo è il C e come tutti e 2 non lo saranno mai
Per esempio, prova a scrivere un OS in Java/C# ......se riesci ti pago ;)
Ovviamente poi ogni linguaggio ha i suoi vantaggi.
Java per le reti ha gia molta roba pronta ed è + orientato al distribbuited e per un app client/server lo preferirei al C/C++.

IMHO (parere di un ragazzo di 16 anni)


concordo pienamente sul c# e' una gran copiata dal java... infatti bill come sempre non sa fare altro che scopiazzare da tutti e prendersi il mercato per se..

Mazza2
06-06-2004, 17:59
Originariamente inviato da cionci
Guarda che dalle mie parti continuano a fare anche C e C++ ;) C# assolutamente no... Sicuramente la maggior parte dei programmatori, e spero degli insegnanti, storge il naso pensando a C# !!!



no, ma io parlavo solo del c++.. il c si fa: e' il primo corso ;)



sul c# non vedo cosa si possa avere da ridire: e' identico a java e in + ti da le struct e migliora cmq le poche carenze di java.. certo e' una gran scopiazzatura quello e' vero!

Mazza2
06-06-2004, 18:02
Originariamente inviato da Luc@s
e che studio da 3 anni e qualcosa la ho imparata a forza di fare stupidate( cercare di imparare .net e usare windows le principali) ;)

P.S: io tuo futuro collega( si certo :oink: ) programmo in C/C++ ;)



ricordate che se (putroppo) bill fara' come in tutti gli altri ambiti nel quale si e' immischiato, finiremo prima o poi a programmare tutti con la piattaforma .NET (sinceramente comincio a vederla grigia soprattutto per il mio java piuttosto che per il c++ in quanto hanno ambiti di utilizzo diverso..)

Mazza2
06-06-2004, 18:03
Originariamente inviato da LukeHack
ma cosa? :D


ma si dai, l'mfcxx :sofico:

Luc@s
06-06-2004, 18:04
Originariamente inviato da Mazza2
sul c# non vedo cosa si possa avere da ridire: e' identico a java e in + ti da le struct e migliora cmq le poche carenze di java.. certo e' una gran scopiazzatura quello e' vero!

ecco vedi........ti sei gia fregato in partenza.
Hai detto che è identico.
Io so ho 2 cose che sono una diversa all'altra uso quella che + si addice al momento.
Ma se ho 2 cose identiche che scelta c'è?
E qui nascono le guerre di religione.
La M$ che bistratta la Sun per dare + mercato al "suo" C#.
Ma è sempre e cmq la stessa storia che si ripete : qualcuno inventa qualche cosa geniale e il suo prossimo la ricopia cambiando quasi nulla.
Questo succede sempre nella vita e molto + spesso nel mondo dei Pc con la M$

Mazza2
06-06-2004, 18:05
Originariamente inviato da Luc@s
ecco vedi........ti sei gia fregato in partenza.
Hai detto che è identico.
Io so ho 2 cose che sono una diversa all'altra uso quella che + si addice al momento.
Ma se ho 2 cose identiche che scelta c'è?
E qui nascono le guerre di religione.
La M$ che bistratta la Sun per dare + mercato al "suo" C#.
Ma è sempre e cmq la stessa storia che si ripete : qualcuno inventa qualche cosa geniale e il suo prossimo la ricopia cambiando quasi nulla.
Questo succede sempre nella vita e molto + spesso nel mondo dei Pc con la M$



ha sempre fatto cosi' bill... e ha sempre vinto :(

Luc@s
06-06-2004, 18:10
Originariamente inviato da Mazza2
ha sempre fatto cosi' bill... e ha sempre vinto :(

putroppo il problema è che in questo mondo chi ha soldi puo tutto.
Non è un problema solo del mondo dei Pc e un problema molto + ampio e che peggiora sempre + purtroppo:cry:

LukeHack
06-06-2004, 18:14
Originariamente inviato da Mazza2
ma si dai, l'mfcxx :sofico:
è sufficiente che da projects->settings->link checcki "use MFC as static link";)

Mazza2
07-06-2004, 08:24
io tra un po' gliela do' su! (trad: lascio perdere :D )

qui credono che io sia una software house intera! Oggi arrivo al lavoro e mi viene detto che sarebbe meglio se potessi scrivere un programma che permette di installare roba sui pc della rete in remoto! Per fare questo esistono programmi di tipo professionale come pc anywhere e roba simile!


Non so che dire :cry: Si pretendo un po' troppo da un povero neanche ing. del terzo anno :eek:

Il programma che stavamo approntando per cambiare lo stack si puo' modificare credo per eseguire qualsiasi comando su una macchina remota, ma credo che ci sarebbero diversi problemi per trasferire i file sula macchina remota ed installare correttamente un'applicazione.. Comincio intanto con l'installare visual studio .net qui in ufficio che ci vogliono 2 ore quindi :D

cionci
07-06-2004, 08:36
Trasferire file è ancora più semplice con la password dell'admin...

Basta scrivere \\nomecomputer\C$ e dovresti entrare nella condivisone di amministrazione (c'è per ogni macchina se non è stata tolta)...

Mah...per installare, puoi usare lo stesso metodo per far partire l'installazione, il problema è l'interazione con il programma di installazione... Senza mettere un servizio non puoi fare niente... XP ad esempio ha la condivisone del desktop... Una specie di PC-Anywhere...ma comunque installa un servizio su una porta TCP o UDP...

Altrimenti fai il furbo e ti arrangi con gli strumenti già esistente...
Ad esempio con VNC... www.realvnc.org
Ovviamente devono permetterti di mettercelo sopra...

Mazza2
07-06-2004, 09:42
vnc sembra interessante... adesso sto installando visual studio e non posso installare contemporaneamente anche vnc.. cmq permette di fare installazioni a distanza?? se si, dico al capo che se lo faccia piacere che se no mi licenzio!

cionci
07-06-2004, 09:45
vnc è una condivisione del desktop...certo...è come installarsi il software manualmente su ogni amcchina, ma almeno no stai a girarti tutte le macchine...

Mazza2
07-06-2004, 11:02
dunque vnc lo hanno gia' e non vogliono installarlo su ogni macchina.. connessione guidata desktop remoto permette di fare installazioni a distanza? anche se ho l'impressione che sia disabilitata dappertutto :(

cionci
07-06-2004, 12:07
Fa la stessa cosa che fa vnc...

Mazza2
07-06-2004, 12:25
lascio perdere. Mi concentro sul programma per cambiare stack tcp che e' meglio... Lo faccio con c# e richiamo il codice c++...Inizio con la gui e poi faccio la parte per trovare le chiavi di registro che mi servono. Per le chiamate c++ mi servira' qualche esempio da qualcuno di voi :D e poi vi chiedevo se usando il c# si puo' sempre non usare il framework su tutte le macchine o se invece in questo caso e' necessario..

cionci
07-06-2004, 12:44
Il framework credo che sia necessario su tutte le macchine...

Mazza2
07-06-2004, 13:06
provo di fare in c++ anche se non riesco nenahce a fare le cose basilari... ad es. ho fatto una classe form (che si chiama Connetti) che estende windows.form, ma se la dichiaro nella classe che la deve visualizzare mi da 4 (dico 4 errori!!!)


private: StackChanger::Connetti * testDialog;



questo perche' mi dice che la classe StackChanger::Form1::Connetti non c'e'... l'errore e' che la classe e': StackChanger::Connetti (form1 lo aggiunge lui in quanto sono nella classe form1.. ma quanto e' stupido??)..

Mazza2
07-06-2004, 15:09
uhm... mi sa che c'e' un problema di fondo... ho provto cosi' per vedere se il programma postato da luke si riesce a connettere con uno dai pc della lan e ad installargli il server... ebbene ho provato con 5-6pc e con nessuno si e' riuscito a connettere..credo proprio che diro' al capoccia che nun se puo' fa...:confused:

cionci
07-06-2004, 15:18
Originariamente inviato da Mazza2
ad es. ho fatto una classe form (che si chiama Connetti) che estende windows.form,
Allora continui ad usare .Net ed avrai bisogno comunque del framework...

Mazza2
07-06-2004, 15:30
Originariamente inviato da cionci
Allora continui ad usare .Net ed avrai bisogno comunque del framework...


nono, se chekko quello che mi ha detto luke, non si usa .net, pero' il problema ora si e' spostato sul fatto che il programma che si deve connettere non si connette! :muro: ragazzi lascio stare ufficialmente! e' inutile voler fare qualcosa al di sopra delle proprie possibilita'! un conto era l'altro programma (quello in java) nel quale partivo con una conoscenza buona del linguaggio e alcune lacune in aspetti abbastanza particolareggiati, ma qui parto non conoscendo c++ e nemmeno il programma per connettersi... C'e' da strippare per capirci qualcosa.. meglio lasciar perdere..

cionci
07-06-2004, 15:33
Sì...lo usi...perchè quelle sono classi del .Net Framework...non sono di MFC... A meno che tu lo possa linkare staticamente, ma mi sembra strano...

Mazza2
07-06-2004, 15:48
Originariamente inviato da cionci
Sì...lo usi...perchè quelle sono classi del .Net Framework...non sono di MFC... A meno che tu lo possa linkare staticamente, ma mi sembra strano...


cos'e' mfc? :confused:

cionci
07-06-2004, 15:50
E' il framework di Visual C++... Quello che si usava prima che uscisse .Net (e che si può usare anche su VC.Net)...

LukeHack
07-06-2004, 21:56
Mazza2 ma che dici?:D il prg funziona egregiamente,l'ho provato sulla mia lan con 2 winzozz xp e da uno ho fatto partire programmi sull'altro...
ho fatto partire il freecell,lo shutdown ed un servizio di rete (usando net start <nome_servizio>...

cmq fai un pò te..se ti serve una mano vedo di aiutarti il possibile

Mazza2
08-06-2004, 10:21
ho provato anche a casa mia.. viene sempre fuori la finestra: could not start remote service...

la procedura che faccio e': file-->add machine-->inserisco l'ip della macchina a cui voglio connettermi, poi non capisco perche' ma non si puo' cambiare login e tengo administrator e poi mi connetto, ma mi da sempre l'errore..


tu come fai ?

cionci
08-06-2004, 10:55
Ma la password dell'amministratore l'hai messa ?

LukeHack
08-06-2004, 13:17
Originariamente inviato da Mazza2
ho provato anche a casa mia.. viene sempre fuori la finestra: could not start remote service...

la procedura che faccio e': file-->add machine-->inserisco l'ip della macchina a cui voglio connettermi, poi non capisco perche' ma non si puo' cambiare login e tengo administrator e poi mi connetto, ma mi da sempre l'errore..


tu come fai ?
prova a fare così: prima di avviare il programmone,da shell scrivi
net use \\ipDelServer\IPC$ /u:"administrator" <passwd di administrator>

a quel punto la connessione ad IPC$ avviene al volo...e non hai problemi
dopo di che,per evitare di fare ad ogni boot sta solfa,ti crei un'unità di rete (Z:) che avvi ad ogni reboot

LukeHack
08-06-2004, 13:20
altra cosa...non è che per caso hai il servizio ICF attivo (er firewall scrauso di winzozz per capirci;) )? se si LEVALO
Devi aver inoltre attivo su entrambi i pc,il servizio SERVER ed aver abilitato su ogni connessione di rete i protocolli FileSharing di winzozz e client di reti microzozz..
GO:D

Mazza2
10-06-2004, 09:49
quando scrivo da prompt di dos net use.. eccc... mi dice che nome utente o pass sono errati..... che faccio? magari e' un errore di path o qualcosa del genere... se io sono dentro a win come pippo nel dominio xxx come devo scrivere il tutto?

Mazza2
10-06-2004, 10:45
ok, ho fatto come hai detto, ma non mi si connette cmq.. :mc:

LukeHack
10-06-2004, 11:41
Originariamente inviato da Mazza2
quando scrivo da prompt di dos net use.. eccc... mi dice che nome utente o pass sono errati..... che faccio? magari e' un errore di path o qualcosa del genere... se io sono dentro a win come pippo nel dominio xxx come devo scrivere il tutto?
EH?:D come pass errati!
allora non hai attivi i servizi di net share sul server,ecco perchè il programmone,che usa proprio quel protocollo,non funge...
li devi abilitare...
fintanto che net use ti manda a quel paese non puoi ottenere il prg funzionante.
..
vai sul server,posta il net start qui...