Sign in to follow this  
Followers 0
hiho

FileInstall fails

27 posts in this topic

#1 ·  Posted (edited)

Well.. as the title says, I can't get FileInstall to "install" (when compiled) or copy (when running the script) the file. I tried a lot of combinations but none of them work. I even used Unlocker to "unlock" the files/folders from explorer.exe and then restarted the computer to try again but still couldn't get the script working.

$p2 = "E:\Programs\Counter Strike 1.6 Lite\cstrike"
If FileExists("E:\Programs\New folder\cstrike\resource\background\800_1_a_loading.tga") Then
    FileInstall("E:\Programs\New folder\cstrike\resource\background\800_1_a_loading.tga", $p2 & "\resource\background\800_1_a_loading.tga", 1)
    if @error Then MsgBox(0, "", @error)
Else
    MsgBox(0, "", "file not found")
    exit
EndIf
Sleep(3000) ; some delay for the file to be copied althought it's 193 kb...
if FileExists($p2 & "\resource\background\800_1_a_loading.tga") Then
    MsgBox(0, "", "file found")
Else
    MsgBox(0, "", "file not found - 2")
EndIf

The only message box that shows is the last one - "file not found 2" and the file isn't there. Hope someone can give me a hint.

Running latest AutoIT version /3.3.8.1/ + Scite version 3.3.0 on W7 Ultimate SP1 (all updates are installed).

Edited by hiho

Share this post


Link to post
Share on other sites



Hi, hiho. What application is this for? There may be an easier way to do it what you're trying to accomplish.


√-1 2^3 ∑ π, and it was delicious!

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

It's for my personal use. And yes, I know why you are asking - it's not game automating since this is copying files, not starting / manupilating the game, right?

Edited by hiho

Share this post


Link to post
Share on other sites

We'll let a Mod weigh in, but I would say that your best bet is a full explanation of what you're trying to do so they can see it is not for automation. If they're fine with it, we're fine helping out with the FileInstall piece. :)


√-1 2^3 ∑ π, and it was delicious!

Share this post


Link to post
Share on other sites

Your program only fileinstalls the file if it already exists.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

You can just use FileCopy in this case since you are checking to see if the original file exists. There is no reason to FileInstall unless you are actually going to compile and move your script to another machine. 

Share this post


Link to post
Share on other sites

hiho,

As long as the script remains limited in scope to file copying (or rather why it is not copying ;)) I am happy to leave it open. :)

And I think BrewManNH has the answer. ;)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

@Melba23, well, yes. I ain't searching support for game manupilating.

@BrewManNH, the file is there. If it wasn't then I would get a "file not found messabox".

@0xdefea, yes I know. :)

Share this post


Link to post
Share on other sites

Does this directory already exist?

$p2 & "\resource\background\"

Share this post


Link to post
Share on other sites

Yes. The folder is there. It is empty.
One thing I should have noted is that changing the second parameters of FileInstall() to "$p2 & "resourcebackground"" copies the file as "background".

Share this post


Link to post
Share on other sites

Yes. The folder is there. It is empty.

One thing I should have noted is that changing the second parameters of FileInstall() to "$p2 & "resourcebackground"" copies the file as "background".

Are you sure it does create a file that has the same name as an existing empty directory?


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

Yes. I can make a video if you want.

Edit : And the filesize of the new file - "background" - is as the original file.

Edit 2 : The location of the file is "$p2 & "resourcebackground" = "E:ProgramsCounter Strike 1.6 Litecstrikeresourcebackground", so the file is "E:ProgramsCounter Strike 1.6 Litecstrikeresourcebackgroundbackground".

Edited by hiho

Share this post


Link to post
Share on other sites

This just copies using the original filename, it does not create a file the same name as an existing directory. The result of this function is that "test.txt" is copied into "%temp%__atest.txt"

If FileExists("C:\users\tester\desktop\test.txt") Then
    If Not FileExists(@TempDir & "\__a") Then DirCreate(@TempDir & "\__a")
    If (FileInstall("C:\users\tester\desktop\test.txt", @TempDir & "\__a\") = 0) Then ConsoleWrite("FileInstall failed" & @CRLF)
EndIf

Share this post


Link to post
Share on other sites

Yes. I can make a video if you want.

Edit : And the filesize of the new file - "background" - is as the original file.

Don't need a Movie for this ;)

So you delete the file "background" first before creating the direcory "background" and trying to copy the file into it?


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Sorry, Jos, didn't understand the question. The "cstrikeresourcebackground" is made from the game installer. It has a few files like 800_1_a_loading.tga

but with different names. In my main project this is the line I use

FileInstall("E:\Programs\New folder\cstrike\resource\background\800_1_a_loading.tga", $p2 & "\resource\background\800_1_a_loading.tga", 1)

where $p2 is a pameter (I used FileSelectFolder) and since the files weren't replacing, I deleted the content of E:ProgramsCounter Strike 1.6 Litecstrikeresource and started trying with another script (it's in the first post).

Share this post


Link to post
Share on other sites

 

I deleted the content of E:ProgramsCounter Strike 1.6 Litecstrikeresource

 

You would still then need to create the "background" directory again before FileInstall will succeed.

Share this post


Link to post
Share on other sites

As I told you in my 3rd post, the folder exists.

Share this post


Link to post
Share on other sites

#18 ·  Posted (edited)

Let me ask something before trying to explain this any further:

Why do you have this test before the fileinstall?:

If FileExists("E:\Programs\New folder\cstrike\resource\background\800_1_a_loading.tga") Then
Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

#19 ·  Posted (edited)

To make sure AutoIT knows the file is there although running

FileInstall("E:\Programs\New folder\cstrike\resource\background\800_1_a_loading.tga", $p2 & "\resource\background\800_1_a_loading.tga", 1)

doesn't copy the file.

Edited by hiho

Share this post


Link to post
Share on other sites

#20 ·  Posted (edited)

To make sure AutoIT knows the file is there although running

FileInstall("E:\Programs\New folder\cstrike\resource\background\800_1_a_loading.tga", $p2 & "\resource\background\800_1_a_loading.tga", 1)

doesn't copy the file.

You clearly do not understand the way Fileinstall works:The fileinstall first parameter is ONLY used at Compilation time to include the Source file into the Program Resources, NOT at run time so putting in a test like you have done doe not make sense.

When doing a RUN (Executing your script with autoit3.exe), the script will use FileCopy() to do the actual execution of FIleInstall.

Try using Filecopy for testing.

 

Yes. The folder is there. It is empty.

One thing I should have noted is that changing the second parameters of FileInstall() to "$p2 & "resourcebackground"" copies the file as "background".

 

This doesn't make much sense when you are actually using the script posted in the first post and changing the second parameter.

So are you actually using that script?

Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0