Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Come eliminare il bordo a finestre di processi esterni in Visual Basic .NET
Forum - C# / VB.NET - Come eliminare il bordo a finestre di processi esterni in Visual Basic .NET

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
DelchelTech (Normal User)
Newbie


Messaggi: 8
Iscritto: 15/06/2015

Segnala al moderatore
Postato alle 19:29
Lunedì, 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
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:18
Lunedì, 15/06/2015
Dipende da quale "processo esterno" parli ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
DelchelTech (Normal User)
Newbie


Messaggi: 8
Iscritto: 15/06/2015

Segnala al moderatore
Postato alle 23:27
Lunedì, 15/06/2015
Un processo che avvio io prima, un programma avviato tramite codice.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 8:45
Martedì, 16/06/2015
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 ...
PM Quote
Avatar
DelchelTech (Normal User)
Newbie


Messaggi: 8
Iscritto: 15/06/2015

Segnala al moderatore
Postato alle 12:47
Martedì, 16/06/2015
Ok, è il processo TextMaker di SoftMaker FreeOffice

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:28
Giovedì, 18/06/2015
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#

  1. [DllImport("user32.dll", SetLastError = true)]
  2. internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
  3.  
  4. MoveWindow(ApplicationHandle, 100, 100, 500, 500, True);




VB.nET
Codice sorgente - presumibilmente VB.NET

  1. <DllImport("user32.dll", SetLastError := True)> _
  2. Friend Shared Function MoveWindow(hWnd As IntPtr, X As Integer, Y As Integer, nWidth As Integer, nHeight As Integer, bRepaint As Boolean) As Boolean
  3. End Function
  4.  
  5. MoveWindow(ApplicationHandle, 100, 100, 500, 500, True)



per trovare il puntatore usa la lib oppure la funzione delle winapi FindWindow





PM Quote
Avatar
DelchelTech (Normal User)
Newbie


Messaggi: 8
Iscritto: 15/06/2015

Segnala al moderatore
Postato alle 12:43
Venerdì, 19/06/2015
Grazie, dopo provo.

PM Quote
Avatar
DelchelTech (Normal User)
Newbie


Messaggi: 8
Iscritto: 15/06/2015

Segnala al moderatore
Postato alle 13:15
Venerdì, 19/06/2015
Non è quello che cercavo, mi serve qualcosa per eliminare il bordo e la barra del titolo dalle finestre.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:45
Venerdì, 19/06/2015
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 ...
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo