Sharing script to create slideshow
Thanks for David Torno I have been able to hack together a basic slideshow script. There's still a lot more that could be done with it, but I wanted to share it so that others may be able to benefit.
Essentially, it asks for a folder location where your photos are stored, reads them in, creates a comp for each photo, resizing them and creating a border around them, adds all of the photo comps to a master comp, then sequences them, adds in some fades and slightly random placement.
Like I said, fairly basic. But quite the learning experience.
Yes, there are templates available for slideshows, but none that I found that I could just add photos to and say "Display these with a border and random placement on the screen, fading in and out." All the ones I found required replacing placeholders, or some sort of manual changes to each photo. And they were generally limited to 10 to 30 images. This script, theoretically, should be able to handle hundreds of images easily.
Next steps are to add movement to the photos (sliding across the screen as they fade in and out) and add a music track from a file (or files) selected during photo import.
Enjoy!
And thanks again to David Torno, plus anyone else who's script examples I may have borrowed ideas from.
Dion
createSlidehow v 1.0
Developer: Dion Vansevenant
Based on David Torno's "fileToCompToQ"
This script creates a basic slideshow from a folder of images
function createSlideshow(){
try{
/* DECLARE VARIABLES */
var localFolder, renderToFolder, outputModuleName, jpgAEFolderName, compAEFolderName, newJPGParentFolder, myImportedFiles, newCompParentFolder, newCompParentFolder, grabFiles, grabFilesLength, extAry, compFrameRate;
/* BEGIN VARIABLES TO CUSTOMIZE */
jpgAEFolderName = "Photos"; //Folder name for imported files
compAEFolderName = "Photo_Comps"; //Folder name for resulting comps
extAry = new Array("jpg", "jpeg"); //Array of Strings. These are the file extension types you wish to import.
compFrameRate = 29.97; //Frame rate for the newly created comps. Must be a float or integer value.
compDuration = 5; //The duration of time, in seconds, that the new comps will be.
//masterComp Variables
var compWidth = 1920;
var compHeight = 1080;
var compPAR = 1;
var compDur = 10;
var compFPS = 29.97;
//Create Master Comp
var masterComp = app.project.items.addComp("MASTER", compWidth , compHeight, compPAR, compDur, compFPS);
/* END VARIABLES TO CUSTOMIZE */
/* START PROCESS */
localFolder = Folder.selectDialog("Please select folder containing your JPG files.");
// localFolder = new Folder("~/Desktop/Photos/");
if(localFolder != null && localFolder.exists == true){
app.beginUndoGroup("fileToCompToQ");
grabFiles = localFolder.getFiles(); //Retrieves all enclosed files
grabFilesLength = grabFiles.length;
//Process files
app.project.items.addFolder(jpgAEFolderName); //Creates folder
newJPGParentFolder = findItem(jpgAEFolderName); //Saves it for later use
extensionFilterAndImporter(grabFiles, grabFilesLength, extAry, newJPGParentFolder); //Imports files and puts them in a folder
myImportedFiles = storeFileObjsIntoArray(newJPGParentFolder);
//Process comps
app.project.items.addFolder(compAEFolderName);
newCompParentFolder = findItem(compAEFolderName);
createCompsAddToQ(newCompParentFolder, myImportedFiles, compFrameRate, compDuration);
addCompsToMaster(app.project);
mySequenceToLayer(compObj);
writeLn("All done"); //Adds this text to the Info Panel as a way to see when the script is done working.
app.endUndoGroup();
/* END PROCESS */
/// FUNCTIONS ///
// Add fades in and out to comps
function addFadeToComps(layerObj){
try{
// alert("Oops, module addFadeToComps is not ready yet");
//alert("Entering addFadeToComps...");
var overLap = 1;
//alert("Working on layer "+layerObj.name+" with startTime of "+layerObj.startTime+" and outPoint of "+layerObj.outPoint);
layerObj.opacity.setValueAtTime(layerObj.inPoint, 0);
layerObj.opacity.setValueAtTime((layerObj.inPoint + overLap), 100);
layerObj.opacity.setValueAtTime((layerObj.outPoint - overLap), 100);
layerObj.opacity.setValueAtTime(layerObj.outPoint, 0);
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function addFadeToComps
// Add fades using Expressions
function addExpFadeToComps(layerObj){
try{
var myLayer = layerObj;
var myLayerOpacityProperty = myLayer.property("ADBE Transform Group").property("ADBE Opacity");
//Frames that fade will take place over
var fade = "30";
//encoded expression string with "fade" variable inserted
var myExpress = "fadeTime%20=%20" + fade + ";%0DopacityMin%20=%200;%0DopacityMax%20=%20100;%0DlayerDuration%20=%20outPoint%20-%20inP oint;layerDiff%20=%20outPoint-(layerDuration/2);%0DsingleFrame%20=%20thisComp.frameDuratio n;%0DanimateIn%20=%20linear(time,%20inPoint,%20(inPoint%20+%20framesToTime(fadeTime)),%20o pacityMin,%20opacityMax);%0DanimateOut%20=%20linear(time,%20(outPoint%20-%20framesToTime(f adeTime+1)),%20(outPoint-singleFrame),%20opacityMax,%20opacityMin);%0Dif(time%20%3C%20(lay erDiff) )%7B%0D%09animateIn;%0D%7Delse%7B%0D%09animateOut;%0D%7D";
//Applies expression
myLayerOpacityProperty.expression = decodeURI(myExpress);
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function addExpFadeToComps
// Add items to comp in reverse order to preserve numbering
function addCompsToMaster(projObj){
try{
for (var i = projObj.numItems; i != 0; i--){
if (app.project.item(i) instanceof CompItem){ // <-- adds comps to the comp, but also tries to add MASTER, not good
if (app.project.item(i).name != "MASTER"){ // <-- ok, filter out MASTER
masterComp.layers.add(app.project.item(i),compDuration);
compObj = app.project.item(1);
layerObj = app.project.item(1).layer(1);
layerObj.property("ADBE Transform Group").property("ADBE Opacity").setValue(0);
addExpFadeToComps(layerObj);
imageSizeToCompSize(compObj, layerObj);
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function adCompsToMaster
// adds a white solid to create a border
function addBorderToComps(compObj){
try{
var myBorder = compObj;
// myBorder.layers.addSolid([1.0,1.0,0], "Frame", 50, 50, 1);
myBorder.layers.addSolid([1.0,1.0,1.0], compObj.name+"_Frame", compObj.width, compObj.height, 1);
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function addBorderToComps
// Loop through MASTER comp and manually do "Sequence Layers" to stagger start times.
// Also try to randomize placement of images on-screen
function mySequenceToLayer(compObj){
try{
// get number of items in MASTER comp
var numItems = compObj.numLayers;
for(i=2; i<=numItems;i++){
app.project.item(1).layer(i).startTime = app.project.item(1).layer(i-1).outPoint-2;
maxZ = compHeight-100;
minZ = 600;
maxX = compWidth-100;
minX = 600;
x = Math.random(minX,maxX)*100;
y = Math.random(minY,maxY)*100;
var myProperty = app.project.item(1).layer(i).position;
// If the result is even, add x,y change, otherwise subtract it
myEvenOdd = i%2;
if (myEvenOdd == 0){
var newX = myProperty.value[0] + x;
var newY = myProperty.value[1] + y;
}else{
var newX = myProperty.value[0] - x;
var newY = myProperty.value[1] - y;
myProperty.setValue([newX,newY,0]);
app.project.item(1).duration = Math.round(app.project.item(1).layer(numItems).outPoint);
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function mySequenceToLayer
/* findItem() function
Arguments::
itemName: Name of the After Effects folder to find. Must be a String.
function findItem(itemName){
try{
var allItems = app.project.numItems;
for(var i=1; i<=allItems; i++){
curItem = app.project.item(i);
if(curItem instanceof FolderItem && curItem.name == itemName){
return curItem;
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function findItem
/* extensionFilterAndImporter() function
Arguments::
grabFiles: Array of file objects
grabFilesLength: Value must be an integer
extAry: Array of Strings
newParentFolder: String
function extensionFilterAndImporter(grabFiles, grabFilesLength, extAry, newParentFolder){
try{
var fileName, extPrep, ext, extAryLength, importOpt, newFile;
extAryLength = extAry.length;
for(var i=0; i<grabFilesLength; i++){
fileName = grabFiles[i].displayName
extPrep = fileName.split(".");
ext = extPrep[extPrep.length-1].toLowerCase();
for(var e=0; e<extAryLength; e++){
if(ext == extAry[e]){
writeLn(fileName);
importOpt = new ImportOptions(grabFiles[i]);
newFile = app.project.importFile(importOpt); //Imports file into project
moveItemToFolder(newFile, newParentFolder); //Moves file into parent folder
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function extensionFilterAndImporter
/* moveItemToFolder() function
Arguments::
projectItem: Must be an AVItem
parentFolder: Must be a FolderItem
function moveItemToFolder(projectItem, parentFolder){
try{
projectItem.parentFolder = parentFolder;
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function moveItemToFolder
/* storeFileObjsIntoArray() function
Arguments::
sourceFolder: Must be a FolderItem
function storeFileObjsIntoArray(sourceFolder){
try{
var itemAry, itemsInFolder, itemsInFolderLength;
itemAry = new Array();
itemsInFolder = sourceFolder.items;
itemsInFolderLength = itemsInFolder.length;
for(var i=1; i<=itemsInFolderLength; i++){
itemAry[itemAry.length] = itemsInFolder[i];
return itemAry;
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function storeFileObjsIntoArray
/* createCompsAddToQ() function
Arguments::
myImportedFiles: Array of File objects
fps: Must be a float or integer value.
function createCompsAddToQ(compAEFolderName, myImportedFiles, fps, duration){
try{
var myImportedFilesLength, curFile, extFind, fileNameOnly, newComp;
myImportedFilesLength = myImportedFiles.length;
for(var c=0; c<myImportedFilesLength; c++){
curFile = myImportedFiles[c];
extFind = curFile.name.toString().lastIndexOf(".");
fileNameOnly = curFile.name.substring(extFind, 0); //Removes file extension
newComp = app.project.items.addComp(fileNameOnly+"_Comp", curFile.width, curFile.height, 1, duration, fps); //Creates new comp
addBorderToComps(newComp);
newComp.layers.add(curFile); //Adds file to comp
imageSizeToBorderSize (newComp, 5);
moveItemToFolder(newComp, compAEFolderName); //Moves new comp to folder
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function createCompsAddToQ
// resize layer to comp
function imageSizeToCompSize(compObj, layerObj){
try{
var curLayerBoundry, curLayerScale, newLayerScale, myNewLayerScale;
curLayerBoundry = layerObj.sourceRectAtTime(0,false);
curLayerScaleObj = layerObj.property("ADBE Transform Group").property("ADBE Scale");
curLayerScaleVal = curLayerScaleObj.value;
newLayerScale = curLayerScaleVal*Math.min(compObj.width/curLayerBoundry.width, compObj.height/curLayerBoundry.height);
myNewLayerScale = newLayerScale*.75;
curLayerScaleObj.setValue(myNewLayerScale);
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function imageSizeToCompSize
// resize image to less than frame
function imageSizeToBorderSize(compObj, frameOffset){
try{
var curLayerBoundry, curLayerScale, newLayerScale, myNewLayerScale;
layerPhotoObj = compObj.layer(1);
layerFrameObj = compObj.layer(2);
curLayerBoundry = layerPhotoObj.sourceRectAtTime(0,false);
curLayerScaleObj = layerPhotoObj.property("ADBE Transform Group").property("ADBE Scale");
curLayerScaleVal = curLayerScaleObj.value;
if (frameOffset != 0){
newScale = 100-frameOffset;
layerPhotoObj.scale.setValue([newScale,newScale,100]);
}else{
layerPhotoObj.scale.setValue([95,95,100]);
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function imageSizeToBorderSize
}catch(err){alert("Error at line# " + err.line.toString() + "\r" + err.toString());}
} // end function fileToCompToQ
createSlideshow(this);
} // end script
DECLARE @Query VARCHAR(MAX)=''
DECLARE @DbName VARCHAR(400) = '<DBNAME>'
DECLARE @DbFilePath VARCHAR(400) = '<Valid DataFilePath>'
DECLARE @DBLogFilePath VARCHAR(400)='<Valid LogFile Path>'
SET @Query = @Query + 'CREATE DATABASE '+@DbName +' ON PRIMARY '
SET @Query = @Query + '( NAME = '''+@DbName +''', FILENAME = '''+@DbFilePath+@DbName +'.mdf'' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) '
SET @Query = @Query + ' LOG ON '
SET @Query = @Query + '( NAME = '''+@DbName +'_log'', FILENAME = '''+@DblogFilePath+@DbName +'_log.ldf'' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)'
print @query
exec(@query)
--Prashanth
Similar Messages
-
I need your help with a decision to use iPhoto. I have been a PC user since the mid 1980’s and more recently have used ACDSee to manage my photo images and Photoshop to edit them. I have used ProShow Gold to create slideshows. I am comfortable with my own folder and file naming conventions. I currently have over 23,000 images of which around 60% are scans going back 75 years. Since I keep a copy of the originals, the storage requirements for over 46,000 images is huge. 180GB plus.
I now have a Macbook Pro and will add an iMac when the new models arrive. For my photos, I want to stay with Photoshop which also gives me the Bridge. The only obvious reason to use iPhoto is to take advantage of Faces and the link to iMovie to make slideshows. What am I missing and is using iPhoto worth the effort?
If I choose to use iPhoto, I am not certain whether I need to load the originals and the edited versions. I suspect that just the latter is sufficient. If I set PhotoShop as my external editor, I presume that iPhoto will keep track of all changes moving forward. However, over 23,000 images in iPhoto makes me twitchy and they are appear hidden within iPhoto. In the past, I have experienced syncing problems with, and database errors in, large databases. If I break up the images into a number of projects, I loose the value of Faces reaching back over time.
Some guidance and insight would be appreciated. I have a number of Faces questions which I will save for later.Bridge and Photoshop is a common file-based management system. (Not sure why you'd have used ACDSEE as well as Bridge.) In any event, it's on the way out. You won't be using it in 5 years time.
Up to this the lack of processing power on your computer left no choice but to organise this way. But file based organisation is as sensible as organising a Shoe Warehouse based on the colour of the boxes. It's also ultimately data-destructive.
Modern systems are Database driven. Files are managed, Images imported, virtual versions, lossless processing and unlimited editing are the way forward.
For a Photographer Photoshop is overkill. It's an enormously powerful app, a staple of the Graphic Designers' trade. A Photographer uses maybe 15% to 20% of its capability.
Apps like iPhoto, Lightroom, Aperture are the way forward - for photographers. There's the 20% of Photoshop that shooters actually use, coupled with management and lossless processing. Pop over to the Aperture or Lightroom forums (on the Adobe site) and one comment shows up over and over again... "Since I started using Aperture/ Lightroom I hardly ever use Photoshop any more..." and if there is a job that these apps can do, then the (much) cheaper Elements will do it.
The change is not easy though, especially if you have a long-standing and well thought out filing system of your own. The first thing I would strongly advise is that you experiment before making any decisions. So I would create a Library, import 300 or 400 shots and play. You might as well do this in iPhoto to begin with - though if you’re a serious hobbyist or a Pro then you'll find yourself looking further afield pretty soon. iPhoto is good for the family snapper, taking shots at birthdays and sharing them with friends and family.
Next: If you're going to successfully use these apps you need to make a leap: Your files are not your Photos.
The illustration I use is as follows: In my iTunes Library I have a file called 'Let_it_Be_The_Beatles.mp3'. So what is that, exactly? It's not the song. The Beatles never wrote an mp3. They wrote a tune and lyrics. They recorded it and a copy of that recording is stored in the mp3 file. So the file is just a container for the recording. That container is designed in a specific way attuned to the characteristics and requirements of the data. Hence, mp3.
Similarly, that Jpeg is not your photo, it's a container designed to hold that kind of data. iPhoto is all about the data and not about the container. So, regardless of where you choose to store the file, iPhoto will manage the photo, edit the photo, add metadata to the Photo but never touch the file. If you choose to export - unless you specifically choose to export the original - iPhoto will export the Photo into a new container - a new file containing the photo.
When you process an image in iPhoto the file is never touched, instead your decisions are recorded in the database. When you view the image then the Master is presented with these decisions applied to it. That's why it's lossless. You can also have multiple versions and waste no disk space because they are all just listings in the database.
These apps replace the Finder (File Browser) for managing your Photos. They become the Go-To app for anything to do with your photos. They replace Bridge too as they become a front-end for Photoshop.
So, want to use a photo for something - Export it. Choose the format, size and quality you want and there it is. If you're emailing, uploading to websites then these apps have a "good enough for most things" version called the Preview - this will be missing some metadata.
So it's a big change from a file-based to Photo-based management, from editing files to processing Photos and it's worth thinking it through before you decide. -
Question about DBCA generate script o create RAC database 2 node cluster
Question about creating two node RAC database 11g after installing and configuration 11g clusterware. I've used DBCA to generate script to create a rac database. I've set
environment variable ORACLE_SID=RAC and the creating script creates instance of RAC1 and RAC2. My understanding is that each node will represent a node, however there should only be one database with a name of 'RAC'. Please adviseYou are getting your terminology mixed up.
You only have one database. Take a look, there are one set of datafiles on shared storage.
You have 2 instances which are accessing one database.
Database name is RAC. Instance names are RAC1, RAC2, etc, etc.
Also, if you look at the listener configuration and if your tnsnames is setup properly then connecting to RAC will connect you to either one of the instances wheras connecting to RAC1 will connect you to that instance. -
Create Slideshow Display sequence property doesn't work
Create Slideshow Display sequence property doesn't work,
I have selcted random but the slideshow always plays in order. I searched the scripts for any logi related to this and other properties set, but cannot find any refernce to any of these propoerties:
transType='Random' transTime='1' firstImage='1' dispSequence='1'>
How can I make the slideshow start with a random image each time?
thanks
sHello,
I am back on this question, about how to get the non-flash version of the Creatr Slideshow v1.6 to display the images in a random sequence. Can anyone point me in the right direction, please?
thanks
juno -
TIPS(42) : SCRIPT FOR CREATING ROLES
제품 : SQL*PLUS
작성날짜 : 1997-02-10
TIPS(42) : SCRIPT FOR CREATING ROLES
====================================
REM
REM SCRIPT FOR CREATING ROLES
REM
REM This script must be run by a user with the DBA role.
REM
REM This script is intended to run with Oracle7.
REM
REM Running this script will in turn create a script to build all the roles
REM in the database. This created file, create_roles.sql, can be run
REM by any user with the DBA role or with the 'CREATE ROLE' system privilege.
REM
REM Since it is not possible to create a role under a specific schema, it is
REM essential that the original creator be granted 'ADMIN' option to the role.
REM Therefore, such grants will be made at the end of the create_roles.sql
REM script. Since it is not possible to distinguish the creator from someone
REM who was simply granted 'WITH ADMIN OPTION', all grants will be spooled.
REM In addition, the user who creates the role is automatically granted
REM 'ADMIN' option on the role, therefore, if this script is run a second
REM time, this user will also be granted 'ADMIN' on all the roles. You must
REM explicitly revoke 'ADMIN OPTION' from this user to prevent this from
REM happening.
REM
REM NOTE: This script will not capture the create or grant on the Oracle
REM predefined roles, CONNECT, RESOURCE, DBA, EXP_FULL_DATABASE, or
REM IMP_FULL_DATABASE.
REM
REM Only preliminary testing of this script was performed. Be sure to test
REM it completely before relying on it.
REM
set verify off
set feedback off
set termout off
set echo off
set pagesize 0
set termout on
select 'Creating role build script...' from dual;
set termout off
spool create_roles.sql
select 'CREATE ROLE ' || lower(role) || ' NOT IDENTIFIED;'
from sys.dba_roles
where role not in ('CONNECT','RESOURCE','DBA', 'EXP_FULL_DATABASE',
'IMP_FULL_DATABASE')
and password_required='NO'
select 'CREATE ROLE ' || lower(role) || ' IDENTIFIED BY VALUES ' ||
'''' || password || '''' || ';'
from sys.dba_roles, sys.user$
where role not in ('CONNECT','RESOURCE','DBA', 'EXP_FULL_DATABASE',
'IMP_FULL_DATABASE')
and password_required='YES' and
dba_roles.role=user$.name
and user$.type=0
select 'GRANT ' || lower(granted_role) || ' TO ' || lower(grantee) ||
' WITH ADMIN OPTION;'
from sys.dba_role_privs
where admin_option='YES'
and granted_role not in ('CONNECT','RESOURCE','DBA', 'EXP_FULL_DATABASE',
'IMP_FULL_DATABASE')
order by grantee
spool off
exit
REM ---------------------------------------------------------------------------One thing that stands out as being undesirable as far as best practices go is that you are placing code on objects (using the on() approach). The proper approach is to assign instance names to your interactive objects and use them to place all of your code on the timeline where it is readily visible. In doing so you may just find that alot of the code you show can be modularized into functions that can be shared by different objects rather than having each one carrying a full load on its back. You may find you can pass arguments to shared functions that make the same functions capable of supporting interactions with different objects
Your on(press) call performs an unnecessary conditional test. If you change the condition to be if (project._currentframe != 25) you can avoid this.
In your on(rollOver) call's set of conditionals, you have some lines that repeat in each condition, so they can be moved to the end outside the conditionals.
Your on(release) call has the same issue as your on(press) call. Also the overrun use of the _parent target is an indication that most of the code in this call would likely serve you better sitting in the _parent timeline, and your button could just call that function -
Premiere elements 11 on iMac, creating slideshow ?
Creating slideshow w/transition & music in Premiere Elements 11, photos become very granny, what is happening?
I think I have the most recent version of Quicktime. I downloaded it yesterday and then bought the Pro edition.
When I go to Share/Computer I have the following choices:
Adobe Flash Video - use for posting on web pages
NOEG - Use for playback on this computer or burning to DVD
AVCHD - Use for exporting AVCHD
QuickTime - Use for email and playback on Mac
Image - use for exporting still image
Audio - use for esporing audio
Nothing equivilent to the PC choice of AVI - use for editing in a Premiere Elements project
I have shared to QuickTime and the quality I get is not nearly as good as the AVI on the PC. Nor is it as good as the mp4 file I get when I share in iMovie 10. I just like to edit in Premiere Elements. And I will ditch the iMac when I can and download everythig to the PC in the future. Suggestions would be appreciated. -
Hi there,
I've been having a lot of problems and issues while sharing scripts.
The problem we are having is that when there are multiple people viewing and wanting to work on a script or storyboard at the same time, one person always gets locked out. Usually the person who did not create the file.
Is there any hopes of this being a lot more dynamically interactive with groups?Hi,
The mechanism in place in Story for multiple users working on the same script is as follows -
If a user is editing a script he will be having the lock for the document at that time. During this time other users would be blocked to make direct edits to the document.
As soon as this user saves the document, the lock is released and can be taken up by any of the other shared user trying to edit. The document is refreshed too to reflect its latest state at the end of all the users.
Let us know if you are observing a deviation from this behavior.
That said if you wish to work uninterrupted on your script you may try working in the AIR offline mode in Story desktop application.
Thanks
Rashi -
Illustrator script to create symbols from images in folder
Time to give back to the community...
Here is a script I recently devised to bulk create symbols from images in a folder. Tested with Illustrator CC 2014.
// Import Folder's Files as Symbols - Illustrator CC script
// Description: Creates symbols from images in the designated folder into current document
// Author : Oscar Rines (oscarrines (at) gmail.com)
// Version : 1.0.0 on 2014-09-21
// Reused code from "Import Folder's Files as Layers - Illustrator CS3 script"
// by Nathaniel V. KELSO ([email protected])
#target illustrator
function getFolder() {
return Folder.selectDialog('Please select the folder to be imported:', Folder('~'));
function symbolExists(seekInDoc, seekSymbol) {
for (var j=0; j < seekInDoc.symbols.length; j++) {
if (seekInDoc.symbols[j].name == seekSymbol) {
return true;
return false;
function importFolderContents(selectedFolder) {
var activeDoc = app.activeDocument; //Active object reference
// if a folder was selected continue with action, otherwise quit
if (selectedFolder) {
var newsymbol; //Symbol object reference
var placedart; //PlacedItem object reference
var fname; //File name
var sname; //Symbol name
var symbolcount = 0; //Number of symbols added
var templayer = activeDoc.layers.add(); //Create a new temporary layer
templayer.name = "Temporary layer"
var imageList = selectedFolder.getFiles(); //retrieve files in the folder
// Create a palette-type window (a modeless or floating dialog),
var win = new Window("palette", "SnpCreateProgressBar", {x:100, y:100, width:750, height:310});
win.pnl = win.add("panel", [10, 10, 740, 255], "Progress"); //add a panel to contain the components
win.pnl.currentTaskLabel = win.pnl.add("statictext", [10, 18, 620, 33], "Examining: -"); //label indicating current file being examined
win.pnl.progBarLabel = win.pnl.add("statictext", [620, 18, 720, 33], "0/0"); //progress bar label
win.pnl.progBarLabel.justify = 'right';
win.pnl.progBar = win.pnl.add("progressbar", [10, 35, 720, 60], 0, imageList.length-1); //progress bar
win.pnl.symbolCount = win.pnl.add("statictext", [10, 70, 710, 85], "Symbols added: 0"); //label indicating number of symbols created
win.pnl.symbolLabel = win.pnl.add("statictext", [10, 85, 710, 100], "Last added symbol: -"); //label indicating name of the symbol created
win.pnl.errorListLabel = win.pnl.add("statictext", [10, 110, 720, 125], "Error log:"); //progress bar label
win.pnl.errorList = win.pnl.add ("edittext", [10, 125, 720, 225], "", {multiline: true, scrolling: true}); //errorlist
//win.pnl.errorList.graphics.font = ScriptUI.newFont ("Arial", "REGULAR", 7);
//win.pnl.errorList.graphics.foregroundColor = win.pnl.errorList.graphics.newPen(ScriptUIGraphics.PenType.SOLID_COLOR, [1, 0, 0, 1], 1);
win.doneButton = win.add("button", [640, 265, 740, 295], "OK"); //button to dispose the panel
win.doneButton.onClick = function () //define behavior for the "Done" button
win.close();
win.center();
win.show();
//Iterate images
for (var i = 0; i < imageList.length; i++) {
win.pnl.currentTaskLabel.text = 'Examining: ' + imageList[i].name; //update current file indicator
win.pnl.progBarLabel.text = i+1 + '/' + imageList.length; //update file count
win.pnl.progBar.value = i+1; //update progress bar
if (imageList[i] instanceof File) {
fname = imageList[i].name.toLowerCase(); //convert file name to lowercase to check for supported formats
if( (fname.indexOf('.eps') == -1) &&
(fname.indexOf('.png') == -1)) {
win.pnl.errorList.text += 'Skipping ' + imageList[i].name + '. Not a supported type.\r'; //log error
continue; // skip unsupported formats
else {
sname = imageList[i].name.substring(0, imageList[i].name.lastIndexOf(".") ); //discard file extension
// Check for duplicate symbol name;
if (symbolExists(activeDoc, sname)) {
win.pnl.errorList.text += 'Skipping ' + imageList[i].name + '. Duplicate symbol for name: ' + sname + '\r'; //log error
else {
placedart = activeDoc.placedItems.add(); //get a reference to a new placedItem object
placedart.file = imageList[i]; //link the object to the image on disk
placedart.name = sname; //give the placed item a name
placedart.embed(); //make this a RasterItem
placedart = activeDoc.rasterItems.getByName(sname); //get a reference to the newly created raster item
newsymbol = activeDoc.symbols.add(placedart); //add the raster item to the symbols
newsymbol.name = sname; //name the symbol
symbolcount++; //update the count of symbols created
placedart.remove(); //remove the raster item from the canvas
win.pnl.symbolCount.text = 'Symbols added: ' + symbolcount; //update created number of symbols indicator
win.pnl.symbolLabel.text = 'Last added symbol: ' + sname; //update created symbol indicator
else {
win.pnl.errorList.text += 'Skipping ' + imageList[i].name + '. Not a regular file.\r'; //log error
win.update(); //required so pop-up window content updates are shown
win.pnl.currentTaskLabel.text = ''; //clear current file indicator
// Final verdict
if (symbolcount >0) {
win.pnl.symbolLabel.text = 'Symbol library changed. Do not forget to save your work';
else {
win.pnl.symbolLabel.text = 'No new symbols added to the library';
win.update(); //update window contents
templayer.remove(); //remove the temporary layer
else {
alert("Action cancelled by user");
if ( app.documents.length > 0 ) {
importFolderContents( getFolder() );
else{
Window.alert("You must open at least one document.");Thank you, nice job & I am looking forward to trying it out!
-
Error While running WLST script to create SOA Domain in Clustered Environme
Hi,
I am trying to run WLST script to create SOA Domain in clustered environment.The script is as follows.
import sys
print "@@@ Starting the script ..."
global props
from wlstModule import *#@UnusedWildImport
from java.io import FileInputStream
from java.io import File
#=======================================================================================
# Create Boot Properties File
#=======================================================================================
def createBootPropertiesFile(directoryPath, username, password):
adminserverDir = File(directoryPath)
bool = adminserverDir.mkdirs()
fileNew=open(directoryPath + '/boot.properties', 'w')
fileNew.write('username=%s\n' % username)
fileNew.write('password=%s\n' % password)
fileNew.flush()
fileNew.close()
def createNodeManagerPropertiesFile(directoryPath, username, password):
adminserverDir = File(directoryPath)
bool = adminserverDir.mkdirs()
fileNew=open(directoryPath + '/nm_password.properties', 'w')
fileNew.write('username=%s\n' % username)
fileNew.write('password=%s\n' % password)
fileNew.flush()
fileNew.close()
def createAdminStartupPropertiesFile(directoryPath, args):
adminserverDir = File(directoryPath)
bool = adminserverDir.mkdirs()
fileNew=open(directoryPath + '/startup.properties', 'w')
args=args.replace(':','\\:')
args=args.replace('=','\\=')
fileNew.write('Arguments=%s\n' % args)
fileNew.flush()
fileNew.close()
I am getting the error :
Problem invoking WLST - Traceback (innermost last):
(no code object) at line 0
File "D:\Oracle\Middleware\Oracle_SOA1\bin\SOADomainScript.py", line 11
adminserverDir = File(directoryPath)
^
SyntaxError: invalid syntax
Do i need to set any jar in the classpath? Already jython.jar is available in the classapath.
Thanks in advance.
Regards,
SubhaHi,
I am trying to run WLST script to create SOA Domain in clustered environment.The script is as follows.
import sys
print "@@@ Starting the script ..."
global props
from wlstModule import *#@UnusedWildImport
from java.io import FileInputStream
from java.io import File
#=======================================================================================
# Create Boot Properties File
#=======================================================================================
def createBootPropertiesFile(directoryPath, username, password):
adminserverDir = File(directoryPath)
bool = adminserverDir.mkdirs()
fileNew=open(directoryPath + '/boot.properties', 'w')
fileNew.write('username=%s\n' % username)
fileNew.write('password=%s\n' % password)
fileNew.flush()
fileNew.close()
def createNodeManagerPropertiesFile(directoryPath, username, password):
adminserverDir = File(directoryPath)
bool = adminserverDir.mkdirs()
fileNew=open(directoryPath + '/nm_password.properties', 'w')
fileNew.write('username=%s\n' % username)
fileNew.write('password=%s\n' % password)
fileNew.flush()
fileNew.close()
def createAdminStartupPropertiesFile(directoryPath, args):
adminserverDir = File(directoryPath)
bool = adminserverDir.mkdirs()
fileNew=open(directoryPath + '/startup.properties', 'w')
args=args.replace(':','\\:')
args=args.replace('=','\\=')
fileNew.write('Arguments=%s\n' % args)
fileNew.flush()
fileNew.close()
I am getting the error :
Problem invoking WLST - Traceback (innermost last):
(no code object) at line 0
File "D:\Oracle\Middleware\Oracle_SOA1\bin\SOADomainScript.py", line 11
adminserverDir = File(directoryPath)
^
SyntaxError: invalid syntax
Do i need to set any jar in the classpath? Already jython.jar is available in the classapath.
Thanks in advance.
Regards,
Subha -
Using XML file in Java script to create Google Map
Hello,
I work for a non-profit in San Diego as a GIS Specialist. I have had to teach myself about some scripting to create some dynamic maps, but I am still very limited in my skills, so I have had to explore the internet in order to discover various tutorials and examples that have led me on a positive path.
Right now I am working on a Google Mash-Up that will incorporate over 14,000 records, which will appear as separate markers that will have pop-up info bubbles with additional info inside (using html), once the marker is clicked.
Here is the XML script example that is used in the tutorial I am following:
<markers>
<marker lat="43.65654" lng="-79.90138" html="Some stuff to display in the<br>First Info Window"
label="Marker One" />
<marker lat="43.91892" lng="-78.89231" html="Some stuff to display in the<br>Second Info Window"
label="Marker Two" />
<marker lat="43.82589" lng="-79.10040" html="Some stuff to display in the<br>Third Info Window"
label="Marker Three" />
</markers>
...and this is how it looks when the file is retrieved by the java script and mapped: http://econym.googlepages.com/example_map3.htm
This is the java script that creates the Google Map. I have emboldened the section of the script that retrieves the data and parses it to create the markers:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Google Maps</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA6GoL8P5zqjQlG5A5uM1ETBSUPozAscB0cY3RG8xEGnZyeom4axRySak889rVpvHYRsV4f9OZZzbboA"
type="text/javascript"></script>
</head>
<body onunload="GUnload()">
<!-- you can use tables or divs for the overall layout -->
<table border=1>
<tr>
<td>
<div id="map" style="width: 800px; height: 1200px"></div>
</td>
<td width = 200 valign="top" style="text-decoration: underline; color: #4444ff;">
<div id="side_bar"></div>
</td>
</tr>
</table>
<noscript><b>JavaScript must be enabled in order for you to use Google Maps.</b>
However, it seems JavaScript is either disabled or not supported by your browser.
To view Google Maps, enable JavaScript by changing your browser options, and then
try again.
</noscript>
<script type="text/javascript">
//<![CDATA[
if (GBrowserIsCompatible()) {
// this variable will collect the html which will eventualkly be placed in the side_bar
var side_bar_html = "";
// arrays to hold copies of the markers used by the side_bar
// because the function closure trick doesnt work there
var gmarkers = [];
var i = 0;
// A function to create the marker and set up the event window
function createMarker(point,name,html) {
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
// save the info we need to use later for the side_bar
gmarkers[i] = marker;
// add a line to the side_bar html
side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
i++;
return marker;
// This function picks up the click and opens the corresponding info window
function myclick(i) {
GEvent.trigger(gmarkers, "click");
// create the map
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng( 37.251699,-119.604315), 7);
*// Read the data from testXML2blackpoolformat.xml*
var request = GXmlHttp.create();
request.open("GET", "testXML2blackpoolformat.xml", true);
*request.onreadystatechange = function() {*
*if (request.readyState == 4) {*
var xmlDoc = GXml.parse(request.responseText);
*// obtain the array of markers and loop through it*
var markers = xmlDoc.documentElement.getElementsByTagName("ConnectoryRecord");
*for (var i = 0; i < markers.length; i++) {*
*// obtain the attribues of each marker*
*var lat = parseFloat(markers[i].getAttribute("lat"));*
*var lng = parseFloat(markers[i].getAttribute("lng"));*
var point = new GLatLng(lat,lng);
*var html = markers[i].getAttribute("html");*
*var label = markers[i].getAttribute("label");*
*// create the marker*
var marker = createMarker(point,label,html);
map.addOverlay(marker);
// put the assembled side_bar_html contents into the side_bar div
document.getElementById("side_bar").innerHTML = side_bar_html;
request.send(null);
else {
alert("Sorry, the Google Maps API is not compatible with this browser");
// This Javascript is based on code provided by the
// Blackpool Community Church Javascript Team
// http://www.commchurch.freeserve.co.uk/
// http://econym.googlepages.com/index.htm
//]]>
</script>
</body>
</html>
Here is my delima--
This is the xml format that I need to use because it can accept the rest of my excel file and loop it through the 14,000+ records to create a functioning xml file. This is just a sample (2 records) of the larger file:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<ConnectoryAug2008>
<ConnectoryRecord>
<lng>-117.03683</lng>
<lat>32.944505</lat>
<ConnectoryID>1</ConnectoryID>
<Name>$2.95 Guys</Name>
<StreetAddress>13750 Stowe Drive</StreetAddress>
<City>Poway</City>
<State>CA</State>
<Zip>92064</Zip>
<Marker>White</Marker>
<IndustryGroup>Technical Services</IndustryGroup>
<ConnectoryProfileLink>http://connectory.com/search/profile_view.aspx?connectoryId=1</ConnectoryProfileLink>
</ConnectoryRecord>
<ConnectoryRecord>
<lng>-117.272843</lng>
<lat>33.13337</lat>
<ConnectoryID>2</ConnectoryID>
<Name>(GLDS) Great Lakes Data Systems</Name>
<StreetAddress>5954 Priestly Drive</StreetAddress>
<City>Carlsbad</City>
<State>CA</State>
<Zip>92008</Zip>
<Marker>Orange</Marker>
<IndustryGroup>Technology</IndustryGroup>
<ConnectoryProfileLink>http://connectory.com/search/profile_view.aspx?connectoryId=2</ConnectoryProfileLink>
</ConnectoryRecord>
</ConnectoryAug2008>
This is the tutorial where I found the formatting techniques to successfully create the large xml file that will format/convert my excel file properly: http://www.mrexcel.com/tip064.shtml
These variables should appear as html in the info bubble:
<ConnectoryID>2</ConnectoryID>
<Name>(GLDS) Great Lakes Data Systems</Name>
<StreetAddress>5954 Priestly Drive</StreetAddress>
<City>Carlsbad</City>
<State>CA</State>
<Zip>92008</Zip>
<IndustryGroup>Technology</IndustryGroup>
<ConnectoryProfileLink>http://connectory.com/search/profile_view.aspx?connectoryId=2</ConnectoryProfileLink>
The "Marker" variable instructs Google Maps to label the marker with a particular color. I will be so grateful to the person(s) that helps me get through this wall that I have been hitting for a long time. It's very difficult without having the luxury of peers who know about these types of issues.
Thank you!!Here is the relationship: They both contain geographic coordinates that produce a point on a map. I will use the rest of the information in the second xml file (company name, address, link, etc.) to produce the information for the bubble that will pop up once the marker is clicked.
My problem is that I need to try to keep the second xml file in a relatively similar format, so the rest of my records will still be accepted. If I had a smaller amount of records I could place them directly into the javascript, but because there are so many records, I need to use an xml file that can be retrieved by the java script. I chose to use the second type of xml file because I can easily copy and past the 14,000+ records that are now in excel document.
After the xml issue is corrected I need to rework the javascript that is now emboldened so that it will read the new xml file correctly. I included the first xml file so that the readers will understand what type of xml format is currently being used to produce the markers in the tutorial map. -
Powershell Script to create "custom" Document Library
I have a powershell script which creates a Document Library for every user in AD.
This works, but rather than using the default Document Library I want it use a custom Document Library. However this isnt working.
My script to create the default Document Library is this...
[System.Reflection.Assembly]::Load("Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c")
$site = new-object Microsoft.SharePoint.SPSite("http://servername/sitename");
$siteweb = $site.OpenWeb();
$webs = $siteweb.Webs;
$strFilter = "(&(objectCategory=User)(name=accountname))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colProplist = "samaccountname"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
$objItem = $objResult.Properties; $objItem.samaccountname
$listTemplate = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary
$listId = $siteweb.Lists.Add($objItem.samaccountname, "", $listtemplate);
$list = $siteweb.Lists.GetList($listId, $true);
$roleDef = $siteweb.RoleDefinitions.GetByType("Contributor");
$user = "domain\" + $objItem.samaccountname;
$rolAssign = new-object Microsoft.SharePoint.SPRoleAssignment($user, "email", "name", "notes");
$rolAssign.RoleDefinitionBindings.Add($roleDef);
if(!$list.HasUniqueRoleAssignments)
{$list.BreakRoleInheritance($true);}
for ($i = $list.roleAssignments.Count - 1; $i -gt -1; $i--)
{ $list.RoleAssignments.Remove($i) }
$list.RoleAssignments.Add($rolAssign);
$list.Update();
Now I have a custom Document Library named "TESTLIB" so if I substitute the line:
$listTemplate = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary
with
$listTemplate = [Microsoft.SharePoint.SPListTemplateType]::TESTLIB
Then it errors with this...
How can I script powershell to create a "custom" Document Library?
ThanksThe below link should help you in creating custom document library using powershell
http://blogs.technet.com/b/heyscriptingguy/archive/2010/09/23/use-powershell-cmdlets-to-manage-sharepoint-document-libraries.aspx
Vinod H
Thanks for the link but I cant see anything to assist creating a custom library? Was there something in paticular you saw? -
Hello,
does anyone know sample wlst scripts for creating domain for soa suite 11.1.1.4 on top of weblogic 10.3.4?
I try to create a domain having a cluster with two managed servers in two linux machines.
Any help appreciated.
regards, MattiPlease refer -
http://download.oracle.com/docs/cd/E17904_01/web.1111/e13715/domains.htm
http://download.oracle.com/docs/cd/E17904_01/web.1111/e13715/intro.htm#WLSTG112
Regards,
Anuj -
How & where to use Java script to create new button in object detail page
Hi All,
I want to create "New/Add button" in object detail page. If i am not wrong i need to use java script for that but could you please let me know how & where to use Java script to create new button in object detail page in CRMOD.
Thanks in advance.
Regards,
ManishAny related object on the detail page should have an "Add" or "New" or both buttons by default - This is vanilla functionality and will do the required action.
If you want to modify this behaviour and do something tricky you will potentially have to go for javascript. You should add the javascript on a custom web tab on that Object.
Admin --> Application Customization --> Contact -->Contact Web Applet
Now, add your javascript in the code area, after you select the type = HTML for this web applet, expose this web applet on the Contact detail layout and your javascript will be invoked whenever this page is loaded.
Check this online document to see how javascript can be embedded in CRM on Demand http://helponmyproject.com/TTOCOD/
Cheers!
Royston -
Shared Components Images Create Image does not work
I am using oracle XE on Windows XP.
Uploading an image for an application does not work.
Home>Application Builder>Application 105>Shared Components>Images>Create Image
It goes wrong when I try to upload the image:
- Iexplorer gives an error 404 after pressing the Upload button.
- Firefox just gives an empty page.
When I try to refresh the resulting page (do another post) I get the following error:
Expecting p_company or wwv_flow_company cookie to contain security group id of application owner.
Error ERR-7621 Could not determine workspace for application (:) on application accept.Hi Dietmar,
After setting the language to English (USA) [en-us] it works for +- 50 % of the uploads.
Below is my tracefile.
Dump file e:\oraclexe\app\oracle\admin\xe\bdump\xe_s001_2340.trc
Wed Nov 23 19:03:17 2005
ORACLE V10.2.0.1.0 - Beta vsnsta=1
vsnsql=14 vsnxtr=3
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Beta
Windows XP Version V5.1 Service Pack 2
CPU : 2 - type 586
Process Affinity : 0x00000000
Memory (Avail/Total): Ph:267M/1014M, Ph+PgF:1431M/2444M, VA:1578M/2047M
Instance name: xe
Redo thread mounted by this instance: 1
Oracle process number: 15
Windows thread id: 2340, image: ORACLE.EXE (S001)
------ cut ------
*** 2005-11-23 19:50:44.718
*** ACTION NAME:() 2005-11-23 19:50:44.718
*** MODULE NAME:() 2005-11-23 19:50:44.718
*** CLIENT ID:() 2005-11-23 19:50:44.718
*** SESSION ID:(26.18) 2005-11-23 19:50:44.718
Embedded PL/SQL Gateway: /htmldb/wwv_flow.accept HTTP-404 ORA-01846: not a valid day of the week
*** SESSION ID:(27.19) 2005-11-23 19:50:51.937
Embedded PL/SQL Gateway: /htmldb/wwv_flow.accept HTTP-404 ORA-01846: not a valid day of the week
*** 2005-11-23 19:50:59.078
*** SERVICE NAME:(SYS$USERS) 2005-11-23 19:50:59.078
*** SESSION ID:(27.21) 2005-11-23 19:50:59.078
Embedded PL/SQL Gateway: Unknown attribute 3
Embedded PL/SQL Gateway: Unknown attribute 3
Strange error... there is nothing in my form that is related to dates...
Kind regards,
Pieter -
Script to create synonyms for the tables of Oracle Applications
Team,
For Oracle Applications 11i on W2K, where might I find a script to create synonyms for all of the application tables? I would think there would be a standard script somewhere in one of the directories created during the install or on the CDs.
Thanks,
LutherJohn, it is ssome sort of a bleed, but in this case it's not the part that 'might be cut off' that matters; it's the part that still needs to be on the page. Yes, I meant it to be (virtually) not-noticeable for the casual reader. Of course you can make it part of the page design, that ought to ease up matters.
The amount pages shift horizontally because of binding is called "creep", and this depends on the type of binding and the thickness of the paper. You cannot adjust for creep unless you know exactly how much this is and how your book is going to be printed and bound.
Airkite:
But the book that you printed worked out alright? Was it done with a different method?
This was a simple outlined text, not an image. Through the inaccuracies of printing and binding combined, there were no straight edges *anywhere* but fortunately the lines were thick enough to let you mentally connect them
This was done (I'm sure) with the method you proposed.
There is an alternative way, but it's way more expensive (on the other hand, the result is impressive): after the entire process of printing, binding, and cutting, books are put in a clamp one at a time and fed through a silk screen printer, fore edge on top, and printed with whatever you like.
I know of the existance of this technique but I haven't seen a book done like this in years and have no clue at all of the costs involved (writing that down in one sentence makes me realize those two might be connected).
Maybe you are looking for
-
Any ideas for security and parental control software yet???
Just received two of the touchpads from the fire sale and gave them to my kids, both under 10. I am very interested in limiting the sites that can be accessed through the browser, as well as a few other things. Has anyone found a practical means of
-
Illustrator CS5 Mac OS X 10.6.7 terribly slow
Hello, I have an iMac 27", Intel I7, 8 GB of RAM and use Mac OS 10.6.7. Using Illustrator CS5 on my machine is not really fun since it is slow, cannot work fluently. I designed a simple A6 page double sided. Using the hand-tool to move inside a zoome
-
ENVY 7640 - Power Button doesn't work after going to sleep
We print about once a day. It printed the first day without problems.The second day, we were unable to print and went to the printer and pushed the touchscreen - nothing happened.Then we pushed the power button - nothing happened,Then we unplugged an
-
Command-X (cut) doesn't work in finder
If I use "Finder" and I want to "cut" a file the shortcut (command X) doesn't work and in the menu(edit) "cut" is grey. I can only use drag&drop... in "textedit" it's possible to "cut" words! What's going wrong? Please help! regards soho
-
Sound stops playing after a few seconds
Hey all. I juz transferred a song to my iPod. The song plays for 16 seconds and then it juz automatically skips to the next song!! It's frustrating. The song played juz fine on iTunes and WMP though. Any solutions guys?