| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  11-12-2006, 15:55 | #1 | 
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | 
				
				Aprire finestra in un determinato punto...
			 
		Salve a tutti! C'è un modo per aprire una finestra (di solito uso ShellExecute) in una posizione ben definita del desktop? Per esempio al pixel 100 - 100 ? In particolare ho un desktop esteso su due moitor e volevo fare un eseguibile che aprisse una finestra di explorer sul primo ed una sul secondo!!! Idee?   | 
|   |   | 
|  11-12-2006, 18:12 | #2 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
  ). A parte barbatrucchi vari (es. lanciare il programma e andare a cercare le sue finestre e posizionarle), si potrebbe fare se fosse l'applicazione ad accettare dei parametri che permettano di indicare dove posizionare la/e finestre. Tralasciando ShellExecute, si potrebbe usare CreateProcess. La struttura STARTUPINFO ha i campi dwX/dwY/dwXSize/dwYSize, però si presuppone che l'applicazione faccia poi una GetStartupInfo per ottenere quei dati (e potrebbe anche non farlo). 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  12-12-2006, 08:10 | #3 | |
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | Quote: 
 | |
|   |   | 
|  12-12-2006, 09:35 | #4 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  12-12-2006, 11:08 | #5 | |
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | Quote: 
 L'unica cosa è che a vedere in giro sembra che se ci sono più finestre di explorer aperte non sia proprio banalissimo trovare l'Handle a quella giusta! Consigli? | |
|   |   | 
|  12-12-2006, 11:21 | #6 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Poi se sono aperte su un percorso fisico, sul titolo della finestra c'è il path completo (dipende però da come è configurato nelle "Opzioni cartella"). 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  03-01-2007, 08:23 | #7 | |
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | Quote: 
 Tutto l'ambaradan di cui sopra mi serve per aprire su un PC remoto una finestra internet... per la precisione il PC remoto gestisce 4 monitor. Comunque per adesso è tutto ok.... creo la finestra di explorer sul PC remoto nel punto desiderato del desktop "espanso". Ora però è un problema.... il sito che deve essere visualizzato è un sito con frames. Quaindi a quasiasi pagina accedo l'indirizzo che vedo è sempre www.pippo.it. Come facci ad indicargli di aprire una particolare pagina del sito (non un singolo frame)?!   | |
|   |   | 
|  03-01-2007, 09:07 | #8 | |
| Senior Member Iscritto dal: May 2006 Città: Wursteland 
					Messaggi: 1749
				 | Quote: 
  Codice: shelltool -Wp <x> <y>   
				__________________ Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve | |
|   |   | 
|  03-01-2007, 16:20 | #9 | 
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | 
		Ultima domanda e poi smetto di scroccare... Ma come diavolo si può chiudere una finestra di internet explorer di cui sò il nome??????   | 
|   |   | 
|  03-01-2007, 16:33 | #10 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Prova con FindWindow (per trovare l'handle) e poi invia il messaggio WM_CLOSE. 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  03-01-2007, 16:49 | #11 | 
| Senior Member Iscritto dal: May 2006 Città: Wursteland 
					Messaggi: 1749
				 | 
		arivince UNIX   Codice: kill -9 `ps -edaf | grep -w <nome> | grep -v grep | awk '{print $2}'`  
				__________________ Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve | 
|   |   | 
|  11-01-2007, 08:58 | #12 | |
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | Quote: 
 Codice:  
<SCRIPT language="JavaScript" type="text/javascript">
<!--
weblink=window.open("http://www.google.it","NomePagina","width=640,height=480,left=200,top=200");
//  -->
</SCRIPT>Ho molta difficoltà a trovare esempi di utilizzo dellla FindWindow... sai dove posso cercarli? Grazie!   | |
|   |   | 
|  11-01-2007, 09:28 | #13 | ||
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Non è quindi il titolo della finestra. Se apri google, il titolo su IE sarà "Google - Microsoft Internet Explorer". Quote: 
 Codice: HWND hWndIE;
hWndIE = FindWindow ("IEFrame", "Google - Microsoft Internet Explorer");
if (hWndIE != NULL)
{
    ....
}
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | ||
|   |   | 
|  11-01-2007, 14:43 | #14 | |
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | Quote: 
  Altra domanda...  Ma creando la finestra con la CreateProcess mi ritorna l'Handle? Qual'è il modo più semplice di creare una finestra di internet explorer avendone l'handler e non dovendolo ricercare in seguito? Ultima modifica di TonyManero : 11-01-2007 alle 15:27. | |
|   |   | 
|  24-01-2007, 10:53 | #15 | |
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | Quote: 
 Pensavo di trovare l'handle di una e vedere se era nella posizione che mi interessava... e così via. Il problema è che FindWindow mi ritorna l'handle sempre della stessa... che sarebbe quella delle due che è in primo piano rispetto all'altra. Qaundo vedo che non è quella che mi interessa ci vorrebbe un modo per toglierla dal top-level... in modo che rilanciando la mia funzione vado a beccare un'altra finestra e così via finchè non trovo la mia... Ultima modifica di TonyManero : 24-01-2007 alle 12:00. | |
|   |   | 
|  24-01-2007, 14:12 | #16 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  24-01-2007, 14:50 | #17 | |
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | Quote: 
     E' possibile che per risolvere 'sto programma ogni API nuova con cui mi trovo a che fare se ne porta dietro un'altra???    La EnumWindows l'ho vista ma mi riporta ad una misteriosa funzione "callback" di cui non capisco la funzione... mi dai un aiuto o mi posti un esempio semplice? Ti ringrazio infinitamente!   | |
|   |   | 
|  24-01-2007, 15:00 | #18 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Codice: BOOL CALLBACK ProcEnumeraFinestre (HWND hWnd, LPARAM lParam)
{
    CHAR szClasse[128];
    if (GetClassName (hWnd, szClasse, sizeof (szClasse)) > 0)
    {
        if (lstrcmp (szClasse, "IEFrame") == 0)
        {
            // ... hai trovato una finestra di IE ...
        }
    }
    return TRUE;
}
...
EnumWindows (ProcEnumeraFinestre, 0L);
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  24-01-2007, 16:04 | #19 | 
| Senior Member Iscritto dal: Apr 2000 Città: Versilia 
					Messaggi: 569
				 | 
		Capperi... mi dice: [C++Error] Unit1.cpp(295): E2034 Cannot convert 'bool(__stdcall*)(void*,long)' to 'int(__stdcall*)()'. [C++Error] Unit1.cpp(295): E2343 Type mismatch in parameter 'IpEnumFunc' in call to '__stdcall EnumWindows(int(__stdcall*)(),long)'. Ti viene in mente cosa possa essere?   | 
|   |   | 
|  24-01-2007, 16:26 | #20 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 00:52.









 
		 
		 
		 
		








 
  
 



 
                        
                        










