mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.programmare.win32
Titolo: api

Salve poco tempo fa avevo chiesto un consigli su un buon libro per imparare
a programmare usando le api di windows e mi avete consigliato questo testo:
Programming Windows by Charles Petzold
Sono andato ad ordinarlo in libreria e pare che questo libro e talmente
vecchio che non lo stampano piu', almeno cosi' mi hanno detto. Non e' che
potreste consigliarmi qualche altro testo.
Io sto imparando a programmare in c .
Salve a tutti.
Non ho capito molto bene se le api cambiano a seconda di quale linguaggio
uso per programmare, oppure sono sempre le stesse sia che io programmi in
visual basic o in c?
grazie a tutti
    CAIO

     CAIO
ciao

Newsgroup: it.comp.programmare.win32
Titolo: Vi sfidamo!

Abbiamo appena indetto un concorso al sito Visual Basic Italia
http://digilander.iol.it/VBItalia/INDICE.html
un concorso di "Programma intelligente". Noi il nostro progetto l'abbiamo
gia creato...voi cosa sapete fare?
Il regolamento e all'interno del sito (vedere Concorsi)
Ciao!



Gia' il fatto che sia scritto in Visual Basic decreta che non puo'
essere, poi, cosi' intelligente ! ;)
Non visitate il sito, e' una trappola per cercare collaborazione.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]
-----------------------------------------------------

 ha scritto nel messaggio
news:v3dM5.515$fx4....@news.infostrada.it...


 wrote in message
news:ago20tsoot3rth7r0...@4ax.com...


Newsgroup: it.comp.programmare.win32
Titolo: May thread handles be waited on?

Scusate il subject in inglese :P
Vi ripongo la domanda in italiano, dato che la questione non mi è chiara
stando a quanto ho letto su MSDN: è possibile usare una wait function per
attendere che l'handle di un thread assuma uno stato signaled, tipo
evento? Vi riporto qui sotto il passo di MSDN che mi ha fatto venire
questo dubbio:
"When a thread terminates, the thread object attains a signaled state,
satisfying any threads that were waiting on the object."
questa frase si trova nei Remarks della funzione CreateThread, e ne' prima
ne' dopo dice qualche altra cosa più specifica, è una frase messa così, là
in mezzo.
Da quanto ho capito io, gli handles dei thread diventano signaled quando i
thread terminano... è giusto? Se è così tra l'altro mi farebbe molto
comodo in certi miei programmi dove ho creato degli eventi apposta per
attendere che un thread finisse... :P
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


è così, infatti se guardi WaitForSingleObject su msdn indica esplicitamente
che si può attendere un thread
--
Pela

 che si puň attendere un thread
ottimo! :)
ciao e buone feste

Newsgroup: it.comp.programmare.win32
Titolo: Porta parallela: frequenza di aggiornamento

Mi servirebbe sapere qual'č la frequenza minima di aggiornamento della porta
parallela.
Devo gestirla col VB.
So che dipende dal driver della porta, quindi prendiamo in considerazione il
caso piů lento (che penso sia quello piů comune).
Grazie.
Luca.

 parallela.
Cosa intendi per 'aggiornamento' della parallela?
-- 
This screen intentionally left blank.
News 2000 [v 2.06] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net

 ha scritto nel messaggio
news:32eds0F...@individual.net...

Intendo quante volte al secondo aggiorna lo stato della porta, ovvero ogni
quanto va a controllare lo stato degli 8 pin in ingresso.
Spero di esser stato sufficientemente chiaro, diversamente non saprei come
spiegarlo ulteriormente.

 spiegarlo ulteriormente.
Non so per cosa vuoi usare la porta parallela ma di regola, se 
intendi accedervi direttamente, è il programma che 'interroga' la 
porta stessa, pertanto sarai tu a decidere il tempo di polling. Gli 
indirizzi i/o della parallela sono indirizzi FISICI.
-- 
Capt'n!  The spellchecker kinna take this abuse!


Io farei il trasferimento dati tramite interrupt, quando sono presenti
nella routine di handling inserisci la lettura del dato, così la porta
va alla sua velocità massima ^^

Newsgroup: it.comp.programmare.win32
Titolo: Aiuto creazione DLL

Volevo sapere come fare a creare una DLL in visual C++ 6.0 che si possa
importare in Visual Basic 6.0
--
Lorenzo
lor...@wisemad.com
www.wisemad.com
0039 - 02 -89.42.27.30


Tutte le DLL possono essere utilizzate da VB.
L'unico problema delle DLL in C++ č che i nomi di funzione sono soggetti al 
"name-mangling" (utilizzato per poter avere piů funzioni con lo stesso nome 
e argomenti diversi).
Per esportare una funzione č necessario dichiararla come 
__declspec(dllexport).
Per trovare i nomi "mangled" delle funzioni č sufficiente controllare la 
lista dei nomi esportati (dumpbin o quickview fanno al caso tuo).
Se vuoi evitare questo problema, puoi utilizzare la sezione "EXPORTS" del 
file def collegato al progetto e definire dei nomi piů semplici per le tue 
funzioni.
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)
Newsgroup: it.comp.programmare.win32
Titolo: Allocare tutta la memoria possibile in VC++ ?

Ciao a tutti !!!
Mi scuso in anticipo se quella che sto per farvi e' una superFAQ...
purtroppo sono sotto tesi e il tempo e' veramente agli sgoccioli...non ho potuto
consultare le FAQ di questo gruppo.
A chiunque sara' cosi' gentile da rispondermi vorrei chiedere se esiste un modo
per allocare tutta la RAM disponibile (o comunque quanta piu' RAM possibile)
programmando in ambiente Visual C++ (4.0 o superiore).
Grazie in anticipo a tutti voi. Ciao !!! ^_______^
--
 ... The Machman
 
 ---------------------------------
 "Questions are a burden to other, 
  answers a prison for oneself."   
 ---------------------------------
 
m.cu...@inwind.it

 programmando in ambiente Visual C++ (4.0 o superiore).
Per lavorare su memoria FISICA, cioe`, come richiedi, RAM, bisogna
essere in condizioni estremamente particolari; nel 99.99% dei casi
si lavora in memoria virtuale, di conseguenza "allocare RAM" diventa
un non-senso (la memoria virtuale puo` vivere su disco in un dato
istante, su RAM in un altro, ed e` il sistema operativo che decide
istante per istante, non tu!).
Ad esempio, con Win2000 e le AWE, puoi, se il limite dei 3 gigabytes
"morde", allocare memoria FISICA in eccesso dei 4 gigabytes con
VirtualAlloc e il flag MEM_PHYSICAL.  Naturalmente questo ha senso
solo su macchine con memoria FISICA (cioe` appunto RAM) ben oltre
i 4 gigabyte, e con specifiche limitazioni d'uso, ma e` il modo
giusto di procedere se il tuo problema e` appunto questo ("ho 10
gigabyte di RAM, come posso usarla tutta per il mio processo?").
Spero tu capisca perche` questo va considerato come un problema
MOLTO specialistico, che tocca cioe` molto meno dello 0.0001% dei
programmi che si scrivono -- il vero contrario di una FAQ, dunque!
Se ci chiarisci quali sono le specifiche circostanze che pensi ti
impediscano di usare la normale memoria virtuale, a causa delle
quali vuoi invece occuparti direttamente di RAM, forse possiamo
esserti utile (magari aiutandoti a capire che concentrarsi sulla
memoria fisica, la RAM, e` errato nel tuo caso, come di solito).
Alex


--

Newsgroup: it.comp.programmare.win32
Titolo: waveOutSetVolume

Per controllare il volume si usa questa API:
waveOutSetVolume(
    HWAVEOUT hwo,
    DWORD dwVolume
   );
Perň mi potreste fare un'esempio di come si ottiene l'handle del device in
questione? Dall'sdk non ci ho capito niente.
Poi la DWORD dwVolume č composta da due word che comandano i diversi canali
(0000 to FFFF) per agire su questa variabile ditemi se sbaglio devo
utilizzare LOWORD e HIWORD?
Vi ringrazio!

utilizzare LOWORD e HIWORD?
Credo si possano usare solo come r-valori, ossia
WORD canale;
DWORD    volume;
canale = HIWORD(volume); //questa e' valida
HIWORD(volume) = canale; //questa no
Per la seconda, puoi fare cosi':
WORD    destro, sinistro; //forse li ho invertiti...
DWORD    volume;
volume = destro | (sinistro << 16);
Saluti,
    Mardy

 utilizzare LOWORD e HIWORD?
La DWORD (che e` un intero a 32 bit) contiene nei 16 bit piu` bassi il
volume del canale sinistro (o del canale mono), e nei 16 bit alti il
volume del canale destro. Quindi fai cosi`:
DWORD volume = ((DWORD)volumeSinistro & 0xFFFF) | ((DWORD)volumeDestro
<< 16);
... Dave. Put down those Windows disks, Dave.
---
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/
Newsgroup: it.comp.programmare.win32
Titolo: Decadimento prestazioni W98

Salve,
ho realizzato in VC6  un programma che interagisce con un db Access di
cui utilizza circa 15 tabelle. Il programma e' stato installato su 2
client W98 ed il db su un server NT4. L'uso e' stato soddisfacente per
6 mesi e si e' deciso di installarlo su altri 5 client della rete.
Questi sono tutti computer uguali, hanno tutti W98 prima serie tranne
uno che ha W98 seconda serie e sono collegati allo stesso modo. Pero'
in due di questi clients il programma rallenta in modo pesantissimo
quando accede alle tabelle del db, ed il rallentamento e' progressivo.
Ho usato i programmi di W98 per monitorare dal cliente il
comportamento dei PC ed ho notato che nei computers in cui si presenta
il rallentamento, quando accedo al db anche solo per visualizzare dati
in una finestra, la percentuale d'uso del processore sale al 47% circa
e NON SCENDE fino alla chiusura del programma. Chi puo' darmi una
qualsiasi indicazione? Ho fatto molte prove senza esito, e non capisco
cosa possa provocare un comportamento del genere.
Grazie anticipate,
gielle

Gielle ha scritto:

considerato che nessuno, più esperto di me in reti e/o database, ti
risponde....
mi sembra di capire che i due client su cui si verifica il problema
sono, random, due tra i 5 client di recente installazione, e non
sempre gli stessi due (sarebbe troppo semplice...).
Se è così, dovresti chiarire se il problema si verifica nell'uso
contemporaneo della rete da parte di tutti i client (o almeno a
partire da un certo numero), oppure si verifica random sia che altri
client stiano lavorando o meno.
Per ora, mi viene in mente solo questo (è poco, lo so...), ma se
aggiungi qualche altro elemento forse definiamo meglio il problema.
buona fortuna.

buona fortuna.
Grazie, ne avro' bisogno!!!!
Gielle

Newsgroup: it.comp.programmare.win32
Titolo: Novellino by DOS

Premetto che sto lavorando in C...
Avrei bisogno di sapere come fare per inviare al SO (Win9x) un comando
tipo il seguente (cioè con redirezionamento dell'output verso un
file):
dir *.* > miofile.txt
Un modo standard in C è il seguente:
system ( "dir *.* > miofile.txt" );
ma questo ha il difetto di mostrarmi sempre la finestra MsDos, ed
eccoci a quello che è il mio problema:
devo fare ciò imn modo invisibile all'utente finale.
Non so bene se sia possibile e se si per mezzo di quali API! :-(
Please help me! Thanks.

 Non so bene se sia possibile e se si per mezzo di quali API! :-(
Per la dir in particolare, potresti usare API come
FindFirstFile/FindNextFile.  Questo si applica a tutti
i "comandi" che sono in realta` implementati entro
command.com
 -- ci sono sempre modi comodi di
realizzarli nel tuo stesso programma, scrivendo i
risultati dovunque tu voglia.
Per una generica pippo.exe, CreateProcess e la
piu` comoda ShellExecuteEx ti permettono di
eseguirla in modo invisibile con ridirezione di
standard output su una qualsiasi handle di file
(che puoi ottenere con CreateFile), ecc.
Alex

Capito! Grazias!
Newsgroup: it.comp.programmare.win32
Titolo: AIUTO!!!! con stampante per etichette

Sto sviluppando un programma per stampare delle etichette utilizzando una
stampante termica Eltron TLP 2742 che ha come caratteristica quella di poter
stampare codici a barre utilizzando un particolare linguaggio (EPL2)
proprietario della stampante.
Il problema è che da VB non riesco a stampare questi benedetti codici a
barre.
Prima ho provato a utilizzare l'API escape con parametro PASSTHROUGH,
tentando di inviare direttamente i comandi alla stampante, ma senza
successo.
Ho provato ad aprire lpt1 con il comando open, scrivendo direttamente i
comandi sulla parallela, ma senza successo.
Ho provato ad aprire la parallela con le funzioni (api win32) CreateFile,
WriteFile, CloseHandle ecc, anche in questo caso senza successo.
C'è qualcuno che può suggerirmi qualcosa?
Grazie anticipatamente per l'aiuto.

 ha scritto nel messaggio
news:8ubov0$jcp$1...@serv1.albacom.net...

Hai provato una banale redirezione dell'input da file?
Ciao.
Il Michett@
--

Newsgroup: it.comp.programmare.win32
Titolo: C++ Builder - Come faccio a conoscere il percorso dove si trova il programma che e' in esecuzione ?

Salve,
come da subject.
GRAZIE 1000
faf...@tiscalinet.it

come da subject.
Ovviamente di questo programma che è in esecuzione devi avere qualche
informazione (Process Id, Handle o altro...), cmq le strade percorribili
sono 2 :
La prima [e + semplice] consiste nell'utilizzo delle API ToolHelp (PSAPI
sotto NT) che ti forniscono informazioni sui processi attivi.
La seconda via è quella di richiamare la GetModuleFileName da una HookProc
iniettata nello spazio di indirizzamento del programma di cui desideri le
informazioni (ringrazio Lorenzo Lutti per l'aiuto nella realizzazione di
questa "seconda via").
Ciao
--
- Carlo -
BSSoftware Tips Mailing-List Support



AnsiString strLocation = ExtractFilePath( ParamStr( 0 ) );
Ciao!
Giuliano

include <dir.h>
char buf[80];
AnsiString cur_wrk_dir;
cur_wrk_dir = getcwd(buf,80);
-----------------------------------------
La vita e' l'opera di un regista mediocre
e di un cattivo sceneggiatore

come da subject.
Application->ExeName



AnsiString strLocation = ExtractFilePath( Application->ExeName );

Newsgroup: it.comp.programmare.win32
Titolo: stampa orizzontale

Ciao a tutti!
Vorrei dare un ordine di stampa della scritta "Hello World" in C (con le Api
di Win).
Come faccio ad orientare ORIZZONTALMENTE il foglio?
Grazie di cuore a tutti!
GB

Come faccio ad orientare ORIZZONTALMENTE il foglio?
L'orientamento generalmente lo si fa dal driver e non dal programma .
Richiama la funzione PrintDlg che ti permette di accedere al driver
della stampante da dove potrai orientare il foglio .

 ha scritto nel messaggio
news:2jguj0ldpjj7ilo1o...@4ax.com...

Newsgroup: it.comp.programmare.win32
Titolo: ddcript

come posso individuare un file criptato con ddcrypt se allo stesso è stata
cambiata l'estensione?? Naturalmente mi serve di cercarlo tra centinaia o
migliaia di altri file.
Grazie

"Niko" <hg...@jhjh.iy> wrote in message
news:62f6d.8822$
75.3...@news3.tin.it

Se ha una signature riconoscibile all'interno (es MZ all'inizio di un
eseguibile PK all'inizio di un file zip, cafebabe all'inizio di un
compilato java) cerchi quella con grep -r ehm... :-) find o qualche
altra utility sempre disponibile su Windows.
Altrimenti... Buona Fortuna.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.programmare.win32
Titolo: Programmare la porta parallela: come?

Ho la necessità di programmare in modo dettagliato (nel senso che vorrei
accedere ai singoli segnali o quasi) la porta parallela. Qualcuno sa quali
funzioni dell'API posso utilizzare? Non è che, per caso devo scrivere un
driver (perchè dovrei)? Dove posso trovare, in rete, le informazioni
necessarie al mio scopo?
Grazie a chi mi portà rispondere.
Gabriele

 necessarie al mio scopo?
Nello NTDDK c'e' un header che documenta i codici per DeviceIoControl
del driver rilasciato con NT.
--== Sent via Deja.com 
http://www.deja.com/
 ==--
---Share what you know. Learn what you don't.---

 Gabriele
Puoi trovare interessanti informazioni a questo sito:
http://www.senet.com.au/~cpeacock
spero ti possano essere utili.
Ciao, Marco

Newsgroup: it.comp.programmare.win32
Titolo: #include "file" oppure #include "file.h" ???

Sembrerà una sciocchezza, ma nel VC ho visto, o almeno mi è sembrato, che ci
sia differenza se scrivo:
#include "file"
e
#include "file.h"
Qualcuno ne sa qualcosa?
Ciao by Stefano from Italy
On the net: 
s.pe...@usa.net

e' offtopic, ma ti rispondo per quello che so
#include <file.h> include il file.h nella directory include
#include "file.h" include il file.h nella directory corrente
#include "file" credo che includa il file senza estensione
nella directory corrente
Questo in ANSI C

-- 
	!-----------------------------------------------!
	! Giovanni Petrucciani				!	
	! 
giovanni.p...@iol.it
			!
	!-----------------------------------------------!

On the net: 
s.pe...@usa.net
Se non sbaglio questo accade solo per certi header file. Sono diversi
ad esempio "iostream.h" da "iostream". 
Non so darti spiegazioni dettagliate, perň ho visto negli esempi del
VC++ 5 che ad esempio "iostream" č usato al posto di "iostream.h"
quando vengono utilizzati i contenitori di STL...
Penso che utilizzando iostream invece di iostream.h se scrivi cout
intendi automaticamente std::cout senza doverlo scrivere
esplicitamente.
Scusa se non so essere piů preciso.
Daniele

Sembrerà una sciocchezza, ma nel VC ho visto, o almeno mi è sembrato, che


Se ricordo bene la differenza sta nel path.
#include <file.h>  cerca 'file.h' nella directory di default per gli header
(che penso si definisca nelle opzioni del compilatore)
#include "file" o più genericamente #include "PATH/file.ext" va a cercare il
file nel PATH specificato. Da ciò penso che #include "file" include il file
(che non ha estensione) nella directory corrente.
__________________________
Homer --> ICQ#25235024
Corso di  Laurea in Ingegneria Elettronica - SUN
Seconda Università di Napoli
e-mail: 
morhom...@tin.it
 (elimina  XSPAMX  !!!!!)
---------------------------------------------------------------------------


(.h) o i nuovi (senza .h).
E ai chi inizia un programma da zero cosa consigli di usare, anche per il
futuro?
Ciao by Stefano from Italy
Online as 
s.pe...@usa.net

...

Newsgroup: it.comp.programmare.win32
Titolo: Piccolo aiuto

Ciao a tutti,
qualcuno saprebbe dirmi come faccio a mandare in esecuzione un programma
(.exe) ad ogni avvio di windows e che vada bene x qualunque versione di
Win??
Grazie

 ha scritto nel messaggio
news:QI_M9.38426$Ou4.1...@twister2.libero.it...

devi creare una chiave nel registro di configurazione in
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Pela

Luke ha scritto:

Una idea potrebbe essere quella di inserne un collegamento nella cartella di
esecuzione automatica...
Salutoni Dave.

Newsgroup: it.comp.programmare.win32
Titolo: GetDiskFreeSpace

Ho in mano tutti i dati che la GetDiskFreeSpace mi restituisce,
ma (ignoranza disumana) non riesco a fare il calcolo per quanto spazio ho
sul disco e quanto è quello totale...
Questo perchè non so lavorare con i cluster, chi può scrivermi un esempio
per calcolare lo spazio libero avendo la dimensione di un singolo cluster e
i cluster liberi sul disco
io credo sia cluster liberi * dimensione singolo cluster
ma il risultato in bytes è sbagliato
ciao e grazie in anticipo!!!

 ha scritto nel messaggio
news:CWV86.63185$eB2.5...@news.infostrada.it...

Newsgroup: it.comp.programmare.win32
Titolo: Perchè fallisce ?

Salve,
ho creato una classe ereditando da un controllo CStatic, ed ho 
ridefinito il metodo OnPaint() per far si che in funzione di un flag 
booleano si comporti diversamente.
Il costruttore della classe CViewPort() inizializza il flag _todraw a 
false, e quindi all'inizio viene eseguito il codice corrispondente.
Dalla successiva chiamata a OnPaint() [avviene perchè cambio il valore 
del flag con tramite un pulsante] fallisce l'istruzione
if ( dc.SetPixel(1,1,0xffffff) != 0xffffff )
oppure
if ( dc.SetPixel(1,1,0x000000) != 0x000000 )
cioè entrambi i casi falliscono.
Sapreste suggerirmi il perchè ???
Pasto il codice.
void CViewPort::OnPaint()
{		
	CPaintDC dc(this); // device context for painting			
	// TODO: Add your message handler code here
	if ( _todraw == true )
	{		
		if ( dc.SetPixel(1,1,0xffffff) != 0xffffff )
			MessageBox("FALLITO!");
		_todraw = false;		
 
	}	
 
	else
	{			
		if ( dc.SetPixel(1,1,0x000000) != 0x000000 )
			MessageBox("FALLITO!");			
		_todraw = true;						
 
	}
 
	// Do not call CStatic::OnPaint() for painting messages	
 
}


Risolto.....
Quando modifico il valore del flag invoco Invalisate() e non 
SendMessage() e tutto funziona.

Newsgroup: it.comp.programmare.win32
Titolo: Informazioni wav, mp3

Salve
sto cercando informazioni sui fprmati audio in generale, in particolare
su wave e mp3.
Nessuno mi saprebbe indicare per favore dove trovare indicazioni
riguardo la struttura interna dei formati suddetti?
Rigrazio anticipatamente chiunque possa darmi indicazioni utili.
Rispondetemi pure all'E-Mail 
mk7....@iol.it
grazie
Matteo Cassetta

 wrote in message
3736B76C...@iol.it...

Grazie mille per l'aiuto.
Ciao
Matteo Cassetta

di nulla, attento che per l'mp3 mi sembra che tu debba pagare una % sui
ricavi...


Newsgroup: it.comp.programmare.win32
Titolo: Intercettare chiamate di sistema....

Dovrei fare un intercettore di chiamate di sistema, ovvero di quei processi
critici che potrebbero minare la sicurezza del S.O. Qualcuno ha un idea da
dove potrei partire?
(Sto leggendo: Inside Windows 2000)
Ciao e grazie
Ken

 wrote in
news:Bo5E8.57800$
5k4.1...@twister2.libero.it
: 

Puoi iniziare da questi articoli:
http://www.codeproject.com/system/hooksys.asp
http://www.codeproject.com/useritems/apihijack.asp
http://www.codeproject.com/dll/hookimport.asp
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)
Newsgroup: it.comp.programmare.win32
Titolo: Filtro audio real-time

Ciao a tutti,
avrei bisogno di realizzare un filtro digitale audio che agisca
in real-time, ovvero trasformi in tempo reale il suono in
ingresso da un microfono e lo restituisca al sistema.
Penso che una possibilità sia realizzare un plugin DirectX
tramite il DirectX SDK, ma mi chiedo: una volta fatto, è
possibile impostarlo per lavorare come dicevo? Come
si fa una cosa simile?
Spero possiate darmi qualche link o suggerimento, mi serve
inquadrare la situazione per capire come comportarmi.
Grazie e saluti a tutti.

"misirion" <misi...@NOSPAMfreemail.it> wrote in message
news:pNzra.21339$
3M4.6...@news1.tin.it

Prova a guardare questo sito: 
www.thedirectxfiles.com
Altrimenti altro materiale lo trovi sul sito della microsoft msdn
Bye
Lupo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.programmare.win32
Titolo: SetAbortProc

Devo usare SetAbortProc per una funzione di stampa con MSC VC++.
Richiede un puntatore alla funzione di Abort Print, ma il compilatore mi
segnala un errore di conversione da __thiscall a __stdcall ed oi non riesco
a capire dove sto sbagliando.
Qualcuno mi puň aiutare?
Grazie
DRUGO

 Qualcuno mi puņ aiutare?
Probabilmente gli stai passando un puntatore a funzione membro;
prova a dichiarare la funzione statica della classe o prova ad usare una
funzione globale.
Le procedure callback di Win non possono essere funzioni membro.
Ciao,
Gianfranco

Newsgroup: it.comp.programmare.win32
Titolo: SQL Server 7

Ciao non sono un assiduo frequentatore di questo newsgroup, di solito
partecipo a it.comp.lang.delphi, vabbè apparte i preamboli,
venendomi a trovare a sviluppare con Delphi su SQL Server 7, ho una
domandina da leccarsi le orecchie:
visto che di default, in modifica delle stored procedure, mette un font
piccolissimo del cavolo, ho notato che cliccando col tasto destro sullo
sfondo dell'editor si può settare il font desiderato ma.....
è possibile non dovere fare questa operazioneper tutte le stored procedure
che creo ma settare il font di default che verrà utilizzato all'apertura di
una nuova?
grazie e .... ciaoux!!!

 una nuova?
Guarda che è già cosi...
-- 
Luc.

Newsgroup: it.comp.programmare.win32
Titolo: Cancellare la cache di internet

Esiste un API che cancelli il contenuto di "temporary internet files" ?.
Come saprete, seppure vengano visualizzati e gestiti in gestione risorse
come normalissimi files, in realtà dal codice C/C++ non si può agire
altrattanto facilmente.



sei mai andato dentro quella cartella con un programma che non sia
gestione risorse?
lui vedrà più cartelle...
come in realtà é
ciao
cod

Newsgroup: it.comp.programmare.win32
Titolo: 'vedere' una DLL

e' possibile vedere di una DLL i nomi di funzini, con relativi parametri e
tipi?
e ovviamente, se si, come...

 wrote in message
news:8od9k6$mse$1...@nslave1.tin.it...

Newsgroup: it.comp.programmare.win32
Titolo: Cambiare nome alla Windows Class

Salve,
 dato la bassa complessita' di quello che programmo, uso al 99%
le dialog per fare tutto :D
Adesso pero' vorrei personalizzare i miei applicativi cambiando il
nome della classe della dialog principale. Avevo pensato di usare
la SetClassLong, ma non sembra ci sia la possibilita' di cambiare
il nome della classe...
Il dialog principale viene banalmente "aperto" con DialogBox e si
trova nelle risorse. Uso le Api per programmare.
Avete qualche idea a riguardo?
Grazie
Killer

:

Se usi VC++ puoi cambiarla direttamente dal dialog editor.
Fai un click destro sul titolo della finestra e seleziona proprietà, sulla 
prima tab c'è un edit box per il nome della classe.
Se l'edit è disabilitato, devi rimuovere la selezione dal check "enable 
MFC" delle properties del file di risorse (click destro su "<nome> 
resources" nella tab resources del workspace.
Altrimenti il nome della classe è uno degli attributi del comando DIALOG 
nel file rc.
Prima di richiamare la dialog devi registrare la classe, puoi utilizzare 
DefDlgProc come windowprocedure e ricordati di impostare il parametro 
cbWndExtra della WNDCLASS a DLGWINDOWEXTRA. Se devi allocare altre 
informazioni collegate a ogni istanza della dialog queste saranno 
accessibili con GetWindowLong(DWL_USER) invece che GetWindowLong
(GWL_USERDATA).
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)

 nel file rc.
Perfetto, ho fatto come mi hai consigliato e tutto funziona benissimo, senza
neanche dover modificare il codice vecchio :D
Domandina scema scema: ma esiste una qualche api o simile per sapere
il nome della classe che ho dato nelle risorse? In modo tale da poter
automatizzare la creazione della classe sanza dovergli dare il nome
"manualmente"...
Grazie ancora
Bow-wow
--
Killer, webmaster di 
http://go.to/KingdomAmiga
ICQ: 73998132
Mastro di Cerimonie del Ghouls
In pace con il re Bersy (re de che?)

 "manualmente"...
cioč?!?
se ho capito bene, basta che inserisci una risorsa stringa, la
carichi con LoadString e la associ alla WNDCLASS e poi la registri
(la wndclass)
ciao
xaero

 (la wndclass)
Mi spiego: dato che nelle risorse associo un dialog ad una classe,
esiste un api o qualcosa di simile per sapere che nome ho dato
alla classe associata? Cosi' per automatizzare un po' la creazione
del dialogo.
Non mi piace la risorsa stringa: tanto vale scrivo il nome nel codice :D



Al di là delle preferenze personali, la soluzione di xaero è, IMHO, valida.
Devi dichiarare una stringa con lo stesso ID del dialog (o con un ID che 
possa essere ricalcolato a partire da quello del dialog) e fare una 
funzione a cui passi l'id del dialog ed eventuali informazioni aggiuntive 
(icona, brush...) e che provveda a registrare la classe con il nome letto 
dalla stringa.
Ovviamente il tutto funziona se ti ricordi la doppia dichiarazione dialog-
stringa.
Se vuoi evitarlo, puoi provare a caricare il template della dialog con 
LoadResource e cercare la classe lì dentro.
Credo si possa fare, ma non ho mai provato.

Newsgroup: it.comp.programmare.win32
Titolo: Stampa da un'applicazione console

Dovrei realizzare un'applicazione console che stampa un file di testo. Il
problema e' che vorrei stampare -senza- scrivere i dati direttamente sulla
parallela, ma appoggiandomi al sistema operativo in modo che la stampa sia
indipendente dal modello di stampante, che i file vengano accodati nello
spooler e che l'utente possa essere informato dello stato della periferica.
Sapete se esiste qualche esempio in rete e dove lo posso trovare?
grazie e ciao
merlinO

Dovrei realizzare un'applicazione console che stampa un file di testo. 
Credo tu possa usare le normali funzioni messe a disposizione di
windows tipo StartDoc ,StartPage.

 windows tipo StartDoc ,StartPage.
confermo... :-)
l'unico problema e' che compilo in un ambiente un po' particolare (una
semi-emulazione unix) per cui ho qualche problema a linkare le librerie
standard, ma credo che sia una cosa risolvibile...
grazie e ciao
merlinO

_merlinO_ wrote:
 > l'unico problema e' che compilo in un ambiente un po' particolare (una
 > semi-emulazione unix) per cui ho qualche problema a linkare le librerie
 > standard, ma credo che sia una cosa risolvibile...
Facilmente risolvibile, non so se usi Cygwin oppure MinGW+MSYS, ma
entrambi i compilatori GCC forniti con essi hanno gli include file
e gli stub per linkare le dll di Windows, se non li hai o non sono
aggiornati, vai sul sito 
www.mingw.org
 e segui il link per il download
dei file aggiornati su sourceforge, troverai w32api-1.3.tar.gz
(o una versione successiva) con tutto quel che occorre
(es: per usare GDI32.dll basta linkare lo stub libgdi32.a
      ed includere il file .h corrispondente nei sorgenti).
L. Micheletto

 L. Micheletto
grazie e ciao
merlinO
Newsgroup: it.comp.programmare.win32
Titolo: Generatore numeri

Avrei necessita di generare degli identificatori numerici univochi .
Avevo pensato di scrivere un algoritmo che utilizzi la data e l'ora ma
volevo prima sapere se c'e' qualcosa gia pronto
a livello di API o utilizzando le librerie standard del C,C++ .
GRazie

 GRazie
bč, potresti semplicemente mettere un contatore a 0 e incrementarlo ogni
volta che assegni un ID; come ID assegni il valore attuale del contatore.
p.s.: scusa se non ho quotato proprio bene, eh!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 volta che assegni un ID; come ID assegni il valore attuale del contatore.
Il numero generato deve essere univoco ogni volta che si accede al sistema .
Potrei crearlo facilmente con la data e l'ora ma non ho la garanzia che
questi resti univoco in quanto teoricamente qualcuno potrebbe cambiare tali
valori .

 valori .
anche cosě puoi usare il sistema del contatore: lo incrementi ad ogni
accesso al sistema e salvi il valore attuale nel registro di sistema.


ciccio wrote:

Puoi utilizzare data/ora e darle in pasto ad
un algoritmo hash che ti renda un valore molto
lungo, diciamo 128 bit o più.
Oppure generare direttamente un numero casuale.
Altrove scrivi (se ho capito bene) di temere che qualcuno possa
settare data/ora e ottenere un identificatore identico.
Bè puoi usare l'ora fino ai millesimi di secondo: il C
ha funzioni che te li ritornano e sarebbe VERAMENTE dura
regolare l'orologio di sistema con quella precisione, a mano...
Oppure insieme alla data/ora prendi i tempi in millisecondi
che sono passati dalle pressioni degli ultimi tasti sulla
tastiera, vedi tu.

Newsgroup: it.comp.programmare.win32
Titolo: Monitorare la connessione Internet con VB6

Salve,
vorrei realizzare un programma contascatti in VB6 per monitorare i costi di
connessione, ma ho difficoltà a rilevare lo stato della connessione stessa.
Come posso  fare?
Gradirei che mi inviaste la risposta direttamente alla mia e-mail perché non
bazzico spesso nel NG e rischierei di non leggerla.
Grazie in anticipo,
Sauro
smac...@tin.it


Mi dispiace, ma siccome la risposta potrebbe essere utile ad altri, la 
posto sul ng. 
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)

 wrote in message 9e8l6c$9pq$1...@nreadB.inwind.it...

Newsgroup: it.comp.programmare.win32
Titolo: Aiuto file. rc

Ciao Alex grazie di avermi risposto premetto che io cerco di programmare per
hobby per qui sono autodidatta .Sono riuscito ad aggiungere il menu in
questo modo  digitato un file include MENU_1.h:
#define MENU_1           1
#define IDM_ESEGUI  2
#define IDM_EXIT         3
poi lo incluso nel sorgente cpp ed ho messo il nome del file nel dato menbro
wndClass.lpszMenuName = MAKEINTRESOURCE(MENU_1);
ed il menu e' apparso.
Solo che io ho fatto  questo guardando gli esempi del conpilatore che uso
(Borland visual c++5) e non ho capito molto bene cio' che ho fatto sui
manuali che ho e' spiegato molto superficialmente mi potresti dare qualche
dritta .
Ho visto che ci sono  delle funzioni API per caricare i menu  potresti
spiegarmi che differenza c'e da come ho fatto io,e ad usare le funzioni ti
ringrazio anticipatamente della risposta ciao Alex a risentici .

 spiegarmi che differenza c'e da come ho fatto io,e ad usare le funzioni
Tu hai assegnato il menu di default della classe di finestre,
per cui te lo carica il sistema.  Con le API relative ai menu,
puoi cambiare le cose 'al volo' se ne hai bisogno.  Per
'caricare', specificamente, devi avere definito i menu come
tue risorse, e allora puoi caricarli con LoadMenu, oppure
(ipotesi molto avanzata) costruire i menu-template al
volo in memoria, e caricarli con LoadMenuIndirect.
Puoi anche creare un menu vuoto con CreateMenu e
popolarlo con LoadMenuItem.
SetMenu ti permette poi di cambiare il menu di una tua
finestra (conviene anche togliere di mezzo il vecchio
con DestroyMenu).
Di API dei menu ce ne sono tante altre, ma questa
mezza dozzina e` la parte proprio fondamentale.
Alex
Newsgroup: it.comp.programmare.win32
Titolo: problema tanto scemo quanto antipatico

allora, suppongo che sia veramente una banalità ma vorrei avere la vostra
opinione perché credo che la mia soluzione sia eccessiva per un problema
così idiota... :D
in pratica, quando explorer.exe crasha dopo che io ho aggiunto un'icona
alla tray con Shell_NotifyIcon, quando Explorer viene riavviato l'icona
ovviamente non c'è più perché andrebbe rimessa; come faccio a sapere
quando devo rimetterla? :D
mia soluzione (penso assurda): creo un altro thread che attende
sull'handle del processo explorer.exe; quando Explorer crasha la
WaitForSingleObject ritorna e io sempre in quest'altro thread faccio un
polling (magari con un a piccola Sleep ogni tanto per non appesantire il
sistema) prendendo continuamente uno snapshot finché non trovo la nuova
copia di explorer.exe; quando trovo la nuova copia rimetto l'icona. oppure
continuo a rifare Shell_NotifyIcon fintanto che ritorna errore (suppongo
che ritorni errore se explorer.exe non è avviato al momento... O_o)
grazie per vostre eventuali risposte :D
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 quando devo rimetterla? :D
Cerca su MSDN "Taskbar Creation Notification".
Dovrebbe fare al caso tuo
Ciao

 allora, suppongo che sia veramente una banalità 
alla faccia della banalità ;-)
forse, ma non ho la minima idea se possa funzionare, puoi mettere un 
thread in wait sull' handle di explorer
ma anche ammesso funzioni, se è stata settata la chiave di registro c'è 
un solo processo explorer.exe che gestisce la shell, tutte le finestre 
hanno procesi a parte quindi dovresti trovare quello giusto
altrimenti metti un timer e setta lo stato a "non visibile" periodicamente
ciao

 Dovrebbe fare al caso tuo
