drop windows 10
14/03/2019
0
Olá bom dia..
Estou aqui de novo precisando de ajuda...
Estou com o seguinte problema:
Com este código abaixo, Me possibilita arrastar do Explorer e adicionar em um ListBox.
Em delphi 10.3
uses
Winapi.ShellApi;
type
TMyform = class(TForm)
...
protected
procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES;
...
end;
procedure TMyform.WMDropFiles(var Message: TWMDropFiles);
var
numfiles: integer;
buf: array[0..MAX_PATH] of char;
begin
numfiles := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0);
if numfiles>0 then begin
Application.BringToFront;
// only open 1 file at a time
// - you could open more than 1 file
// at a time by looping thru numfiles
DragQueryFile(Message.Drop,0,buf,MAX_PATH);
{ call some method which opens the file
- buf gets automatically
typecast to a string if necessary }
ListBox1.Items.Add(buf);
DragFinish(Message.Drop); // clean up
end;
end;
no formCreatte
DragAcceptFiles(Handle, true);
e no formDestroy
DragAcceptFiles(Handle, false);
o problema se eu executar o aplicar como administrador, não adiciona no listbox, isso só acontece no windows 10 já no windows 7 ultimate funcionar tudo normal.
Será alguém aqui pode da uma ideia do que pode ser ?!
Obrigado pela atenção...
Estou aqui de novo precisando de ajuda...
Estou com o seguinte problema:
Com este código abaixo, Me possibilita arrastar do Explorer e adicionar em um ListBox.
Em delphi 10.3
uses
Winapi.ShellApi;
type
TMyform = class(TForm)
...
protected
procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES;
...
end;
procedure TMyform.WMDropFiles(var Message: TWMDropFiles);
var
numfiles: integer;
buf: array[0..MAX_PATH] of char;
begin
numfiles := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0);
if numfiles>0 then begin
Application.BringToFront;
// only open 1 file at a time
// - you could open more than 1 file
// at a time by looping thru numfiles
DragQueryFile(Message.Drop,0,buf,MAX_PATH);
{ call some method which opens the file
- buf gets automatically
typecast to a string if necessary }
ListBox1.Items.Add(buf);
DragFinish(Message.Drop); // clean up
end;
end;
no formCreatte
DragAcceptFiles(Handle, true);
e no formDestroy
DragAcceptFiles(Handle, false);
o problema se eu executar o aplicar como administrador, não adiciona no listbox, isso só acontece no windows 10 já no windows 7 ultimate funcionar tudo normal.
Será alguém aqui pode da uma ideia do que pode ser ?!
Obrigado pela atenção...
Cgm2k7 2013
Curtir tópico
+ 0
Responder
Posts
22/03/2019
Hélio Devmedia
Olá Amigo,
Você precisa criar um arquivo de manifesto (XML) no formato necessário e compilar junto com a aplicação
Arquivo Mínimo
Arquivo mais completo (opcional)
se quiser mais detalhes sobre o xml acesse o site da microsoft:
https://docs.microsoft.com/en-us/windows/desktop/sbscs/manifests
Depois vá em Project -> Options, e dentro da sessão Application você encontrará as configurações de manifesto. Alí você pode selecionar o manifesto personalizado.
Espero ter ajudado, um forte abraço e fique com Deus.
Você precisa criar um arquivo de manifesto (XML) no formato necessário e compilar junto com a aplicação
Arquivo Mínimo
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Arquivo mais completo (opcional)
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0"> <assemblyIdentity version="1.1.1.1"> processorArchitecture="*" name="GeoMonitor" type="win32" /> <description>elevate execution level</description> <dependency> <dependentAssembly> <assemblyIdentity> type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> <trustinfo xmlns="urn:schemas-microsoft-com:asm.v2"><security> <requestedPrivileges> <requestedExecutionlevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges> </security> </trustinfo> </assembly>
se quiser mais detalhes sobre o xml acesse o site da microsoft:
https://docs.microsoft.com/en-us/windows/desktop/sbscs/manifests
Depois vá em Project -> Options, e dentro da sessão Application você encontrará as configurações de manifesto. Alí você pode selecionar o manifesto personalizado.
Espero ter ajudado, um forte abraço e fique com Deus.
Responder
Clique aqui para fazer login e interagir na Comunidade :)