|
|
|
![]() |
|
Strumenti |
![]() |
#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? ![]() |
![]() |
![]() |
![]() |
#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%) |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
Quote:
|
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#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? |
|
![]() |
![]() |
![]() |
#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%) |
|
![]() |
![]() |
![]() |
#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)?! ![]() |
|
![]() |
![]() |
![]() |
#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 |
|
![]() |
![]() |
![]() |
#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?????? ![]() |
![]() |
![]() |
![]() |
#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%) |
|
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#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! ![]() |
|
![]() |
![]() |
![]() |
#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%) |
||
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
Quote:
![]() Altra domanda... ![]() Ultima modifica di TonyManero : 11-01-2007 alle 14:27. |
|
![]() |
![]() |
![]() |
#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 11:00. |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#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! ![]() |
|
![]() |
![]() |
![]() |
#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%) |
|
![]() |
![]() |
![]() |
#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? ![]() |
![]() |
![]() |
![]() |
#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: 11:24.