Newsgroup: it.comp.programmare.win32
Titolo: eseguire una CString

ciao a tutti,
come posso eseguire una CString:
CString strTemp="SetCursorPos(20,30)"
in modo tale da eseguire la funzione SetCursorPos portando il puntatore 
del mouse in (20,30) ??
grazie

 wrote in message
news:449a7aa2$0$16943$4faf...@reader4.news.tin.it...

In nessun modo che non preveda l'implementazione di un parser, quindi
prevedendo tutte le API supportabili a priori... non puoi lanciare API WIN32
senza compilare ... al limite puoi lanciare delle righe di comando shell
Sko

Sko ha scritto:

ho realizzato una connessione client /server.
il client invia messaggi per il controllo del mouse sul server.
anzichè inviare le sole coordinate con messaggi del tipo "(x,y)"  e 
quindi splittare e convertire in interi.. vorrei far eseguire 
SetCursorPos(x,y) direttamente..
hai qualche idea per risolvere il problema?
ciao e grazie

 wrote in message
news:449a9ec9$0$5092$4faf...@reader2.news.tin.it...

Ho gia' risposto...un parser...
Sko

 SetCursorPos(x,y) direttamente..
ah certo così si che è diretto... :asd:
quello che cerchi di fare mi sembra un po' come tentare di mantenere
qualcosa a temperatura ambiente mettendola in un forno a mettendo il forno
in un congelatore.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 in un congelatore.
ma roftl

 
Implementa un semplice protocollo.
Ad esempio il nome della funzione può essere codificato con una stringa
C, oppure con un opcode (intero 8 byte).
Dopo il comando da eseguire serve sapere il numero di argumenti (come
intero 8 byte) poi il formato (stringa C alla scanf) ed infine i
parametri come stringhe C.
Poi ti servire un array associativo per associare i vari opcode a delle
funzioni tipo:
int handler(int n, char* fmt, char* args[])
(oppure usi uno scwitch).
Definisci diverse di queste funzioni, ognuna per la funzione che devi
eseguire (vado a memoria per la sintassi):
int SetCursorPos_handler(int n, char* fmt, char* args[]) {
   int x, y;
   assert n == 2;
   /* fmt non ti serve */
   sscanf(args[0], "%d", &x);
   sscanf(args[1], "%d", &y);
   return SetCursorPos(x,y);
}
Saluti  Manlio Perillo

 Implementa un semplice protocollo.
Meglio implementare un VBScripting interno. Non complicato e molto potente. 
-- 
Luc

Luc ha scritto:

A questo punto tanto vale usare Python...
Con Twisted il server lo scrivi in pochissime linee di codice.
<non testato>
from twisted.internet.protocol import ClientFactory
from twisted.protocols.basic import LineReceiver
from twisted.internet import reactor
class MouseProtocol(LineReceiver):
    def lineReceived(self, data):
        args = data.split(',') # ad esempio SetCursorPos,100,200
        cmd = args[0]
        # chiama il metodo con lo stesso nome del comando
        meth = getattr(self, 'handle_' + cmd, None)
        if meth is not None:
	   meth(*args)
   def handle_SetCursorPos(self, cmd, x, y):
      x = int(x)
      y = int(y)
      SetCursorPos(x, y)
f = Factory()
f.protocol = MyProtocol
reactor.listenTCP(7777, f)
reactor.run()
Ma questo non è l'unico modo.
Twisted offre anche una libreria per RPC, oltre al supporto integrato
per SSL.
Saluti  Manlio Perillo

 hai qualche idea per risolvere il problema?
Valuta un server xmlrpc o soap.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! God Knows How Long I Tried To Change Fate !>-
  		Blind Guardian - Mordred's Song


Ci sono diversi tool di RPC in circolazione. Devi solo sceglierne uno.
Guarda questo: 
http://xmlrpc-c.sourceforge.net/