DelchelTech (Normal User)
Newbie
Messaggi: 8
Iscritto: 15/06/2015
|
Ciao, ho un problema con un mio programma in Visual Basic NET, dovrei eliminare il bordo e modificare la grandezza ad una finestra di un processo esterno, qualcuno può aiutarmi?
Ultima modifica effettuata da DelchelTech il 15/06/2015 alle 19:31 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6381
Iscritto: 03/01/2010
|
Dipende da quale "processo esterno" parli ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
DelchelTech (Normal User)
Newbie
Messaggi: 8
Iscritto: 15/06/2015
|
Un processo che avvio io prima, un programma avviato tramite codice.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6381
Iscritto: 03/01/2010
|
Questo l'avevo capito... Ma quale programma esattamente? Perché dipende molto dal tipo di processo in quanto potrebbe non essere possibile se il programma non ridisegna la finestra come si vuole.
Ultima modifica effettuata da nessuno il 16/06/2015 alle 8:46
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
DelchelTech (Normal User)
Newbie
Messaggi: 8
Iscritto: 15/06/2015
|
Ok, è il processo TextMaker di SoftMaker FreeOffice
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Servono le WinApi.
1) Devi recuperare l'ID del processo.
2) Dal processo ricavi l'Handle ( hwnd )
3) Usa il PInvoke per modificare gli attributi
La libreria di sistema da usare se non ricordo male è user32.dll
puoi trovare i vari riferimenti qui
http://www.pinvoke.net/
se ti serve un ulteriore aiuto puoi porvare la mia libreria
http://www.pierotofy.it/pages/projects/project.php?id=518
Ci sono diversi esempi su come utilizzare alcune funzioni
e volendo ne puoi implementare altre. (Il sorgente è in C# dovrai convertirlo in vb.net )
in particolare per la tua richiesta dovrebbe essere questo il codice
C#
Codice sorgente - presumibilmente C# |
[DllImport("user32.dll", SetLastError = true)] internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); MoveWindow(ApplicationHandle, 100, 100, 500, 500, True);
|
VB.nET
Codice sorgente - presumibilmente VB.NET |
<DllImport("user32.dll", SetLastError := True)> _ Friend Shared Function MoveWindow(hWnd As IntPtr, X As Integer, Y As Integer, nWidth As Integer, nHeight As Integer, bRepaint As Boolean) As Boolean End Function MoveWindow(ApplicationHandle, 100, 100, 500, 500, True)
|
per trovare il puntatore usa la lib oppure la funzione delle winapi FindWindow
|
|
DelchelTech (Normal User)
Newbie
Messaggi: 8
Iscritto: 15/06/2015
|
Grazie, dopo provo.
|
|
DelchelTech (Normal User)
Newbie
Messaggi: 8
Iscritto: 15/06/2015
|
Non è quello che cercavo, mi serve qualcosa per eliminare il bordo e la barra del titolo dalle finestre.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6381
Iscritto: 03/01/2010
|
Per spostare la finestra puoi farlo tentando, come suggerito, di individuare l'handle e inviando il messaggio WM_MOVE.
Invece, alterare parti del disegno della finestra mi sembra molto improbabile che tu riesca a farlo.
Il disegno dei bordi dipende dal programma stesso, dalla parte del suo codice che effettua il ridisegno. Non puoi modificare questo comportamento dall'esterno.
Fra l'altro, ho dato un'occhiata al programma di cui parli ma non capisco di quali bordi parli.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|