l'ho trovato, è perfetto, ti ringrazio; sapevo che era una banalità :)
ora vediamo se riesco a farlo funzionare...


Newsgroup: it.comp.programmare.win32
Titolo: Mp3 e Avi

 Salve a tutti ,vorrei sapere come posso 
 fare a inserire allinizio del mio programma un file 
 avi tipo presentazione .
 Inoltre vorrei sapere se e' possibile utilizzare mp3 come colonna sonora di un programma (uso vc++6) 
Grazie 
 Grazie

 wrote in message
news:861bbk$5k9$1...@pluto.sm.dsi.unimi.it...

Per entrambe le cose c'e` una strada molto semplice: importare nel tuo progetto
il controllo ActiveX del Windows Media Player. Dopodiche` avrai una classe con
alcune funzioni membro molto intuitive come Play(), Pause() e cosi` via; in
piu` essa derivera` da una CWnd, quindi la potrai ridimensionare a piacimento
(qui da me se provo a nasconderla va in crash, ma si puo` sempre spostare in
una zona dello schermo invisibile).
Ovviamente e` necessario che nei PC su cui gira il tuo programma sia installato
il Windows Media Player "nuovo" (quello che legge anche gli MP3)...
--
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

  Grazie
Usa un libreria proprietaria per esempio.
Una freeware (se il programma non è commerciale) è 
http://www.fmod.com
Newsgroup: it.comp.programmare.win32
Titolo: Copiare lo schermo di Windows

Ciao a tutti,
ho un piccolo problema, e spero che qualc'uno possa aiutarmi.
Vorrei sapere se é possibile, e come fare, creare un programma che riesca a
copiare tutto (o solo un pezzo) dello sfondo di Windows (icone,
finestre,etc...) e, transferire tutto in un file (*.bmp) o qualche cosa di
simile.
Mi scuso per la cattiva speigazione, ma l'italiano non é il mio forte.
Vi ringrazio gią per il votro aiuto!!!
Matteo

Per copiare il desktop bisogna, per prima cosa, ottenere l'handle del device
context dello schermo; ci sono due modi:
1)   hdcDesktop = CreateDC(_T("DISPLAY"),NULL,NULL,NULL);
usa DeleteDC(hdcDesktop) quando non ti serve piů.
2)   hdcDesktop = GetDC(NULL);
usa ReleaseDC(NULL,hdcDesktop) quando non ti serve piů.
Adesso che hai l'HDC dello schermo puoi ottenere la risoluzione in pixel:
xres = GetDeviceCaps(hdcDesktop,HORZRES);
yres = GetDeviceCaps(hdcDesktop,VERTRES);
Adesso crea un device context in memoria compatibile con hdcDesktop:
hdcMem = CreateCompatibleDC(hdcDesktop);
e anche un bitmap compatibile (delle dimensioni del desktop o della parte di
desktop che ti interessa copiare):
hbm = CreateCompatibleBitmap(hdcDesktop,xres,yres);
Adesso seleziona il bitmap nel DC in memoria:
SelectObject(hdcMem,hbm);
Infine copia la porzione desiderata di desktop (qui lo copio tutto) dal DC
del desktop al DC in memoria:
BitBlt(hdcMem,0,0,xres,yres,hdcDesktop,0,0,SRCCOPY);
ora l'oggetto bitmap (il cui handle č hbm) contiene l'immagine del desktop.
Puoi rilasciare o eliminare (a seconda di come l'hai ottenuto) il DC dello
schermo.
Purtroppo non ti so dire niente di certo per quanto riguarda la creazione di
un file bmp perché non l'ho mai fatto.
Stefano.

Stefano,
ti ringrazio per aver perso del tempo a rispondere al mio problema.
In più la tua spiegazione é perfetta ... sei un grande!!!
Ancora grazie mille!!!
Bye Bye
Matteo F.

 un file bmp perché non l'ho mai fatto.
Tutt'ora che hai l'HBITMAP, puoi usare GetDIBits() per estrarre il
bitmap e salvarlo su file (e` sufficiente mettere prima una struttura
BITMAPFILEHEADER seguita da una struttura BITMAPINFO con un adeguato
numero di elementi della palette).
Nota pero` (almeno, a me e` successo!) che GetDIBits() a volte
restituisce i bit con le scanline allineate a due bytes anziche` a
quattro, come richiede il formato bitmap. Se capita questo, e`
necessario aggiungere a mano i due byte di pad alla fine di ogni
scanline.
... Ambition is the last refuge of the failure.
---
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

> Ottima spiegazione.
Grazie!
Ho trovato per caso in MSDN un esempio di salvataggio di bitmap:
SDK Documentation\Platform SDK\Graphics and Multimedia
Services\GDI\Bitmaps\Using Bitmaps\Storing an Image
fa praticamente quello che dici tu; questo può interessare soprattutto a
Matteo.
Stefano.
Newsgroup: it.comp.programmare.win32
Titolo: Modificare l'interfaccia standard

Ciao a tutti,
vorrei sapere qual è il metodo più indicato per modificare (nel proprio
programma) l'interfaccia di windows, ossia: barra del titolo, pulsantini,
barre di scorrimento, menù ecc. Sostanzialmente le voglio personalizzare
graficamente, come fanno molti giochi/programmi, e mi chiedevo se devo
ricreare questi "oggetti" da zero, o esiste una tecnica più o meno standard
per ottenere questo risultato.
(Se può essere utile, utilizzo C++ Builder).
--
Ciao, AntoGal
*************************************************
Gestione punti vendita (casse e pos NCR)
 
www.powerretail.it
-------------------------------------------------------------
per scaricare un gioco di DAMA ITALIANA
http://volftp.mondadori.com/italiani/galletta/
*************************************************

 (Se può essere utile, utilizzo C++ Builder).
Può decisamente essere utile :) Se usi i componenti della VCL, creati le 
tue classi di controlli derivando le varie classi TCustomQualcosa 
(TCustomEditBox, TCustomListBox, eccetera), e per ognuno di questi fai 
l'override del metodo WndProc, e nella tua implementazione di questo 
metodo gestisci l'aspetto del controllo come più ti garba. E' una 
tecnica molto nota, chiamata subclassing. Per sapere che tipo di dati il 
sistema passa alla WndProc guarda la sezione dell'SDK Microsoft 
riguardante finestre e messaggi (non posso spiegartela tutta, è troppo 
estesa). Non posso aiutarti direttamente perchè io saprei farlo in 
Delphi ma non in C++, ma se vuoi posso postarti del codice d'esempio, 
non ti dovrebbe essere troppo difficile tradurre il tutto in C++

 non ti dovrebbe essere troppo difficile tradurre il tutto in C++
Sei stato chiarissimo, ed un po' di codice di esempio mi farebbe risparmiare
un bel po' di tempo con SDK e API varie...
Manda tutto quello che può essere utile quà: 
ant...@sitocomune.com
Grazie 1000.

Newsgroup: it.comp.programmare.win32
Titolo: VidCap per catturare da webcam

Hello All!
Sto scrivendo un programma per trasmettere uno stream video da webcam 
(o altro hardware di acquisizione) via tcp/ip, usando la classe VidCap 
in VC6.
In pratica io cerco tutti i driver di hardware installato, come da 
esempio Video Capture presente in MSDN, dopodiche' creo una finestra di 
acquisizione all'interno della hWnd principale dell'applicazione con
vidw = capCreateCaptureWindow(NULL, WS_CHILD | WS_VISIBLE,
        228,110,160,120,m_hWnd,1);
Dopo aver collegato la finestra con il driver prescelto (in questo caso 
una vecchia quickcam b/n), se attivo il preview con capPreview(vidw, 
true) ottengo il video nella finestrina.
Se attivo la cattura in streaming, ottengo il file CAPTURE.AVI con la 
sequenza.
Il problema e' che io voglio accedere al buffer che contiene il frame 
SENZA dover fare giri strani tipo GetDIBits della zona della finestrina 
e non riesco a capire come fare.
Credo che la strada sia quella di settare una funzione callback 
chiamata ogni volta che c'e' un frame pronto. Ad esempio, con 
capSetCallbackOnFrame(vidw,CallbackOnFrame) ottengo una chiamata a 
CallBackOnFrame ogni volta che c'e' un frame DI PREVIEW (ossia senza 
scrivere niente da nessuna parte). Il problema e' che non so che 
parametri mi vengono passati. Ho provato a definirla cosi':
LRESULT FAR CallbackOnFrame(HWND hWnd, int nID, LPSTR lpStatusText)
{
return(1);
}
prendendo spunto dall'esempio, ma quando esce ottengo un unhandled 
exception.
In pratica: qualcuno mi sa dire come intercettare il buffer 
digitalizzato?
Inoltre, mi sembra di capire che il preview non implementa 
compressione, e a me la compressione farebbe comodo (visto che devo 
trasmettere il frame via tcp/ip), mentre lo streaming vero e proprio lo 
fa, solo che cosi' mi scrive anche i dati nel file .AVI...
C'e' qualcuno che ha gia' affrontato il problema e mi puo' dare una 
dritta?
Ciao e grazie!
Alessandro

 exception.
Non conosco per niente la libreria che stai usando, ma cosi` a occhio se
si tratta di una callback dovrebbe essere dichiarata come tale: "FAR" in
Win32 non da` nessun effetto. Prova invece LRESULT CALLBACK.
Per il resto non ti so dire. :)
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/
Newsgroup: it.comp.programmare.win32
Titolo: Enigma

Solo per veri appassionati!!!
Ricerco disperatamente l'algoritmo di ENIGMA o qualsiasi cosa che mi
permetta di risalirci.
Chi non conosce ENIGMA è pregato di non postare inutilmente chiedendo info
NON VOGLIO SITI SU ENIGMA VOGLIO L'ALGORITMO!!!!!

 inutilmente chiedendo info
E tu sei pregato di postare su newsgroup piu` pertinenti, ad esempio
alt.sci.math.* o it.scienza.matematica.
P.S. Comunque, dato che si tratta di un algoritmo noto da "qualche" anno,
penso che avresti successo anche con un qualsiasi motore di ricerca con
chiave +enigma +crypto +algorithm.
--
Bye! Lorenzo Lutti
http://antani.virtualave.net/



mmm, da quanto mi ricordo se cerchi "enigma applett" su Google, ti
dovrebbe saltarwe fuori la sorgente di una applett java con relativo
algoritmo.
ecco:
http://www.ugrad.cs.jhu.edu/~russell/classes/enigma/
Vai e godi...
morpheus
morp...@4ds.it
Newsgroup: it.comp.programmare.win32
Titolo: ¨Creare un file BMP (o immagine)

Ciao a tutti,
ho ancora un problema (lo so, sono un rompi p...).
Stefano mi ha aiutato (ancora grazie), o meglio, mi ha spiegato come fare a
creare un'oggetto bitmap che contiene l'immagine del desktop di Windows. Fin
quì tutto bene, ma il mio problema é il seguente: come faccio a creare un
file *.BMP dall'oggetto bitmap??? Un'altra alternativa, sarebbe quella di
prendere l'oggetto bitmap che contiene l'immagine del desktop di Windows
(solo una parte) e affigerla nella finestra della mia applicazione. Sapete
come fare???
Grazie mille per la vostra attenzione
Bye
Matteo F.

 come fare???
Beh, questo e` piu` semplice. Diciamo che tu abbia il tuo HBITMAP bell'e
pronto, e che hwnd sia la tua finestra. Allora basta che intercetti il
messaggio WM_PAINT e scriva:
...
case WM_PAINT:
{
   PAINTSTRUCT ps;
   HDC dc = BeginPaint( hwnd, &ps);
   HDC memdc = CreateCompatibleDC( dc);
   HBITMAP oldbmp = SelectObject( memdc, hBitmap);
   BitBlt( dc, 0, 0, sizex, sizey, memdc, 0, 0, SRCCOPY);
   SelectObject( memdc, oldbmp);
   EndPaint( &ps);
}
break;
...
sizex e sizey sono le dimensioni del bitmap. Le puoi trovare con
GetObject().
... I didn't know it was impossible when I did it.
---
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

 come fare???
Partendo da dove ci siamo fermati lo scorso post:
case WM_PAINT:
  hdc = BeginPaint(hWnd,&ps);
  BitBlt(hdc,0,0,x,y,hdcMem,0,0,SRCCOPY);
  EndPaint(hWnd,&ps);
return 0;
hdcMem è l'handle del DC in memoria che avevamo creato (ed entro il quale
avevamo copiato il contenuto del desktop). Se avessi voluto disegnare nella
finestra solo una parte del desktop, ad esempio il rettangolo centrale con
dimensioni 200x100 avrei dovuto modificare i parametri di BitBlt come segue:
case WM_PAINT:
  hdc = BeginPaint(hWnd,&ps);
  BitBlt(hdc,0,0,200,100,hdcMem,(xres - 200) / 2,(yres - 100) / 2,SRCCOPY);
  EndPaint(hWnd,&ps);
return 0;
le dimensioni del rettangolo che viene copiato da hdcMem sono desunte dal 4°
e 5° parametro, quindi è necessario solo calcolare la posizione dell'angolo
superiore sinistro (xres e yres erano stati ricavati nel precedente post).
In alternativa avresti potuto copiare una sola parte del desktop in hdcMem e
copiare poi sempre tutto hdcMem nella finestra del tuo programma (per fare
questo devi modificare i parametri della prima BitBlt, quella del precedente
post).
Un'ulteriore alternativa potrebbe essere quella di evitare di usare un DC in
memoria (che fa una "fotografia" statica del desktop) e copiare direttamente
usando hdcDesktop (semplicemente sostituendo hdcMem con hdcDesktop in
BitBlt); in questo modo, ad ogni repaint della tua finestra, l'immagine
disegnata rifletterà le modifiche subite nel frattempo dal desktop (in
questo caso non serve più creare né il DC in memoria, né l'oggetto bitmap).
Stefano.
Newsgroup: it.comp.programmare.win32
Titolo: Comunicazione tra C++ e win98

Salve a Tutti ho la seguente questione da porvi , se ho una finestra
creata con C++ e' possibile creare una linea di codice che inibisca
l'attivazione in win98 dello screen saver comunicando col sistema
operativo?
Grazie per l'attenzione
Saluti 
Felix 


Devi usare la SystemParametersInfo passando SPI_SETSCREENSAVEACTIVE come
primo parametro parametro e FALSE come secondo (TRUE per riattivarlo).
BOOL SystemParametersInfo(
  UINT uiAction, // system parameter to query or set
  UINT uiParam,  // depends on action to be taken
  PVOID pvParam, // depends on action to be taken
  UINT fWinIni   // user profile update flag
);
Luca

 ha scritto nel messaggio
news:3e44625c...@powernews.libero.it...


#include <windows.h>
----
Pela


Quella che hai tu e' una guidfa al linguaggio C++, quello che ti occorre e'
invece una guida alle API che windows mette a disposizione per scrivere i
programmi che dovranno girare al suo interno (a prescindere dal lingiaggio
usato). Io ti consiglio "Programming Windows 98" di Petzold (mi pare la 5
edizione, quella successiva usa il C#...) e ti consiglio anche di scaricare
(o ordinare il CD) il Platform SDK dal sito della Microsoft, contiene la
descrizione di tutte le funzioni i messaggi e le strutture dati usati da
Windows (quelli documentati, per lo meno), e' grossino ma ne vale la pena.
Luca